user-img

Manoranjan Das

+ Follow

ESP & Arduino Universal USB Flasher (CH340C Based)

ESP & Arduino Universal USB Flasher (CH340C Based)
 
  • thumbnail-img
 

Story

 

 

 

 

 

 

 

 

 

📖 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

📄 Schematic (PDF)

📄 BOM (Excel)

📄 Pick And Place (Excel)

📄 PCB Layout (PNG)

📄 3D Preview (PNG)

 

🌐 Author & Contact

👨‍💻 Designed by ElectroIoT

🔗 Website: https://electroiot.in

▶️ YouTube: ElectroIoT-IN

📸 Instagram: @electroiot_in

📧 Email: electroiot.in@gmail.com

 

Code
  • https://github.com/ElectroIoT/Universal-USB-To-Serial-Flasher
    View
Schematic and Layout
  • https://github.com/ElectroIoT/Universal-USB-To-Serial-Flasher
    View
CAD-Custom parts and enclosures

ESP & Arduino Universal USB Flasher (CH340C Based)

25
 
2
0
2
These revenues will go back into supporting creators, contests, and the open source ecosystem, and more.

Share your project on social media to expand its influence! Get more people to support it.

  • Comments( 0 )
  • Like( 2 )
/1000
Upload a photo:
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP

You May Also Like

View All
Add to cart
Board Type : GerberFile :
Layer : Dimensions :
PCB Qty :
Different PCB Design
PCB Thickness : PCB Color :
Surface Finish : Castellated Hole :
Copper Weight : 1 oz Production Time :
Total: US $
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.

PCB Assembly

PCBA Qty: BomFile:
NO. OF UNIQUE PARTS: NO. of Components:
Country: Shipping Way:
Assembly Cost: US $
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
3dPrintingFile : Size :
Unit : Volumn :
3D Printing Qty : Material :
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
Acrylic Type : AcrylicFile :
Dimensions: Engrave:
Acrylic Qty :
Acrylic Thickness:
Acrylic Color:
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
CNC Milling File : Size:
Unit: Volumn:
CNC Milling Qty : Material:
Type of Aluminum: Surface Finish:
Tolerance:
Surface Roughness:
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
Item Price Qty Subtotal Delete
Total: US $0.00
Certified Product | Supported Purchase: Full After-sales Protection