HTX100 – Buffer Loconet sobre TCP
Descripción
En esta nueva entrada os quiero presentar, a mi entender, si no la placa principal de todo el sistema que estoy montando, una de las más importantes.
Se trata de un Buffer que conecta la red Loconet a la red TCP de casa, es decir, la información de los sensores, mandos, boostes, etc viajará por la red de casa hasta el PC donde esté instalado nuestro software de gestión de maquetas (JMRI, Rocrail, etc).
Se basa en un ejemplo de la librería Loconet de arduino y su configuración es muy sencilla.
El microcontrolador es un arduino nano, que estamos usando en todas las placas de la serie HTX, tiene la misma capacidad de proceso y memoria que un arduino UNO, pero de mucho menor tamaño con lo cual nos viene de perlas para no agrandar mucho el tamaño de todo el sistema de placas y no ganar mucha altura al apilar los diferentes shield.
La HTX100 se alimenta con una conexión externa de 12V en corriente contínua.
Tiene terminador de red Loconet, necesario para que toda la red Loconet funcione correctamente. Son necesarios 12V de tensión para generar los 15mA de corriente. Se puede activar o desactivar el terminador Loconet abriendo o cerrando un jumper (JP2) que tiene la placa. Esto es así, porque si nuestra central Loconet ya tiene un terminador Loconet, no interfiera un terminador con otro.

La fuente de alimentación se puede usar para alimentar toda la red Loconet. De forma predeterminada una central Loconet comercial suele dar tensión de 12V en los pines 1 y 6 del conector Loconet-T (no confundirlo con el Loconet-B que tiene la señal DCC en los pines 1 y 6), pero tan solo de unos 500mA. Para alimentar una pequeña red es suficiente, pero cuando ya empezamos a meter dispositivos que consumen más de lo habitual, se nos queda corta esa alimentación. Por este motivo la HTX100 dipone de un jumper (JP1) para dar más «chicha» a los pines 1 y 6 de la red Loconet.
Igualmente si no queremos saturar los puertos 1 y 6 de la red Loconet, las placas HTX disponen de un par de pines más que nos transportan 12V constantes y que podemos pasar entre placas usando la HTX-Puente.
La «transformación» de los 12V a 5V que usa toda la electrónica se hace con una pequeña placa que podemos comprar en Aliexpress. Prestad atención en seleccionar la de 5V.

Tan solo tendremos que soldar todos los componentes indicados y posteriormente «pincharle» el Ethernet Shield con el chip W5100. Es el más habitual y más compatible con librerías antiguas.









Configurar arduino
La configuración del software que cargaremos en el arduino es muy facil.
Abrimos nuestro IDE de Arduino

En los apartados marcados en rojo, tenemos el puerto TCP que usaremos para configurar el software de gestión de maquetas que queramos. Más adelante os lo enseño. Por defecto es el puerto 1234
A conticnuación hay que configurar los datos de la red, la IP que le queremos dar, la puerta de enlace y la máscara de subred.
Por defecto la dirección IP es la 192.168.0.100. Tened en cuenta el tipo de red que teneis en casa. Algunas son del tipo 192.168.1.xx, otras son del tipo 192.168.0.xx, incluso si sois unos frikies informaticos pues tendreis vuestra red del tipo 10.200.80.xx o del tipo que sea. Eso lo tendreis que mirar en vuestro router.
La puerta de enlace es la dirección de vuetro router que puede ser 192.168.0.1 o 192.168.1.1. Igualmente tendreis que mirarlo en vuestro router.
La máscara de subred suele ser del tipo 255.255.255.0. También lo mirais en el router.
En mi caso la IP 100 la tengo pillada por el NAS. La IP que suele usar la Z21 es la 111, así que he decidido usar para Loconet la 112.
Por lo tanto mi configuración quedaría:
byte ip[] = { 192, 168, 0, 112 };
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
Una vez configada esta parte, solo hay que subirlo al arduino con el cable USB conectado.
Configuración del software de control de maquetas
Voy a mostraros como configurar la HTX100 en RocRail y en JRMI. Dos programas de control de maquetas gratuitos y multiplataforma. Yo uso Linux. En otros programas desconozco como se debe realizar la configuración, pero no debe ser muy distinta a como se hace en estos dos que os voy a comentar.
RocRail
Para empezar debemos abrir nuestro RocRail y seleccionamos nuestro espacio de trabajo o uno nuevo.

Una vez tengamos nuestro espacio de trabajo abierto, vamos al menú Archivo -> Propiedades de Rocrail…

Se nos abrirá una nueva ventana emergente con una serie de pestañas donde configurar el comportamiento de nuestro programa. Es aqui donde también tenemos definir las centrales y conexiones que vayamos a usar. Por lo tanto nos vamos a la pestaña Central y ahi daremos de alta nuestra nueva conexión al bus Loconet con la HTX100

En la parte inferior de esta pestaña tenemos un bloque denominado Nuevo, con un menú desplegable que contiene todos los protocolos que admite Rocrail para conectar. Seleccionamos el literal «Loconet» y pulsamos en el botón Añadir

Esta acción nos abrirá una nueva ventana de configuración de nuestra nueva conexión Loconet. Tenemos que poner el nombre para identificar la conexión de otras que tengamos configuradas, así que en el campo Interface ID pondremos HTX100, luego en el Tipo de conexión marcaremos LbServer y en ese momento se nos habilitará el campo de Hostname donde tendremos que poner la dirección IP que configuramos en nuestra HTX100. Recordad que yo iba a poner 192.168.0.112. Vosotros poned ahi la que hayais configurado en Arduino. Por último no olvidaros poner el Puerto de escucha que por defecto es el 1234

Después de rellenar todos los campos pulsamos en OK para grabarlo. Volveremos a estar en la pestaña de Central donde ya veremos la nueva conexión de tipo Loconet grabada. Finalmente pulsamos en Aceptar
Al pulsar en Aceptar se nos cerrará la ventana de Propiedades de Rocrail y el programa nos indicará que es necesario reiniciar el servidor para que hagan efectivos los cambios.

Procederemos a cerrar Rocrail y volverlo a abrir.
Con esto ya tendremos nuestra HTX100 configurada y lista para interactuar entre nuestra red Loconet y Rocrail.
JMRI
Para configurar nuestra HTX100 en JMRI debemos abrir el programa

Una vez abierto, debemos irnos al menú Editar -> Preferencias. Entonces se nos abrirá una ventana emergente con diferentes opciones para configurar el comportamiento del programa. En la primera opción tenemos Conexiones, que es donde configuraremos todas las centrales o conexiones que necesitemos. Por defecto nos aparece una pestaña con la Conexión 1

En el primer menú desplegable de System manufacturer, debemos seleccionar el literal Digitrax
En System connection, seleccionamos LocoNet over TCP
Dentro del bloque de Settings debemos poner en el campo IP Address/Host Name la dirección IP que configuramos en Arduino, que en nuestro caso es la 192.168.0.112.
El resto de opciones las dejamos por defecto.
El nombre de la conexión, podeis ponerle el que querais.

Si habeis puesto un puerto de escucha diferente al que viene por defecto, debeis marcar la casilla de Additional Connection Settings y se os abriran opciones extra para configurar, donde encontrareis el puerto de escucha, entre otras opciones.

Una vez configurado, pulsamos en el botón Guardar y se nos pedirá que reiniciemos JMRI

Tras el reinicio, nuestro JMRI ya tiene el servidor funcionando y apuntando a nuestra HTX100

A modo de resumen, os dejo un vídeo de como se haría en Rocrail y en JMRI.





