Files
ESP_Midea/Midea_ESP/USB_TO_SERIAL_ADAPTERS.md
2026-01-04 01:19:56 +02:00

5.9 KiB

a# USB-to-Serial Adapters for 6-Pin Programming Header

What You Need

For the 6-pin programming header, you need a USB-to-Serial adapter that has:

  • VCC (or 3.3V) - Optional, for powering ESP32
  • GND - Required
  • TX (Transmit) - Required
  • RX (Receive) - Required
  • DTR (Data Terminal Ready) - Required for auto-reset
  • RTS (Request To Send) - Required for auto-reset

Important: The adapter MUST have DTR and RTS pins for automatic reset to work.


Why it's good:

  • Very common and reliable
  • Excellent driver support (Windows, Linux, macOS)
  • Usually has all 6 pins (VCC, GND, TX, RX, DTR, RTS)
  • Good quality, stable operation
  • 3.3V logic levels (perfect for ESP32)

Common boards:

  • CP2102 USB-to-Serial breakout boards
  • Available from many manufacturers
  • Usually $2-5 USD

Example products:

  • Generic CP2102 breakout boards (AliExpress, eBay, Amazon)
  • SparkFun CP2102 Breakout
  • Adafruit CP2102 Friend

2. CH340 (Budget Option)

Why it's good:

  • Very cheap ($1-2 USD)
  • Common in China-made boards
  • Good Linux support
  • Usually has all 6 pins

Common boards:

  • CH340G USB-to-Serial modules
  • Very common on cheap Arduino clones
  • Available everywhere

Note: May need driver installation on Windows/macOS


3. FT232RL (Premium Option)

Why it's good:

  • Premium quality
  • Excellent driver support
  • Very reliable
  • Professional grade
  • Usually $5-10 USD

Common boards:

  • FTDI FT232RL breakout boards
  • SparkFun FT232RL Breakout
  • Adafruit FT232H (more advanced)

4. CH341 (Alternative)

Why it's good:

  • Similar to CH340
  • Usually cheaper
  • Good Linux support
  • Usually has all 6 pins

Note: May need driver installation


What to Look For

Required Features:

  1. DTR pin - Must be present (for auto-reset)
  2. RTS pin - Must be present (for auto-reset)
  3. 3.3V logic levels - ESP32 uses 3.3V (not 5V)
  4. Standard pinout - Easy to connect

Pin Configuration:

Most USB-to-Serial adapters have this pinout:

VCC  - Power (3.3V or 5V)
GND  - Ground
TX   - Transmit (to ESP32 RX)
RX   - Receive (from ESP32 TX)
DTR  - Data Terminal Ready
RTS  - Request To Send

Where to Buy

Online:

  • AliExpress - Very cheap ($1-3), ships from China
  • eBay - Good prices, various sellers
  • Amazon - Faster shipping, slightly higher prices
  • SparkFun - Quality boards, higher prices
  • Adafruit - Quality boards, higher prices
  • Digi-Key/Mouser - Professional components

Local:

  • Electronics stores
  • Maker/hacker spaces
  • Local electronics suppliers

Price Comparison

Adapter Price (typical) Quality Driver Support
CH340 $1-2 Good May need drivers
CP2102 $2-5 Excellent Excellent
FT232RL $5-10 Premium Excellent
CH341 $1-2 Good May need drivers

Recommendation: CP2102 is the sweet spot - good quality, good price, excellent support.


Connection Example

CP2102 Breakout Board to J2 Header:

CP2102 Pin J2 Pin Signal
VCC (3.3V) Pin 1 +3V3 (optional)
GND Pin 2 GND
RX Pin 3 UART_TX (ESP32 TX)
TX Pin 4 UART_RX (ESP32 RX)
DTR Pin 5 DTR (GPIO0)
RTS Pin 6 RTS (EN)

Note: RX/TX are swapped - CP2102 RX connects to ESP32 TX, and vice versa.


Driver Installation

CP2102:

  • Windows: Usually auto-installs, or download from Silicon Labs
  • Linux: Usually works out-of-the-box (built into kernel)
  • macOS: Usually auto-installs, or download from Silicon Labs

CH340:

  • Windows: May need driver download
  • Linux: Usually works out-of-the-box
  • macOS: May need driver download

FT232RL:

  • Windows/Linux/macOS: Excellent driver support, usually auto-installs

Testing Your Adapter

After connecting, test with:

# Check if device is detected
ls /dev/ttyUSB*  # Linux
# or
ls /dev/cu.*     # macOS

# Test with esptool
esptool.py --port /dev/ttyUSB0 chip_id

If it works, you'll see the ESP32 chip ID.


Common Issues

Problem: Adapter doesn't have DTR/RTS

Solution: You'll need to manually press buttons (use 4-pin header instead)

Problem: Adapter is 5V logic

Solution: ESP32 can handle 5V on UART pins (they're 5V tolerant), but 3.3V is safer

Problem: Driver not working

Solution: Download drivers from manufacturer website

Problem: Device not detected

Solution:

  • Check USB cable (some are power-only)
  • Try different USB port
  • Check drivers are installed
  • On Linux: Check user is in dialout group

My Recommendation

Get a CP2102 USB-to-Serial adapter because:

  • Excellent quality and reliability
  • Good price ($2-5)
  • Excellent driver support
  • Usually has all 6 pins (VCC, GND, TX, RX, DTR, RTS)
  • 3.3V logic levels (perfect for ESP32)
  • Very common and easy to find

Where to buy:

  • AliExpress: Search "CP2102 USB to Serial"
  • Amazon: Search "CP2102 breakout"
  • eBay: Search "CP2102 module"

What to look for:

  • Make sure it has DTR and RTS pins
  • 3.3V logic levels (or jumper-selectable)
  • Standard pinout

Alternative: Use Existing Adapter

If you already have a USB-to-Serial adapter:

  1. Check if it has DTR and RTS pins
  2. If yes → Use 6-pin header (automatic reset)
  3. If no → Use 4-pin header (manual buttons)

Most modern USB-to-Serial adapters have DTR and RTS, so 6-pin header is usually the better choice.


Summary

For 6-pin programming header, you need:

  • USB-to-Serial adapter with DTR and RTS pins
  • Recommended: CP2102 adapter ($2-5)
  • Budget option: CH340 adapter ($1-2)
  • Premium option: FT232RL adapter ($5-10)

All of these will work - CP2102 is the best balance of price and quality.