Skip to the content
PCBKitNew board
2 layers42.2 × 28.7 mmESP Programmer, the printed circuit board in 3D

FTDI Breakout with Auto reset for ESP chips

Size
42.2 × 28.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
31
Pads
112
Tracks, vias
282, 27
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
21 Aug 2021
Updated
11 May 2022

Overview

ESP Programmer is an open-source printed circuit board by DerekParks, from the DerekParks/FTDI_ESP_Programmer repository on GitHub. It is a 2-layer board of 42.2 × 28.7 mm with 28 parts on 31 nets, routed with 282 tracks and 27 vias.

It is built around the FT232RL-REEL and MBT3904DW1T1G-HXY. Its parts include 7 capacitors, 6 resistors, 4 connectors, 2 diodes and 2 switches. It belongs with the interfaces and adapters boards of this library.

Main components

2

README

README.md

A FTDI Breakout with auto reset

Motivation

Around 2008-ish Sparkfun started selling their FTDI basic breakout. These were great! And really helped me move beyond having a full Arduino Uno inside of every project.

Fast forward to today. ESP's are king! But we are in a similar situation where most dev boards include a built in USB-to-TTL chip. At least now, we are using FTDI clones that are cheaper. But I still don't want to include extra hardware just for programming in every project!

For years I have used the 3.3v version of Sparkfun's FTDI breakout for programming ESP's. And for an equal amount of years, I've been annoyed that auto-reset doesn't work like on the all-in-one dev boards.

I will freely admit that support for OTA updates has made this less of an annoyance. But when I am working out bugs, I find iterating with a physical programmer faster.

So at some point during the pandemic, I setout to figure out how the auto-reset feature on ESP's works and to make my own FTDI programmer.

The Programmer

Schematic

PCB

V1 programmer ("V1 where I forgot to add current limiting resistors to the status LED's, D'oh!")

There are also physical tactical flash and reset buttons in case for some reason my amazing auto-reset circuit fails.

New standard pinout?

Do I even need to link the standards xkcd? Yes, I am proposing a new standard pinout.

Old PinoutsMy Pinout
DTRRST
RXRX
TXTX
VCCVCC
CTSGPIO0
GNDGND

As you can see I've replaced DTR and CTS with RST and GPIO0, respectively. This board does have the original FTDI standard pins broken out, just-in-case, but so far I haven't ever had cause to use them.

3.3 or 5?

There is a solder jumper on the board to switch between 3.3v and 5v. It is set to 3.3v by default.

C6 & C7

The decoupling, C6 & C7 should be removed if using an ESP01 and I2C.

Parts

28
QtyValueFootprintReferences
40.1uFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC2, C3, C5, C7
4MountingHole_PadMountingHole:MountingHole_2.7mm_M2.5_PadH1, H2, H3, H4
310uFCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC1, C4, C6
210KResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR1, R2
210kResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR3, R4
2270Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR5, R6
2LEDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1, D2
2SW_SPST_SM_DPESP_Programmer:E-Switch-TL3342F160QG-0SW1, SW2
1Conn_01x04_FemaleConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1ESP_PROGConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ4
1FT232RL-REELdigikey-footprints:SSOP-28_W5.30mmU1
1FTDI_Headeravr-arduino:FTDI_HeaderJ3
1MBT3904DW1T1Gdigikey-footprints:SOT-363Q1
1SolderJumper_3_Bridged12Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm_NumberLabelsJP1
1USB_B_Microdigikey-footprints:USB_Micro_AB_Female_0475890001J1

Questions

How big is the ESP Programmer PCB?

It measures 42.2 × 28.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ESP Programmer use?

28 parts, built around the FT232RL-REEL and MBT3904DW1T1G-HXY. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the ESP Programmer KiCad files?

From the DerekParks/FTDI_ESP_Programmer repository on GitHub, at the commit this page was made from: the board is ESP_Programmer.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the ESP Programmer design in my own project?

Its repository states no licence, so its author keeps all rights: ask DerekParks before reusing the design.

Similar boards

  • 4 layers101.5 × 43.6 mmAlcantara v.1.0, the printed circuit board in 3D

    Alcantara v.1.0

    zenitheesc/Alcantara

    Mobile Ground Station for stratospheric probe monitoring and rescue. Goes well with the Zenith Monitor app.

    90 parts5
  • 2 layers80 × 96 mmProgrammer Board, the printed circuit board in 3D

    Programmer Board

    Reid-n0rc/LMS-6_Interface_Board

    Interface to the LMS-6 radiosonde carde edge connector.

    55 parts4GPL-3.0
  • 4 layers36.5 × 94.1 mmNova, the printed circuit board in 3D

    Nova

    ERFSEDS/novafc-hardware

    89 parts2
  • 4 layers124.4 × 80.4 mmStepper driver, the printed circuit board in 3D

    Stepper driver

    harp-tech/device.stepperdriver

    A stepper motor controller device for four motors including individual quadrature encoders.

    212 parts1
  • 4 layers67.8 × 76.2 mmWaveWise Buoy, the printed circuit board in 3D

    WaveWise Buoy

    GenerateNU/WaveWise

    68 parts
  • 2 layers157.5 × 129.5 mmTICAF v1, the printed circuit board in 3D

    TICAF v1

    jlopes7/pcb_layouts

    FOSS PCB Based layouts

    89 partsMIT
  • 2 layers100 × 80 mmKicad 4, the printed circuit board in 3D

    Kicad 4

    Mikrovawe/Kicad_4

    Kicad project for USB linker to ATMEGA32

    10 parts
  • 2 layers26 × 30 mmIr proj, the printed circuit board in 3D

    Ir proj

    MisguidedBadge/IR_PCB

    USB to Infrared

    28 parts