
Final 3D PCB Render with Color-Coded Silkscreen 
Final 3D PCB Render with Color-Coded Silkscreen
This project is a universal USB-to-Serial flasher board based on the CH340C USB-UART bridge.
It is designed for ESP8266, ESP32, ESP01, Arduino, and other microcontrollers with UART bootloading.
Unlike cheap USB-to-TTL adapters, this flasher includes:
- Auto-programming circuit (RTS/DTR β EN/IO0)
- Reset & Boot pushbuttons for manual control
- Colored silkscreen pin labels for easy connection
- Status LEDs (PWR, TX, RX)
- USB-C connector with ESD protection
- Clean PCB layout with ground pours
This makes it a reliable, beginner-friendly, and professional-quality programmer.
- π USB-C connector (reversible, modern interface)
- β‘ CH340C USB-UART chip (stable drivers, Windows/Linux/macOS support)
- π ESD protection diodes on USB D+/Dβ
- π Auto-reset circuit for ESP32/ESP8266 (no need to hold BOOT manually)
- βΉ Manual RESET & BOOT buttons for recovery and testing
- π Color-coded silkscreen pin labels for easy wiring:
- 3.3V (Red), 5V (Purple), GND (Black), TX (Orange), RX (Green), RST/DTR (Blue), EN/IO0 (Yellow)
- π‘ LED indicators:
- Green = Power
- Orange = TX activity
- Yellow = RX activity
- π‘οΈ SJ jumpers (SJ_RTS, SJ_DTR) to enable/disable auto-programming
- π Compact PCB: ~62 Γ 27 mm
| Pin | Function | Color |
|---|---|---|
| 3.3V | 3.3 V output | π΄ Red |
| 5V | 5 V from USB | π£ Purple |
| GND | Ground | β« Black |
| TX | UART Transmit | π§ Orange |
| RX | UART Receive | π© Green |
| RST | Reset / EN | π¦ Blue |
| DTR | Data Terminal Ready | π¦ Blue |
| EN | Chip Enable | π¨ Yellow |
| IO0 | Boot Mode Select | π¨ Yellow |
Two solder jumpers are included:
- SJ_RTS β Connects RTS β EN (reset line).
- SJ_DTR β Connects DTR β IO0 (boot line).
- Default = closed (auto-programming works normally).
- If you cut the jumper, auto-reset for that pin is disabled.
- This lets you take manual control via the pushbutton, useful for debugging or when using the board as a generic USB-UART adapter.
π For ESP32/ESP8266 flashing: leave both SJ closed.
π For Arduino or other MCUs without auto-program support: you can cut them.
Here are the key components (from your BOM):
| Qty | Reference | Value | Part No / Notes |
|---|---|---|---|
| 1 | U2 | CH340C | USB-UART bridge |
| 1 | U1 | SGM2212-3.3 | 3.3V LDO regulator |
| 2 | Q1, Q2 | MMBT3904 | NPN for auto-program |
| 2 | R8, R9 | 100k | Base pulldown resistors |
| 2 | R1, R2 | 10k | Base resistors (RTS/DTR) |
| 2 | R4, R5 | 10k | Pull-ups (EN, IO0) |
| 1 | R3 | 1k | Power LED resistor |
| 2 | R6, R7 | 2.2k | TX/RX LED resistors |
| 3 | LED1-3 | Green/Orange/Yellow | Power, TX, RX indicators |
| 3 | D2βD4 | LESD5D5.0 | USB ESD protection |
| 1 | D1 | 1N5819 | Reverse protection |
| 5 | C1βC5 | 10 Β΅F | Bulk capacitors |
| 3 | C3, C5, C6 | 100 nF | Decoupling capacitors |
| 2 | SW1, SW2 | Reset/Boot buttons | Tactile SMD |
| 1 | USB1 | USB-C connector | Receptacle |
(π Full detailed BOM available in Excel file)

Final routed PCB layout with ground pours
- Connect the board via USB-C to your PC.
- Install CH340 drivers (Windows only, Linux/macOS usually auto-detect).
- Connect your target microcontroller using the 9-pin header.
- ESP32/ESP8266: connect 3.3V, GND, TX, RX, EN, IO0.
- Arduino: connect VCC, GND, TX, RX, RST.
- Flashing ESP8266/ESP32:
- Auto-programming works (no need to hold BOOT).
- Use Arduino IDE / esptool.py / PlatformIO to upload code.
- Flashing Arduino/AVR:
- Connect TX/RX + RST.
- Disable SJ jumpers if needed.
- Manual boot mode:
- Hold BOOT + press RESET β release RESET, then release BOOT.
- LEDs:
- PWR = board powered
- TX = blinks when sending data
- RX = blinks when receiving data
- π’ Safer for ESP (3.3V regulated output, correct auto-programming circuit).
- π’ Beginner-friendly (color-coded silkscreen, clear pinout).
- π’ Robust USB-C connector with ESD protection.
- π’ Supports multiple targets: ESP32, ESP8266, ESP01, Arduino, STM32 (UART bootloader).
- π’ Debug-friendly: RESET/BOOT buttons, jumpers to disable auto-reset.
- β 3D Render (top view)
- β PCB Layout (routing + pours)
- β BOM (Excel, LCSC parts)
- β Schematics (EasyEDA / PDF)
All files can be published on GitHub/PCBWay for sharing.
- π Schematic (PDF)
- π BOM (Excel)
- π Pick And Place (Excel)
- π PCB Layout (PNG)
- π 3D Preview (PNG)
π¨βπ» Designed by ElectroIoT
π Website: https://electroiot.in
βΆοΈ YouTube: ElectroIoT-IN
πΈ Instagram: @electroiot_in
π§ Email: electroiot.in@gmail.com
β¨ Open Source Hardware for Makers β Share, Learn & Build Together!
