Librería DCCpp LMD


Logo DCCpp LMD

La librería DCCpp LMD es una adaptación de la librería DCCpp.

Esta actualización añade funcionalidades como la pantalla Oled, mejoras en la comunicación Bluetooth y Wifi y a la que también le he habilitado un pin para reproducir avisos.

Logo DCCpp LMD en Oled 128x64

Debido a que mi maqueta es modular, y a mis ganas por personalizar la electrónica que le acompaña, decidí adaptar la última versión disponible de la librería creada por Locoduino.
Se que hay librerías que están mucho más actualizadas, pero son demasiado "sofisticadas" para mi y realmente esta versión cumple con creces el uso que le doy al sistema DCC en mi maqueta.

Con nuevas funciones para componentes extras como la pantalla o el nuevo sistema de comunicaciones que incluye el uso de Wifi y Bluetooth clásico además de poder habilitar un puerto extra para otro tipo de comunicación como radio frecuencia.


* Nuevas funciones

Para añadir estas funcionalidades he creado algunos archivos nuevos que hacen más fácil su configuración y comprensión. Para activar o quitar las nuevas funciones (o módulos) tendremos que acudir al archivo DCCpp.h.


Otras configuraciones que pueden ser de utilidad:

La mayoría de la información referente a la librería DCCpp LMD está traducida al Español en el directorio extras/Doc_LMD/.

La documentación esta creada con Doxygen, solo hay que buscar el archivo index.html y ejecutarlo en el navegador.


Características central DCCpp LMD:

  • Direcciones de locomotoras de 2 y 4 bytes.
  • Velocidad de 128 pasos.
  • Programación en pista principal.
  • Control simultaneo de múltiples locomotoras.
  • Control de todas las funciones de cabina F0-F28.
  • Activación y apagado de todas las direcciones de accesorios 0-2048.
  • Programación en vía de programación.
  • Pantalla Oled 128*64 I2c
  • Puertos seriales extras

Documentación DCCpp LMD

En esta imagen se muestra los pines reservados es la placa Arduino MEGA donde se pueden conectar los diferentes periféricos.

Estos periféricos pueden ser de comunicación como los módulos HC-05 y ESP-01. De salida como la pantalla Oled o de entrada de datos como el teclado y el encoder rotativo


Pinout para periféricos central DCCpp LMD

Imagen de los pines reservados para periféricos.


Revisión de versiones:

*-LMD 14/05/2026 V2.1.2
- Añadido comando para funciones de locomotoras con formato <F DCC Nfun Estado> en el archivo TextCommand.cpp con una nueva función en los archivos DCCpp.cpp y DCCpp.hpp
- setFunctionSimple(int cab, int funcNum, bool activate) Activa las funciones de locomotoras en formado ID (0-28)
- Correción de bug en TextCommand que impedía el uso de los comandos de programación y diagnostico, eliminadas variables de información.

*- LMD 02/05/2026 V2.1.1
- Los Serialx.begin() se inician el SerialWifi.cpp, SerialBluetooth.cpp y SerialAux.cpp.
- Oled:
- Rediseño Oled pantalla de encendido.
- Pantalla Overload como protección contra cortocircuito se restablece con <0> o <1>.
- Oled muestra el comando recibido.
- CommInterface:
- Funciones getLastOutput(); y clearLastOutput();
- Wifi:
- Añadido IP personalizada.
- Puerto personalizado.
- TextCommand revisado para evitar conflicto entre los diferentes tipos de sensores.

*- LMD 22/02/2026 V2.1.0
Conexión Wifi con ESP01 y NonOs para 4 clientes SerialWifi.h y SerialWifi.cpp

*-LMD 23/04/2023 V2.0.3
- Retromodulos S88 añadido. Archivos S88.cpp y S88.h (por Philippe -> http://lormedy.free.fr/)
- Arreglos sonido
- Comando '#' muestra el número de locomotoras que puede administrar la central
- Comando 'I' (solo WiFi) Muestra la IP del dispositivo Wifi WebSocket (https://github.com/Peyutron/DCC-ESP8266-Websocket-Server)

-LMD 05/04/2023 V2.0.2
- Arreglos en TextCommand.cpp ya que algunos comandos no funcionaban correctamente (comandos 's', 'E' y 'F')

*-LMD 01/04/2023 V2.0.1
- Datos seriales unificados en CommInterface.cpp
- Implementación del puerto Serial1 como SerialWifi (SerialWifi.h) con WebSocket "ws://"
- Implementación del puerto Serial2 como SerialBluetooth (SerialBluetooth.h)
- Implementación del puerto Serial3 como SerialAUX (SerialAux.h)
- Nueva librería U8G2lib probado en pantalla SSD1603 128x64
- Monitor Serial en pantalla
- Monitor de consumo

Como comento al principio esto aun esta en proceso, pero si alguien quiere los archivos para ir probando, pero seguramente algunas cosas pueden fallar, aunque las principales (locomotoras y desvíos) ya están probadas.

Descargar DCCpp LMD:

Descargar Librería DCCpp_LMD 2.1.2 (Modificación Oled, S88, Sonido, wifi, Bluetooth, Serial3, teclado y encoder)


Seguiré actualizando!!!