Difference between an Arduino and ESP32 for DCC++?

LMSFan72 Dec 10, 2018

  1. LMSFan72

    LMSFan72 TrainBoard Member

    118
    18
    9
    Hi

    I apologize if I have missed this but I can't find the answer in the various threads so I thought I would ask about this explicitly.

    I successfully use both Unos and Megas to run different layouts with different Arduino and Pololu shields. The Mega is brilliant because I use the extra pins to read back loco detection sensors. I use JMRI on a RaspberryPi with the Arduino connected. I then use WiThrottle to run the throttle so the Pi is headless.

    My question is what advantages/disadvantages are there to use an ESP32? Does it enable one to cut out the RaspberryPi?

    Many Thanks
     
    vasilis likes this.
  2. Jimbo20

    Jimbo20 TrainBoard Member

    274
    178
    11
    Hi, Not sure why no-one has answered your question before, so I'll have a go!

    My understanding is that the ESP32 is more powerful than the Arduino, and it has other features included in the hardware such as WiFi and bluetooth. However you still need an Rpi or PC etc if you need to run JMRI. I beleive though that WiThrottle can be made to connect directly to the ESP32 without the need for JMRI.

    Incidentally I run DCC++ on an Arduino Nano, and have connected a Mux IC to it to allow connection of up to 16 sensors while only using 5 pins on the Nano. I did have to modify the DCC++ BaseStation S/W slightly but it works very well.
     
    Last edited: Dec 21, 2018
    vasilis likes this.
  3. Atani

    Atani TrainBoard Member

    1,469
    1,756
    37
    I didn't see this thread before... As @Jimbo20 has mentioned, the ESP32 is a much more powerful and more modern MCU than the Arduino. With DCC++ on the Arduino you will need to add a network shield or connect to the Arduino via USB and use JMRI / RPi to expose it to other devices and extend the functionality.

    With DCC++ESP32 you have network connectivity built-in and JMRI can directly connect to the ESP32 if you want to use JMRI. There are also a lot of features added to DCC++ESP32 that are not available in the Arduino DCC++ base station and likely won't become available anytime soon. I'm working on integrating some basic features from JMRI into DCC++ESP32 (namely roster support) and when time allows WiThrottle support.

    So you would need the RPi either way still *BUT* with DCC++ESP32 you would be able to disconnect the RPi from the DCC++ESP32 unless you wanted to power it from the RPi (not entirely recommended due to power draw by the ESP32 for WiFi among other pieces).
     
    vasilis and Jimbo20 like this.
  4. LMSFan72

    LMSFan72 TrainBoard Member

    118
    18
    9
    Thank you both for taking the time to explain that.
     

Share This Page