# 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) │ └──────────────────────────────────────────────────────────────┘ ```