[{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/221/original/edited_IMG_5759.jpg?1768325538","metadata":{}},{"element_type":"text","content":"\n  \n  \n        \u003cp\u003eIf you've ever worked with the ESP32, you'll know that it does not have native USB. Most ESP32 development boards will include a USB to serial converter chip, like the \u003ca href=\"https://www.adafruit.com/product/5335\" target=\"_blank\"\u003eCP2102N\u003c/a\u003e that you'll see on the \u003ca href=\"https://www.adafruit.com/product/5400\" target=\"_blank\"\u003eFeather ESP32 V2\u003c/a\u003e. If you're working with a bare ESP32 though, or maybe doing some reverse engineering, what do you do?\u003c/p\u003e\n      \n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n        \u003ch2\u003eParts\u003c/h2\u003e\n\u003cp\u003eI was in this position for a project I'm currently working on. I'm doing some reverse engineering on the Yoto Mini player, which uses an ESP32. I needed to access the chip over serial for programming and it would need to be repeatable. I wanted it to be non-destructive to the board yet stable and to use parts that I already had in my parts bin.\u003c/p\u003e\n\u003cp\u003eI decided to solder up the programming circuit to a \u003ca href=\"https://www.adafruit.com/product/1608\" target=\"_blank\"\u003e1/4 size perma proto\u003c/a\u003e that I could plug in a USB serial/FTDI cable. You don't need an FTDI cable here, you could just use a\u0026nbsp;\u003ca href=\"https://www.adafruit.com/product/954\" target=\"_blank\"\u003eUSB to TTL Serial Cable\u003c/a\u003e, but I always keep the FTDI cable in my desk drawer.\u003c/p\u003e\n      \n\n\n","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/70","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eThe Yoto Mini has the programming pins broken out at the top of the board, which is common for programming in manufacturing. However, the spacing and pad holes are too small for standard headers. I used a pair of 1.25mm matched cables with one side soldered to the programming header on the board and the other to the breakout. This will be easy to either leave connected to the Yoto Mini or desolder.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/4986","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eThe ESP32 uses 3.3V, so I used a 3.3V Buck Converter breakout to step down the 5V from USB. I considered using a resistor divider but I had this breakout in my parts bin and it makes it really easy and stable.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/4711","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n        \u003cp\u003eI really like these soft tactile buttons in the shop, so I used them for the BOOT and RESET buttons.\u0026nbsp;\u003c/p\u003e\n      \n\n\n\n","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/3101","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eYou need a \u003ca href=\"https://www.adafruit.com/product/2784\" target=\"_blank\"\u003e10K resistor\u003c/a\u003e for the RESET button and I used \u003ca href=\"https://www.adafruit.com/product/4235\" target=\"_blank\"\u003epin headers\u003c/a\u003e to plug the FTDI cable into.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eCircuit Diagram\u003c/h2\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/220/original/programmerBreakout_bb.jpg?1768316315","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003e(The wire colors match the cable pair colors)\u003c/p\u003e\n\u003ch4\u003eESP32\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eEnable (EN)\u003c/strong\u003e to \u003cstrong\u003eBOOT button (red wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReset (RST)\u003c/strong\u003e to \u003cstrong\u003e10K resistor to RESET button (black wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTXD\u003c/strong\u003e to \u003cstrong\u003eFTDI RX (yellow wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRXD\u003c/strong\u003e to \u003cstrong\u003eFTDI TX (green wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGND\u003c/strong\u003e to \u003cstrong\u003eFTDI GND (blue wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e3.3V\u003c/strong\u003e to \u003cstrong\u003eTLV62569 3V (red wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFTDI/USB Serial\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eGND\u003c/strong\u003e to \u003cstrong\u003eTLV62569 GND (black wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eGND\u003c/strong\u003e to \u003cstrong\u003eBOOT and RESET button GND (black wires)\u003c/strong\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e5V\u003c/strong\u003e to \u003cstrong\u003eTLV62569 Vin (orange wire)\u003c/strong\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n      \n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/222/original/edited_IMG_5753.jpg?1768325551","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eUse\u003c/h2\u003e\n\u003cp\u003ePlug the cable pairs into each other to connect the ESP32 to the programmer breakout. Then, plug the FTDI/USB serial cable into the headers on the breakout. Plug the USB cable into your computer and you can use the BOOT and RESET buttons to get into bootloader mode to interface with the ESP32.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/223/original/edited_IMG_5754.jpg?1768325560","metadata":{}}]