🚀 ESP & Arduino Universal USB Flasher (CH340C Based)


📖 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:
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.
⚡ Features
🔌 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
🧩 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:
SJ_RTS → Connects RTS → EN (reset line).
SJ_DTR → Connects DTR → IO0 (boot line).
🔹 Why they are useful
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.
📦 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
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
📑 Why Use This Board
🟢 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.
📸 Project Assets
✅ 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.
📂 Downloads
🌐 Author & Contact
👨💻 Designed by ElectroIoT
🔗 Website: https://electroiot.in
▶️ YouTube: ElectroIoT-IN
📸 Instagram: @electroiot_in
📧 Email: electroiot.in@gmail.com
🚀 ESP & Arduino Universal USB Flasher (CH340C Based)
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(0)
- Likes(0)
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by MANORANJAN DAS
-
EasyArduino
EasyArduino by ElectroIoTThe ultimate beginner’s board to learn, build, and master Arduino the easy ...
-
🚀 ESP & Arduino Universal USB Flasher (CH340C Based)
OverviewThis project is a universal USB-to-Serial flasher board based on the CH340C USB-UART bridge....
-
Advanced 4-Channel 5V Relay Module with Onboard LM2596 Power Supply
IntroductionRelay modules are essential in home automation and electronics projects, allowing microc...
-
DIY XL4015 5V/5A USB Power Supply – Perfect for Raspberry Pi & More
DIY XL4015 5V/5A USB Power Supply – Perfect for Raspberry Pi & MoreBuilding a reliable 5V power ...
-
7805 Voltage Regulator SMD
Story️ Project DetailsName: 7805 Voltage RegulatorType: Linear Voltage RegulatorInput Voltage: 7V to...
-
Multi-Voltage-Regulator-PCB-(12V-9V-5V-3.3V)
Multi-Voltage Regulator PCB (12V, 9V, 5V, 3.3V) Project OverviewThis project demonstrates the design...
-
7805 Voltage Regulator
Project OverviewThis project demonstrates how to build a simple Voltage Regulator using the 7805 int...
-
🔌 ESP32-C3-Based 8-Channel Smart Home Automation Relay Board
Detailed Project DescriptionThis project is a compact, powerful, and cost-effective 8-channel smart ...
-
ESP8266 NTP Clock with 16x2 I2C LCD Display
This project uses an ESP8266 NodeMCU to create a 12-hour format NTP clock with AM/PM, date, and day ...
-
ESP8266 Nodemcu 4 Ch Relay Module For IoT Project
OverviewThis project allows you to control four relays using an ESP8266 (NodeMCU) via the Arduino Io...
-
ESP32 Water Level Monitor And Automictic Motor Control 30A relay
ESP32 Water Level Monitor And Automictic Motor Control 30A relayUsed ESP32 ModuleOled DisplayUltraso...
-
4 CH Relay Module With ESP32 For Home Automation ,Alexa,Google Home
Hello All My FriendThis is Simple Easy To USE 4 Ch Relay Module With ESP32 SupportUse This Board For...
-
8Ch Relay With ESP8266 Wemos D1 Mini Work With Amazon Alexa And Google Home
This Project8Ch Relay With ESP8266 Wemos D1 Mini Work With Amazon Alexa And Google HomeSimple parts ...
-
PiTrezor : A DIY bitcoin hardware wallet based on trezor and raspberry pi zero
Hello Everyone This is One Of Best Project Who Want To Make OWN hardware wallet At low Cost or Make ...
-
100mm X 50nn DIY Universal Board
100mm X 50nn DIY Universal Board
-
Simple Internet Clock Using ESP8266 DHT11
Hello Everyone This Project is Simple Internet Clock Using Esp8266 And DHT11 Upload Video And More T...
-
Micro USB FTDI Board With Dual Header
Micro USB FTDI Board With Dual Header
-
Micro USB FTDI Module FT232RL
Hello Everyone All FTDi Module In Market is Mini USB Version And Its Little Complicated To Find Mini...
-
-
AEL-2011 Power Supply Module
512 0 2 -
AEL-2011 50W Power Amplifier
472 0 2 -
-
-
Custom Mechanical Keyboard
688 0 0 -
Tester for Touch Screen Digitizer without using microcontroller
321 2 2 -
Audio reactive glow LED wristband/bracelet with NFC / RFID-Tags
304 0 1 -
-
-







