Another Teensy 4.0 Breakout Board

Get Teensy 5.0

Lol.

blackketter said:
I think that you want the I2S port on the ESP32 connected to an I2S port on the T4, out to in and in to out. They'd share a BCLK and LRCLK, one driving the other. MCLK shouldn't be needed because that's for clocking a DAC, the BCLK handles the audio data clocking. You'd use another I2S port on either device to connect to another audio source or destination. I chose the first I2S port on the T4, but you could wire it up to the second one if you wanted to use the first for the Teensy Audio Adapter Board.

blackketter, thanks for the information!


blackketter said:
My board doesn't have connections for the teensy I2S pins, but they could be jumped from the teensy's headers to the header pins that are brought out next to the ESP32 module.
A future version of my board could make this easier by putting header locations above the I2S pins on the teensy (I think.). Then you'd populate those headers and socket them to the teensy. Without them, you'd need to wire them across the board.

I'm now working on a Teensy 4 ESP32 Audio Shield with a mating footer to this breakout board. I'm trying to debate the pros and cons of doing this. I fumbled a few times with it. It may have been just an exercise in learning this breakout board (and creating the symbol/footer). I need to go back to your original teensy4_esp32_sd_usb_host_breakout and really draw it out again to see how this could work/what pins I'd use exactly, and which pins would or would not conflict with my libary.

I'm hoping that my new symbols and footprints will help me do that. :)


Has anyone designed a symbol and/or footprint for the boards to mate with the breakout? I couldn't find a symbol or footprint that was easy for me to understand so I made one. I don't know if it's useful to anyone or not, but it's uploaded here: https://github.com/JayShoe/teensy4_header_breakout. Please excuse me if I'm using github wrong. I didn't want to step on your projects, Blackketter. So I just uploaded it the way I knew how. :)

teensy4_header_breakout_schematic.jpgteensy4_header_breakout_footprint_front.jpgteensy4_header_breakout_footprint_back.jpg

teensy4_header_breakout_footprint.jpg
 
Last edited:
Hello,

I sent in the pull request on github for the footprints and symbols. Let me know if you have any questions about them. Thx.

I just finished setting up a layout for a new TEENSY4_ESP32_AUDIO. I used the new symbol and footprint to mock up the I2S connections onto your schematic. While laying out the PCB, I noticed that the pins you suggest for the I2S Audio Data send and receive are on your expansion header on the teensy4_esp32_sd_usb_host_breakout, which I didn't realize!

For reference:
Code:
Teensy         ESP32 
7 (OUT1A)   -> IO12
8 (IN1)     -> IO13
20 (LRCLK1) -> IO15
21 (BCLK1)  -> IO16

It got me thinking that we really could just connect up wires from the Teensy to the IO, as you've suggested. And the benefit would be that we can hit any I2S data line because it's a wire. So all the OUT1A, OUT1B, etc would be accessible. Just the other day I designed an I2S breakout, I'm waiting for it to come in, but it would make this process very simple. It's a board I'm designing with this exact scenerio in mind - to hook the teensy to another I2S device simply with the shortest wires possible. It also has the 100 Ohm resistor on the clock lines, and the 2.2k pull-up resistors for the I2C... Pretty simple, but it exposes the pins as a header...

So therefore, the teensy4_esp32_sd_usb_host_breakout would sit on top. Followed by a Teensy with stacking headers, then my I2S breakout board, which would send the clock and data lines to the correct pins on the teensy4_esp32_sd_usb_host_breakout expansion headers. Great! No mods needed on this board for that to work just fine.

I see that this board does "hide" some pins on the Teensy. But of course the other way to do it is to get the pins from underneath... But, that would seem more messy than this would be - and allows me to continue to stack other modules underneath of the I2S breakout.... Ideally the teensy4_esp32_sd_usb_host_breakout would have the full row of headers to pass through all the pins. But as long as this is the only board on top, then I'm looking forward to making it work.


teensy4_esp32_sd_usb_host_breakout_IO.jpg


Can we use IO4 and IO2 as the I2C lines, if I need them? However, since it's already connected I guess I'll probably use SPI at this point. Has the teensy4_esp32_sd_usb_host_breakout been tested at all yet? I'm considering a build. Edit: I see that the github says, "Status: Version 1.0 board ordered".

Thanks and Cheers!

Jay
 
Last edited:
I sent in the pull request on github for the footprints and symbols. Let me know if you have any questions about them. Thx.
Excellent! I added some feedback to the pull request.

Can we use IO4 and IO2 as the I2C lines, if I need them? However, since it's already connected I guess I'll probably use SPI at this point.
Have you considered using the exiting Teensy RX6/TX6 to the ESP32 TXD0/RXD0 for communications? It won't be fast, but the I2C isn't that fast either. For speed, the SPI port is probably better.

Has the teensy4_esp32_sd_usb_host_breakout been tested at all yet? I'm considering a build. Edit: I see that the github says, "Status: Version 1.0 board ordered".
I have built and done some testing on the ordered board. Everything looks good so far!
 
Back
Top