DCCpp con WiFi ESP8266


Tenemos dos maneras para configurar el módulo ESP8266 o ESP-01 para conectarnos con la central DCC++ (método clásico) o con la librería DCC-EX (método DCC-EX).



Método clásico:


Lo primero es configurar el módulo ESP8266 como servidor WebSocket… WebSocket… ¿Eso que es y que tiene que ver los trenes? pues en este caso es el protocolo de comunicación entre los dispositivos y es el equivalente al HTTP. En este caso es WS y su sintaxis es la siguiente: ws://ipservidor:puerto.


Programador USB ESP8266

Programador USB ESP8266


Para poder enviar datos tenemos que cargar un “puente” en el ESP8266 de tal manera que los datos los mandamos al modulo vía Wifi, y el se encarga de pasar el mensaje de su puerto serial Tx y Rx al de la central DCC++


programador esp8266


El módulo recomendado para esto es el ESP8266 en su versión ESP-01, para programarlo podemos usar una adaptador o con Arduino NANO o UNO .


El puerto por defecto es el 8080 pero podemos cambiarlo, eso si, recuerda cambiarlo también en el dispositivo que se conecte a central DCC++. Una vez que se conecte recibiremos el siguiente mensaje:

programador esp8266


Descargar DCCpp WebSocket Server en Github


DCC++ conexión Wi-Fi

Conexión modulo ESP8266 con central DCC++


Método DCCEX:


Para programar el módulo en el modo DCC-EX necesitamos tener primero los archivos .bin que podemos descargar aquí.

Con este firmware llamado NonOS hace que el modulo se configure desde la central DCCEX. Para programar los archivos binarios usaremos el programador USB para una mayor comodidad.

La herramienta recomendada para usuarios windows es el Flash Download tool que esta disponible desde la web de DCC-EX.

Si eres usuario de Linux, para programar los .bin del NonOS existe el programa esptool.py y se instala con los siguientes comandos:

Primero actualizamos:

sudo apt-get update -y


Después instalamos esptool con el comando:

sudo apt-get install -y esptool


Buscamos el ejecutable:

find . -name esptool.py


Una vez lo tengamos localizado en mi caso es: ”./snap/arduino/85/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/esptool/” copiamos los archivos .bin a esa carpeta y ejecutamos los comandos erase_flash y write_flash:

Primero borramos el posible contenido con:

esptool.py -p /dev/ttyUSB0 erase_flash


y subimos los archivos:

  • boot_v1.7.bin
  • user1.1024.new.2.bin
  • esp_init_data_default_v08.bin
  • blank.bin (X2)


esptool.py --port /dev/ttyUSB0 write_flash -fs 1MB -ff 40m -fm dio 0x00000 bin/boot_v1.7.bin 0x01000 bin/at/512+512/user1.1024.new.2.bin 0xfc000 bin/esp_init_data_default_v08.bin  0x7e000 bin/blank.bin 0xfe000 bin/blank.bin


Instalar NonOS para DCCpp con Windows


También podemos instalar el NonOS desde Windows y de la mano de J.J. puedo publicar esta captura de como configurar Flash download tool para instalar esta versión (1.7) en el ESP8266.
La única cosa que tenemos que tener en cuenta es que hay que poner los archivos en el mismo orden que aparece en la imagen y las mismas direcciones de memoria (0X00000)


Configuracion DCCpp con Flash Download Tool

Direcciones de memoria


Una vez configurado el módulo ESP8266, la conexión se realiza de manera automática mediante comandos AT que la misma central manda al iniciar el programa.

En la central DCCEX podemos introducir los datos del nombre de la red y el password, en el config.example.h que es recomendable renombrar como config.h:

#define WIFI_SSID "networkname"

#define WIFI_PASSWORD "networkpassword"


Ahora solo queda conectarlo a un dispositivo que tenga instalado DCCpp Cab o cualquier otro programa para control de maquetas y a disfrutar de nuestros trenes!!

Saludos!!!