I have been using Raspberry Pis, and years ago purchased a USB-TTL cable (which I believe is USB to TTL Serial UART RS232 Adaptor (PL2303TA) | 018-USB-PL2303HX | Core Electronics Australia). I have since got into Home Assistant and connected several off-the-shelf devices. I am thinking maybe now is the time to try “building” some of my own, and it appears that ESP devices will integrate nicely using ESPhome. I have not got into Arduino, and would rather not install Arduino IDE just because some some random YouTube video uses it. KISS !
I have connected an AI-thinker ESP32-CAM device to my PC with the cable, and eventually got the serial communication/firmware ESPhome upload working … but in the process have come across comments suggesting that we need different cables for different devices. Looking at my next project using a ESP-01S (*), I am thinking maybe it’s time to upgrade to a better/newer USB-TTL cable which exposes both 5V and 3V3 voltages, DTR and RTS, has LEDs to see which signals are being used, and … what else might be useful ? I would rather spend a little more to get one cable than to waste time and money fiddling with multiple cables.
I see that Core have quite a selection, which just makes it harder for someone like myself without the electronics background. I have seen FTDI Friend recommended; and I like the look of DFRobot FTDI Basic Breakout 3.3/5V or Adafruit CP2102N Friend units because of the jumper for voltage and all those header points along the side exposing other Serial pins.
So… I request your experiences and recommendations for the best / newest USB-TTL cable.
(*) which wants 3V3 instead of my cable’s 5V. I just found out that a soldering job can change my cable to 3V3 - but I don’t trust my soldering to keep changing back and forth.
In my little adventure/project(you can find it on my profile, tis pending an update) I came across the ESP-PROG. It’s great for programming ESP based modules as it also includes the DTR and RTS auto reset circuit.
I’ve used the CP2104 in projects and it features the same chip in quite a few other ESP32 based modules/dev kits. As a plus side it also works with 3.3 and 5 V!
All modules are more or less doing the same thing, getting your ESP board into the firmware upload boot option then sending your code via a serial connection (and also waiting for confirmation messages).
As @Liam120347 mentioned the ESP-PROG is great, it breaks out JTAG (a different programming protocol and the serial lines from the FTDI chip onboard, and handles some niceties) if you are developing your own PCB’s.
you shouldn’t need different cables. Nearly all ESP devices have a USB chip and auto boot and reset capabilities that make programming just a matter of using almost any USB cable (as long as it has both power and data wires in it). The boards also include a voltage regulator that generates the 3.3 from the USB. Have a look at https://www.espressif.com/en/products/devkits/esp32-devkitc/overview.
If/when you need to use the modules directly there’s a whole new thing with designing PCBs and interface circuitry.
Given my soldering inability I eliminated those without jumper for power voltage
Flashy TX and RX lights made sense back when at 300 baud, but at todays high baud rates do they tell you any more than the jumble on the screen ?
I have seen JTAG mentioned, so the ESP-PROG looks interesting. The cables provided are obviously for a specific subset of product(s), and unfortunately the “Automatic Downloading Function” appears to be a bit of by-engineers-for-engineers magic … leaving me questioning whether it will work with other products.
Michael, I am wanting to KISS - Keep it Simple … not to add the time, frustration and learning curve of yet another project
This leaves the RTS or DTR issue. Why do “standards” always get interpreted in a dozen incompatible ways ?
It seems there is an almost-standard 6-pin FTDI cable, except that some use RTS (Ready To Send) and others use DTR (Data Terminal Ready) - which I learnt a long time ago are not the same thing. It would be nice to use a jumper to select RTS or DTR onto the 6-pin header, allowing one tidy 6-pin connector cable - but no. Using multiple individual jumper wires will be a bit more fiddly, but very workable.
All excellent points! Not everyone will have the same use-case.
A LED is one of the best debugging tools (in my opinion still trumped by a multimeter) the LED’s can give you an indication if there is some traffic on the serial bus (not so much the transmission but definitely receive) given everythings just using jumper wires you can still hook some up after the fact to confirm!
An excellent choice!
And you can get our latest projects and tips straight away by following us on: