My next project will probably feature an ESP32 and I would like to be able to re-flash it with a new firmware even when it is firmly soldered on its PCB. As as a result, I looked for USB interfaces chips and although the official ESP32 devkit uses a CP2102, I decided to go with a FT231XS; which is also the chip used in the Sparkfun’s ESP thing.
There are a few reasons for this choice, but the main one being the FTDI’s availability as a TSSOP package which is a lot easier to deal with than the pesky QFN.
I implemented the vendor’s typical application sheet:
The component F1 is called a ferrite bead. It adds impedance to the 5V rail and is how FTDI recommends filtering the input. I used a 10 ohm ferrite bead to limit the current to 500mA. FTDI also recommends adding more bulk capacitance via a 4.7uF capacitor, but I didn’t have any at hands so I omitted it completely.
It’s almost impossible to get 0.65mm (~25mil) pitch on a custom PCB so I used a TSSOP to DIP adapter.
And for simplicity: no USB connector frills on this board! As you can see above I simply used a USB cable that breakouts the 5 pins of USB 2.0.
Success! It’s important to test small building blocks of a bigger PCB as you don’t want to spend hundreds of dollars redoing the whole project simply because one tiny part of your design didn’t work as expected!