Initial KiCad project
This commit is contained in:
251
Midea_ESP/USB_TO_SERIAL_ADAPTERS.md
Normal file
251
Midea_ESP/USB_TO_SERIAL_ADAPTERS.md
Normal file
@@ -0,0 +1,251 @@
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
## Recommended USB-to-Serial Adapters
|
||||
|
||||
### 1. **CP2102** (Recommended) ⭐
|
||||
|
||||
**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:
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user