Site icon ElectroIoT

๐Ÿš€ ESP & Arduino Universal USB Flasher (CH340C Based)

3D Render Front
Final 3D PCB Render with Color-Coded Silkscreen
Final 3D PCB Render with Color-Coded Silkscreen


๐Ÿ“– Overview

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:

This makes it a reliable, beginner-friendly, and professional-quality programmer.


โšก Features


๐Ÿงฉ Pinout

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

๐Ÿ› ๏ธ SJ_RTS and SJ_DTR

Two solder jumpers are included:

๐Ÿ”น Why they are useful

๐Ÿ‘‰ For ESP32/ESP8266 flashing: leave both SJ closed.
๐Ÿ‘‰ For Arduino or other MCUs without auto-program support: you can cut them.


๐Ÿ“ฆ Bill of Materials (BOM)

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)


๐Ÿ–ผ๏ธ PCB Layout


Final routed PCB layout with ground pours

๐Ÿ–ผ๏ธ PCB Schematic


Final routed PCB Schematic


๐Ÿ”Œ How to Use

  1. Connect the board via USB-C to your PC.
    • Install CH340 drivers (Windows only, Linux/macOS usually auto-detect).
  2. 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.
  3. Flashing ESP8266/ESP32:
    • Auto-programming works (no need to hold BOOT).
    • Use Arduino IDE / esptool.py / PlatformIO to upload code.
  4. Flashing Arduino/AVR:
    • Connect TX/RX + RST.
    • Disable SJ jumpers if needed.
  5. Manual boot mode:
    • Hold BOOT + press RESET โ†’ release RESET, then release BOOT.
  6. LEDs:
    • PWR = board powered
    • TX = blinks when sending data
    • RX = blinks when receiving data

๐Ÿ“‘ Why Use This Board


๐Ÿ“ธ Project Assets

All files can be published on GitHub/PCBWay for sharing.


๐Ÿ“‚ Downloads


๐ŸŒ Author & Contact

๐Ÿ‘จโ€๐Ÿ’ป 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!


Exit mobile version