Files
DCC-Bench/WIRING_ESP32-2432S028R.md
2025-12-01 13:53:54 +01:00

204 lines
8.6 KiB
Markdown

# ESP32-2432S028R Wiring Guide
## Overview
This document describes the external connections needed for the DCC-Bench project using the ESP32-2432S028R module.
## Built-in Components (No Wiring Needed)
The ESP32-2432S028R module includes:
- ✅ ILI9341 TFT Display (320x240)
- ✅ XPT2046 Touch Controller
- ✅ MicroSD Card Slot
- ✅ USB-C Power/Programming
## External Connections Required
### 1. LM18200 H-Bridge Driver (Universal DC/DCC Output)
The LM18200 serves as **BOTH** the DC motor controller AND DCC signal booster.
It's the same hardware - the ESP32 just sends different signals depending on mode:
- **DC Mode**: ESP32 sends PWM + direction signals
- **DCC Mode**: ESP32 sends DCC digital signals
```
ESP32 GPIO 18 (PWM/DCC_A) ──→ LM18200 PWM Input
ESP32 GPIO 19 (DIR/DCC_B) ──→ LM18200 Direction Input
ESP32 GPIO 23 (BRAKE) ──→ LM18200 Brake Input
ESP32 GND ──→ LM18200 GND
ESP32 5V ──→ LM18200 Logic VCC
Power Supply (12-18V) ──→ LM18200 Motor Power
```
**LM18200 Outputs (to Track):**
```
0.1Ω 1W Current Sense
LM18200 OUT1 ──→ ───┬──────╱╲╲╲────── Track Rail 1
├── 1kΩ ──┬──── GPIO 35 (ADC - ACK Detect)
│ 10kΩ
│ │
LM18200 OUT2 ──→ ───┴──────────┴──── Track Rail 2 (GND)
```
**How it Works:**
- **DC Analog Mode**: GPIO 18 outputs PWM for speed, GPIO 19 sets direction
- **DCC Digital Mode**: GPIO 18 outputs DCC signal A, GPIO 19 outputs DCC signal B (inverted)
- The LM18200 amplifies whichever signal type to track voltage
- GPIO 23 (BRAKE) can force both outputs LOW for emergency stop
- **Programming Track**: Current sense resistor (0.1Ω) detects 60mA ACK pulses from decoder
### 2. 2-Rail/3-Rail Relay Module
```
ESP32 GPIO 4 ──→ Relay Module Signal Input
ESP32 GND ──→ Relay Module GND
ESP32 5V ──→ Relay Module VCC
```
**Relay Outputs:**
Configure the relay to switch between 2-rail and 3-rail track wiring:
- **2-Rail Mode** (Relay OFF): Standard two-rail configuration
- **3-Rail Mode** (Relay ON): Center rail + outer rails configuration
### 3. Power Supply
The ESP32-2432S028R can be powered via:
- **USB-C**: 5V from USB (programming and operation)
- **5V Pin**: External 5V power supply (500mA minimum)
**Recommended Setup:**
```
12-18V Power Supply ──→ DC-DC Buck Converter ──→ 5V @ 1A ──→ ESP32 5V Pin
└──→ Motor Controller Power
└──→ DCC Booster Power
```
## Pin Summary Table
| Connection | ESP32 Pin | External Device | Notes |
|------------|-----------|-----------------|-------|
| PWM/DCC_A | GPIO 18 | LM18200 PWM | DC mode: 20kHz PWM / DCC mode: DCC signal A |
| DIR/DCC_B | GPIO 19 | LM18200 DIR | DC mode: Direction / DCC mode: DCC signal B |
| Brake | GPIO 23 | LM18200 BRAKE | Active LOW brake / Emergency stop |
| Relay Control | GPIO 4 | Relay Module IN | HIGH=3-Rail |
| ACK Detect | GPIO 35 | Current Sense | ADC input for programming track ACK |
| Ground | GND | All GNDs | Common ground |
| Power | 5V | Logic Power | 500mA-1A |
## Safety Notes
⚠️ **IMPORTANT SAFETY WARNINGS:**
1. **Electrical Isolation**: Keep low-voltage control circuits (ESP32) separated from high-voltage motor/track circuits
2. **Common Ground**: Ensure all components share a common ground reference
3. **Power Rating**: Motor controller must be rated for your locomotive's current draw
4. **Fusing**: Install appropriate fuses on track outputs
5. **Emergency Stop**: Implement physical emergency stop button if needed
6. **Polarity**: Double-check DCC booster polarity before connecting to track
## Track Connection
The LM18200 outputs connect directly to the track in both modes:
```
LM18200 OUT1 ──→ Track Rail 1
LM18200 OUT2 ──→ Track Rail 2
```
**Operation:**
- **DC Mode**: LM18200 outputs PWM voltage (polarity sets direction)
- **DCC Mode**: LM18200 outputs amplified DCC square wave signals
- Same physical connections, different signal types
## Testing Procedure
1. **Power Up Test**
- Connect only USB power
- Verify display shows UI
- Touch screen should be responsive
2. **Relay Test**
- Toggle 2-Rail/3-Rail button
- Listen for relay click
- Verify relay LED changes state
3. **DCC Signal Test** (use oscilloscope)
- Select DCC mode
- Power ON
- Measure GPIO 18 and 19 for square wave signals
- Verify ~58μs for '1' bits, ~100μs for '0' bits
- Signals should be inverted relative to each other
- Check LM18200 outputs for amplified signals (track voltage)
4. **DC Motor Test** (without load)
- Select DC Analog mode
- Power ON
- Adjust speed slider
- Measure PWM on GPIO 18 with multimeter (average voltage should increase with speed)
- Measure LM18200 outputs for amplified PWM
5. **Track Test** (with locomotive)
- Start with low speed (10-20%)
- Gradually increase speed
- Test direction change
- Verify emergency stop (Power OFF button)
## Troubleshooting
| Problem | Possible Cause | Solution |
|---------|----------------|----------|
| Display blank | No power | Check USB/5V power connection |
| Touch not working | Wrong calibration | Adjust TS_MIN/MAX values in code |
| No DCC signal | Not powered on | Press Power button in UI |
| Motor not running | Wrong mode | Verify DC Analog mode selected |
| Relay not switching | No 5V power | Check relay module power |
| Erratic behavior | Ground loop | Ensure single common ground point |
## Component Recommendations
### H-Bridge Driver (DC & DCC):
- **LM18200T** (3A continuous, 6A peak) - **RECOMMENDED**
- Single chip handles both DC and DCC modes
- Built-in thermal shutdown
- Built-in current limiting
- **L298N module** (2A per channel)
- Readily available, inexpensive
- Less efficient than LM18200
- **BTS7960 motor driver** (43A capable)
- Overkill for most model trains
- Good for large scale locomotives
### Relay Module:
- 5V single-channel relay module
- Optocoupler isolated
- Active HIGH trigger
## Schematic Reference
```
┌─────────────────┐
│ ESP32-2432S028R│
│ (Built-in) │
│ - TFT Display │
│ - Touch Screen │
└────────┬────────┘
┌───────────────┬────────┼────────┬───────────────┐
│ │ │ │ │
GPIO 17 GPIO 16 GPIO 18 GPIO 19 GPIO 4
(DCC_A) (DCC_B) (PWM) (DIR) (RELAY)
│ │ │ │ │
┌─────▼─────┐ │ │ │ ┌─────▼─────┐
│ DCC │◄────────┘ │ │ │ Relay │
│ Booster │ │ │ │ Module │
└─────┬─────┘ │ │ └─────┬─────┘
│ ┌─────▼────────▼─┐ │
│ │ Motor Driver │ │
│ │ (LM18200) │ │
│ └────────┬───────┘ │
│ │ │
┌─────▼──────────────────────────┼─────────────────────▼─────┐
│ Track Output │
│ (DCC or DC Analog depending on mode selection in UI) │
└──────────────────────────────────────────────────────────────┘
```