Librería DCCEX


DCC++EX es la más completa y actualizada y de todas las librerías DCC que existen actualmente en la red. Y desde hace poco estrenan su versión 4.1.5.

Digamos que es la versión con esteroides de esta central un gran trabajo desde el otro lado del charco que puede con casi todas las opciones que puedas imaginar. Desde comunicación WiFi a pantallas OLED y LCD. Puede correr en diferentes microcontroladores, añadir boosters de alimentación. También incluye muchos comandos nuevos, sobre todo para el tema de diagnóstico.

Desde que conocí la central he estado 'cacharreando' con ella, añadiendo y quitando, ahora por fin lo tengo todo centralizado. Estas son las piezas que la conforman y como van conectadas:

  • Arduino Mega 2560
  • Shield estándar L298P 2 canales, 2A/canal.
  • Fuente alimentación externa 5v 2A.
  • Módulo Bluetooth HC-06 (RX2/TX2)
  • Módulo WiFi ESP866 con firmware NONOs (RX1/TX1)
  • Pantalla OLED 128*64 I2C
  • Max 471 sensor de corriente
DCCEX frontal

Esto es la central principal, bien tengo también una pantalla secundaria que es la encargada de mostrar los datos de lo que está pasando en la maqueta. Está segunda fase consta de:

  • Arduino UNO
  • Shield LCD 3.5" 320*480
  • Módulo receptor 433Mhz RF

Instalación

Para instalar la Librería DCC++EX tiene disponible un instalador... No lo he usado... Llamadme mayor pero prefiero la manera tradicional de instalación, bajar los archivos desde las fuentes Github CommandStation-EX Descargamos los archivos en el disco duro, descomprimimos la carpeta "CommandStation-EX-master" con los archivos a nuestra carpeta de librerías habitual. Curiosamente, y puede que sea por la configuración de mi pc, cuando intento buscar el ejemplo o la librería en las librerías disponibles, no hay rastro de una carpeta ejemplo. En su lugar, en la misma carpeta de la librería, se encuentra el archivo: CommandStation-EX.ino.

Archivo Config.h

Desde aquí configuramos la central y sus "plugins" como el módulo WiFi o la pantalla OLED.

El el apartado WiFi podremos configurar como servidor o como cliente... Para entendernos, puedes conectarte directamente al módulo con una IP parecida a la del router generalmente la 192.168.4.1. La otra opción es como si fuera un dispositivo normal y corriente conectado a nuestro router habitual y nos conectamos a el con otro dispositivo como DCCppCab.

Cuál es mejor? Pues para un uso moderado con una maqueta sencilla que se usa de vez en cuando creo que la opción de conexión por router es la más sencilla. De hecho, es mi caso. Aunque tiene una peculiaridad, mi red para estas cosas las maneja un ESP32 con un software que lo convierte en punto de acceso. De esta manera tengo una red solo para esto. Como apunte lo uso para casi todo y me sorprende lo bien que va incluso viendo YouTube.

Una vez aclarado esto, en el archivo cambiaremos las siguientes líneas...

1
2
3
4
5
6
#define MOTOR_SHIELD_TYPE STANDARD_MOTOR_SHIELD
#define IP_PORT 2560
#define ENABLE_WIFI true
#define WIFI_SSID "NOMBREdelaRED"
#define WIFI_PASSWORD "password"
#define OLED_DRIVER 128,64

  • MOTOR_SHIELD_TYPE -> Aquí ponemos el tipo de motor shield que usamos. Esta parte de la configuración se complementa con el archivo " MotorDrivers.h " donde, además podemos "afinar" el Motor Shield que estamos usando. En mi caso al no tener medidor de corriente en la vía de programación y al principio no funcionaba bien al saltar la protección por cortocircuito. Estos son los Motor Shield predefinidos:
    • STANDARD_MOTOR_SHIELD
    • POLOLU_MOTOR_SHIELD
    • FUNDUMOTO_SHIELD
    • FIREBOX_MK1
    • FIREBOX_MK1S
    • IBT_2_WITH_ARDUINO

  • IP_PORT-> Puerto que usaremos para conectarnos al modulo WiFi
  • ENABLE_WIFI -> Activa el uso del módulo WiFi.
  • WIFI_SSID: Nombre de la red, por ejemplo VodafonXXX o MovistaXXX.
  • WIFI_PASSWORD: la contraseña que usemos para conectarnos al router.
  • OLED_DRIVER: Activa la pantalla Oled, en mi caso de 128x64. Esta pantalla mostrará datos sobre la conexión ( ip, puerto) o la RAM.
  • En mi opinión, esta versión es la librería más completa y con más opciones que he encontrado de todas. A nivel usuario los problemas que me han ido surgiendo, como el que he comentado arriba del consumo en la vía de programación, son sencillos de solucionar. Por otro lado, si queremos "trastear" con el código, es un poco más complicado que en versiones anteriores por la gran cantidad de archivos que tiene. (Imagino que por mi costumbre con LocoDuino).

    Otra de las cosas buenas que tiene es la comunidad que hay detrás. Esta comunidad tiene actualizada la central prácticamente cada al día a nivel beta y cada poco sacan una release con todas las mejoras. Por desgracia en Español no hay tanta información.

    DCCEX con Oled

    DCCEX con pantalla Oled

    También incluye soporte para pantallas Oled y LCD lo que a mi, que me encantan las pantallas, me parece todo un acierto. Me gustaría que se pudiera mostrar más información como por ejemplo el comando que entra por el monitor serial de esta manera se podría prescindir del monitor serial. Esto es algo que investigaré si es una opción o hay que implementarlo.

    JMRI es un software muy importante para DCC++EX, Tanto, que tiene su propio apartado en la librería. Aquí estoy realmente verde. Únicamente lo he instalado y realizado unas pocas pruebas.

    Y hasta aquí sería mi experiencia con la central DCC++EX. Espero que os guste e iré actualizando!!

    Saludos!!!