The ESP Programmer is the successor of [ESP8266 Programmer](https://easyeda.com/fabiano.riccardi/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](https://youtu.be/vi9zZSLOqzo)).
## 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](https://www.silabs.com/documents/public/application-notes/an976-cp2102-3-4-9-to-cp2102n-porting-guide.pdf) 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](https://www.silabs.com/documents/public/application-notes/an976-cp2102-3-4-9-to-cp2102n-porting-guide.pdf) 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.
Collect to album