Skip to content

Complex Build - ESP32

ESP32-WROOM-32 was selected as the microprocessor for the EX-CSB1.  Although folks are encouraged to use the EX-CSB1, this information should assist in building an ESP32-based DCC-EX command station.

ESP32duino

  • Caution:  Other ESP32 modules (S2, S3, C3 etc.) are NOT supported.  Other ESP32 modules do not have the necessary RMT hardware, or do not have enough such hardware to run DCC-EX.

  • ESP32-WROOM-32 advantages
    - Built-in WiFi
    - Memory
    - Sniffer/Booster capable (with additional optocoupler circuit)

  • ESP32-WROOM-32 is more complex than using the Arduino Mega
    - GPIO pin numbers are used (vs. Arduino style pin location numbers)
    - ESP32 pins are not 5V tolerant
    - I2C bus is 3.3V
    - Soldering is required to modify the WeMos D1 R32/ESPDUINO-32 board
    - Modifications are required for motor shields to protect ADC input pins
    - ADC input range begins at 0.15V
    - ESP32 Espressif boards package version 2.0.17 is required

EX-CommandStation - ESP32-WROOM-32

  • ESP32-WROOM-32 is the only ESP32 which can presently be used to run EX-CommandStation software.
    ESP32-WROOM-32 is the only ESP32 which can presently be used to run EX-CommandStation software.

ESP32duino

WeMos D1 R32

  • WeMos D1 R32/ESPDUINO-32 has the Uno form factor.

  • WeMos D1 R32 boards have some obvious hardware errors:
    - Pullup voltage to the IO0 pin is too high (4.2v instead of 3.3-3.8v) which leads to unreliable WiFi.
    - IOREF pin does not output 3v3, but instead breaches the UNO R3 specification and outputs 5V.
    - A0 and A1 pins cannot be used for ADC input when WiFi is used.

  • There are other ESP32-WROOM-32 boards with the Uno form factor which might work, but these will require a custom motor define when there are differences in GPIO pin locations.

ESP32-WROOM-32 Development boards

ESP32duino

  • ESP32-WROOM-32 Development boards come in various sizes and pin configurations.

  • 38-pin and 30-pin boards are common.

  • Only the ESP32-WROOM-32 variants can be used.

Reference ESP32