FTDI Development Board | FT260S and FT312D
A KiCad breakout board for two FTDI USB interface chips — the FT260S and the FT312D — alongside a USB‑C EMC front end, an ESP32 with an auto‑reset circuit and a TS5A3153 analog switch.
It is one of the breakout boards for the EJA "Intelligent Popup Buoy" project (2021 Hackaday Dream Team). The question it was built to answer: is there a single USB‑C interface chip that can both program the ESP32 (via the RTS/DTR auto‑reset handshake) and act as a serial console, so the buoy needs only one USB connector?
Findings
| Under test | Result |
|---|---|
| FT260S | A USB‑HID device, not USB‑CDC — it exposes no virtual COM port. Talking to it needs FTDI's LibFT260 helper library, so it can't transparently program the ESP32 from the Arduino IDE without extra software work. |
| FT312D | A USB‑Host UART bridge that does not expose DTR/DSR — the lines the ESP32 auto‑reset circuit needs. On the board only as a fallback. |
| ESP32 auto‑reset circuit | Verified working when driven by a standard FT232RL cable (3V3, GND, TX, RX, RTS, DTR): the two‑transistor circuit correctly sequences EN and IO0 for reset and bootloader entry. |
| USB‑C EMC front end / TS5A3153 switch | Populated and validated for reuse. |
Neither FTDI part turned out to be a drop‑in replacement for an FT232‑style programmer, but the board proved out the USB‑C EMC front end and the ESP32 auto‑reset circuit that were carried into EJA M.
Hardware Design
USB C Port with Electromagnetic Compatibility EMC
Everything starts with the USB C port, this type of USB was selected because of its size and the growing trend of using this port to charge and communicate with portable devices.
The design includes Transient Voltage Suppression (TVS) diodes and Ferrite Beads to reduce the Electromagnetic Interference (EMI). These protections for the USB port will add compliance with the EMC regulations and standards from the Federal Communications Commission (FCC) and the European Union.
Schematic of the FTDI Dev Board: USB C and EMC protections.
FTDI 1 - FT260S
The first USB-to-UART/I2C FTDI device being tested is the FT260S-U. The design only considers the USB to UART, therefore the I2C is left unconnected.
Schematic of the FTDI Dev Board: Circuit for the FTDI FT260S-U.
Note: the FT260S was originally picked to both program the ESP32 and provide the serial console. It turned out to be a USB‑HID class device, so — unlike the FT232R — it does not enumerate as a virtual COM port; interfacing with it requires FTDI's LibFT260 helper library (AN 394, AN 395). That extra software layer is why it can't seamlessly program the ESP32 from a stock toolchain — see Findings above.
FTDI 2 - FT312D
The second USB TO UART/I2C FTDI that is being tested is the FT312D-32L1C-R. This IC does not support DTR/DSR for the UART, a feature that is required for the auto reset circuit of the ESP32 that was implemented, nevertheless the PCB has it as a second alternative.
Schematic of the FTDI Dev Board: Circuit for the FTDI FT312D-32L1C-R.
ESP32 with Auto Reset
Finally, the ESP32. The design includes an auto reset circuit that uses RTS and DTR to reset and put in bootloader mode the ESP32. For more information about this circuit, these blogs [1] [2] can be useful.
Schematic of the FTDI Dev Board: Auto reset circuit for the ESP32.
SPDT Switch
The design includes a couple of TS5A3153DCUR that will be tested for future implementations.
Schematic of the FTDI Dev Board: Circuit for the SPDT switch TS5A3153DCUR.
Bill of Materials
PCB
3D Model of the PCB design of the FTDI Dev Board.
3D Model of the PCB design of the FTDI Dev Board.
Testing
The designed auto reset circuit requires the signals 3.3V, GND, TX, RX, RTS and DTR. The commercial USB to Serial Converter (FT232RL) was used to test the circuit, it provides all the required signals.
Commercial USB to Serial Converter used for testing.
The following wiring diagram shows how to connect the commercial USB to Serial Converter and our FTDI Development Board.
Wiring diagram for the FTDI Dev Board and the Commercial USB to Serial Converter.
Wiring diagram for the FTDI Dev Board and the Commercial USB to Serial Converter.
Once the 2 boards were connected and the USB to Serial Converter was plugged, the PC (in Windows) recognized the device and it was ready to use. Check if you need to install drivers associated to the FTDI, that is often the case.
Note: Before testing the following code, verify that the ESP-IDF is installed and the Arduino IDE can program ESP devices.
The code used is very simple, the ESP32 sends a "Hello world" message through the serial communication every second.
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hello World");
delay(1000);
}
The standard Arduino IDE was used to program the ESP32, with the following configurations:
Setup of the Arduino IDE for the test.
And the test was successful, the following image shows the results in the serial monitor.
Results of the test.