# DCC-Central DCC-Central consist in a complete system to drive DCC scale models. ## Principles System is based on ESP32-S3 WROOM devKit, with some peripherals : - ILI9341 4.0" display module To display what is happening - Touch screen To allow direct managing - MCT2515 can interface Used for accessory and feedback - LM 18200 Hbridge (Drive track power / accessories ) - DCC signals or DC - can be switched to program, - second to send square signal - powers accessories - ACS712 current sensor Read DCC power send to track - RAILCOM detector - input pin - KY-040 rotary encoder set speed / enventually help to navigate in menus - relay Swith 2 Rails / 3 rails ## Functionnalities DCC-Central is connected with CDM-Rail (protocol to choose), but can work alone. It will be RailCom compatible On display we must have : - Select Autonomous / CDM-Rail driven switch - Select DC / DCC type - Select 2Rails / 3 Rails If autonomous and DCC - Select Programming mode - Select Loco ID - Display Functions buttons - Add a tab to display informations returned ### Running 1. User choose a DCC-id to drive a loco with help of display 2. he selects type of signal DCC/DC (display) 3. track type ( 2rails / 3 rails) 4. Switch 'ON' track power System response - Switch relay ON (2 rails), OFF (3 rails) - generate PWM (DC) / DCC signal (DCC) - if DCC signal, set DCC loco id and drive DCC signal - if DC signal, set DC (PWM) - Power ON LM 18200 ## Wiring ## Wiring Below is a general guide on how to wire the main elements of the DCC-Central system, with suggested ESP32 GPIO numbers: - **ESP32-S3 WROOM devKit**: Serves as the main controller. All peripherals connect to its GPIO pins. - **ILI9341 3.2" Display Module**: Connect the SPI pins to the ESP32 as follows (suggested): - MOSI: GPIO 23 - MISO: GPIO 19 - SCK: GPIO 18 - CS: GPIO 5 - DC: GPIO 21 - RESET: GPIO 22 Power the display with 3.3V or 5V as required by the module. - **Touch Screen**: If integrated with the display, connect the touch controller (often XPT2046) SPI pins as follows (suggested): - T_MOSI: GPIO 13 - T_MISO: GPIO 12 - T_SCK: GPIO 14 - T_CS: GPIO 15 - T_IRQ: GPIO 27 You may share SPI bus with the display if supported. Connect IRQ pin to a free GPIO. - **MCP2515 CAN Interface**: Connect SPI pins as follows (suggested): - MOSI: GPIO 23 (shared with display) - MISO: GPIO 19 (shared with display) - SCK: GPIO 18 (shared with display) - CS: GPIO 4 - INT: GPIO 16 Connect CANH and CANL to the CAN bus. Power with 3.3V or 5V as required. - **LM18200 H-Bridge**: Connect control pins as follows (suggested): - IN1: GPIO 32 - IN2: GPIO 33 - PWM: GPIO 25 Connect motor outputs to the track or accessories. Power the H-Bridge with the appropriate voltage for your track/accessories. - **ACS712 Current Sensor**: Connect VCC and GND to power, OUT to ESP32 GPIO 36 (analog input, VP). Place the sensor in series with the track power line. - **RailCom Detector**: Connect the detector output to ESP32 GPIO 26 (digital input). Follow the detector's datasheet for power and signal wiring. - **KY-040 Rotary Encoder**: Connect as follows (suggested): - CLK: GPIO 34 - DT: GPIO 35 - SW: GPIO 17 (if used) Use pull-up resistors if required. - **Relay**: Connect relay control pin to ESP32 GPIO 2. Use a transistor driver circuit if the relay requires more current than the ESP32 can provide. Connect relay contacts to switch between 2-rail and 3-rail track wiring. ### ESP32 Pin Usage Summary | Peripheral | Signal | ESP32 GPIO | |---------------------------|----------------|------------| | ILI9341 Display | MOSI | 23 | | | MISO | 19 | | | SCK | 18 | | | CS | 5 | | | DC | 21 | | | RESET | 22 | | Touch Screen (XPT2046) | T_MOSI | 13 | | | T_MISO | 12 | | | T_SCK | 14 | | | T_CS | 15 | | | T_IRQ | 27 | | MCP2515 CAN Interface | CS | 4 | | | INT | 16 | | LM18200 H-Bridge | IN1 | 32 | | | IN2 | 33 | | | PWM | 25 | | ACS712 Current Sensor | OUT | 36 (VP) | | RailCom Detector | OUT | 26 | | KY-040 Rotary Encoder | CLK | 34 | | | DT | 35 | | | SW | 17 | | Relay | CTRL | 2 | **Tips:** - Double-check voltage compatibility for each module. - Use common ground for all modules. - Keep power and signal wires as short as possible to reduce noise. - Refer to each module's datasheet for exact pinouts and requirements. **NB** a PCB card will be designed with KiCad Software for easier assembly.