Why Tag Connect?
My favorite programming header is Tag Connect. Some reasons why I love it:
- No header needed, its just pads and holes on the board
- No cost, so you can leave it on the board, even in production
I’ll present a standard Tag Connect header for ESP32.
|ESP_EN||Pull low to reset ESP32||1|
|VDD||Supply voltage of ESP32||2|
|ESP_TXD||Connect to TX pin of ESP32, RX pin of programmer||3|
|ESP_RXD||Connect to RX pin of ESP32, TX pin of programmer||5|
|ESP_IO0||Hold low, then reset ESP32 to enter bootloader (make ESP32 ready to accept program over serial lines)||6|
Schematic Symbol and PCB Footprint
Find the KiCad schematic symbol and PCB footprint in this Github repo, use the
TC2030-IDC_ESP symbol, which has the pins labelled for ESP32 as listed in the table above. I like having the signal names in the symbol, so its harder to mix the pins up (trust me, it happens more than I’d like to admit).
Cable and Programmer
You may be thinking, holy heck this cable is expensive! But keep in mind, you only need to buy it once to use on every future project. Say goodbye to soldering programming headers from now on and hand over your hard-earned $34.
|Item||Part Number||Where to buy||Cost (USD)|
|Tag Connect Cable||TC2030-IDC-NL||Tag Connect||33.95|
|ESP Programmer||ESP-PROG||Digikey, Mouser||12.00|
|Tag Connect Clip (optional but reccomoneded, otherwise you have to hold cable on board)||TC2030-CLIP-3PACK||Tag Connect||18.00 (3 pack)|
One note about the clip, if you are too cheap to buy the real ones (this is me), I found a nice 3D-printable clip that works decently well on Thingiverse.
I hope this header helps make your future ESP32 projects quicker and easier! Let me know in the comments how this works for you. In the future, I plan to update the KiCad library in GitHub with symbols for other microcontrollers as well (thinking ARM SWD will be next).