CC-BY-SA 3.0

Recommend Projects

ESP Programmer

1 year ago 2615
  • Description
  • Documents
  • BOM
  • Attachments
  • Members
  • Comments


The ESP Programmer is the successor of ESP8266 Programmer, a board to upload firmware on ESP8266, ESP32, and ESP32-S2. Like the predecessor, it benefits the USB-C connector, but it is improved replacing the CH340 with Silicon Labs CP2104 USB-serial converter (smaller footprint), adding 2 LEDs to show the status of RX and TX line and improving ESD protection. The board is designed to safely power up a ESP at 3.3V, so 5V is not routed out. If another power source is active on your target board, you can disable the output at 3.3V. This will prevent to damage the power circuits of the boards.

It can be attached to your target board through 2 connectors:

  • 1x06 1.27mm-pitched header. This miniaturized pitch was chosen to save as much area as possible. For the traditional 2.54mm pitch, please consider the previous version of ESP8266 Programmer.
  • "standard" Lolin D1 mini shield form factor. If you are not going to use this form factor, you can break the external frame gaining some mm^2 (video).

Main Components

  • Serial-USB converter Silicon Labs CP2104/CP2102N
  • A low dropout voltage regulator ME6211 (max 500mA)
  • 2 NPN digital transistors to control output pins embedded in UMH3N
  • USB-C connector for power supply and data

CP2104 to CP2102N

CP2104 was replaced by CP2102N since now the former is not recommended for new design. Moreover, comparing to CH340C, it provides some interesting features such as LDO, one-time programmable ID, and so on... Ok yeah, I know that they are not really necessary for this specific project, but it is a good excuse to start to play with it 😁. Here the official guide to migrate to CP2102N.


This board is entirely solderable by hand, no need of stencil. You will need the hot air gun for the USB-C connector, CP2104, and UMH3N.


You just need to install the driver for the CP2104/CP2102N.


  • 2.0.0 ✅: this is the first version of this project, to remember that this project derives from ESP8266 Programmer. It is based on Silabs CP2104. Unfortunately today this components is marked as not recommended for new design. The pin-compatible successor is CP2102N, here the official document describing the seamless migration.
  • 2.1.0 ❔: this version is based on CP2102N (28 pins). It provides 3 test pads to detect amount of current available from USB port. This version will never be tested.
  • 3.0.0 ✅: Board shape; 2 pitches for output pin (1.27mm and 2.54mm); 3D model; enabler for 3.3V
  • 4.0.0 ❔: Extend board height from 19 to 20mm to be complaint to JLCPCB-assembly service's capabilities

EasyEDA doesn't let you switch among releases unless you have complete access to the project. If you have a question about old versions, send me a message.

Versioning conventions

Each manufactured board must have a version. Version advancements are ruled accordingly to Semantic Versioning, similarly to what usually happens in software development.

To quickly identify the status of each version, I use emojis. The following list explains their meaning:

  • A White Heavy Check Mark (✅) means that it is successfully tested;
  • A Negative Squared Cross Mark (❎) means that it was almost successfully tested (the main functionalities are fine), but there are bugs affecting minor funcionalities;
  • A Warning Sign (⚠) means that the board is not usable out of the box but the bugs are fixable in DIY (decent) fashion;
  • A Cross Mark (❌) means that there are some problems that makes it unusable;
  • A White Question Mark Ornament (❔) means not tested.


ESP Programmer

ESP Programmer


ID Name Designator Footprint Quantity
1 1uF C1,C3 C0603 2
2 100nF C2 C0603 1
3 10uF C4 C0603 1
4 SP0505BAHTG D3 SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BR 1
5 1206L050YR F1 F1206 1
6 Header-1.27 H1 1X06 1.27MM HOLES HEADERS PINS 1
8 Header-2.54 H3 1X06 2.54MM HOLES HEADERS PINS BARE 1
9 LED RED LED1,LED4 LED-0603 2
10 LED GREEN LED2 LED-0603 1
12 470 R1 R0603 1
13 5.1k R2,R3 R0603 2
14 1k R4,R5,R6,R7 R0603 4
15 4.7k R8 R0603 1
16 22k R9 R0603 1
17 47k R10 R0603 1
19 UMH3NTN U3 SOT-363_L2.0-W1.3-P0.65-LS2.1-TL 1
20 ME6211C33R5G U4 SOT-353_L2.1-W1.3-P0.65-LS2.3-BL 1
21 CP2102N-A01-GQFN24 U5 QFN-24_L4.0-W4.0-P0.50-BL-EP2.6 1
22 USB-310F USB1 USB-C-SMD_20P-P0.50-L6.5-W8.9 1


The owner does not allow comments in this project now

Comments (7)

Mark Dyer Reply

Hi. Some parts are discontinued.  Thanks.

Fabiano Riccardi Reply

@intelliservenz Hi Mark, could you tell me which parts? I'm aware only about CP2104-F03-GM

Fabiano Riccardi Reply

@intelliservenz Switched to CP2102N

SdRW ik Reply

Hello can you please again update discontinued parts ? Iam new so iam afraid of placing bad components.  Thank you.

SdRW ik Reply

Also little change that can help someone is to rezise board from 19mm to 20mm because LCSC assembly is allowed from boards of minimal size 20x20.Thank you and I appreciate your work!!

Fabiano Riccardi Reply

@martinsugar71 Hi, thanks for the suggestion. I will try to update the layout to match JLCPCB's capabilities as soon as possible.

Fabiano Riccardi Reply

@martinsugar71 Hi, now the board fits the JLCPCB capabilities. Unfortunately, they do not have all the required components. LCSC does not have some pieces in stock (I regularly check, but I have never seen them), but you can easily buy (and assemble) them from other stores.

如果需要转移工程请在个人中心 - 工程 - 工程高级设置 - 下载工程,下载后在 打开保存即可。
有问题联系QQ 3001956291 不再提醒
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow
We use cookies to offer you a better experience. Detailed information on the use of cookies on this website is provided in our Privacy Policy. By using this site, you consent to the use of our cookies.