HTX001 – Loconet IO Shield

Introducción

En esta nueva entrada vamos a describir el elemento principal de toda la red HTX. Se trata de una placa denominada LocoIO (Loconet Input/Output) cuya función es tener un elemento con múltiples entrada/salidas configurables al gusto del modelista. Esta placa será la principal de todo la red y «sobre» ella se irán pinchando el resto para configurarlas con las funciones que necesitemos implementar.

Proyecto

El corazón de todo el montaje para el bus Loconet se centra en la HTX001 que no es más ni menos, que una interfaz para conectar un Arduino al bus Loconet. Dicho Arduino irá cargado con el programa específico en función del tipo de decoder que se desee simular, bien de entrada/salida, bien deco para servos, etc. Estos programas o sketch para cargarlos en Arduino han sido desarrollados por Dani Guisado y se pueden localizar en su Github para descargar libremente.

Para esta placa concretamente hay que cargar el programa de SVLocoIO que simula el funcionamiento de las placas de Peter Giling que también están disponibles en la web de RocRail.

La placa HTX001 no es más que un rediseño de la placa GCA50a pero adaptada al factor de forma de un Arduino para nada más tengamos que pinchar el resto de módulos de expansión sobre la interfaz.

Sniffer

La placa está basada en el diseño esquemático de la MRRWA que junto con una librería específica hace posible dicha comunicación. Un «sniffer» se encarga de recoger la señal que le entra vía Loconet y la transforma a señal que pueda entender Arduino.


Alimentación

Por otro lado tenemos la opción de alimentar la placa bien por la señal que nos llega del mismo cable Loconet cuando está conectado a la salida Loconet-T de la central y que contiene una tensión de 12V en los pines 1 y 6 del cable, o bien la podemos alimentar con una fuente de alimentación externa de 12V en corriente continua que conectaremos por el terminal que hay junto a los conectores RJ12 del Loconet. Mediante la configuración de los pines que hay sobre dicho conector elegiremos que la alimentación sea por un medio u otro.


La alimentación externa la conectaremos al terminal J3 de la placa, teniendo el polo positivo en el lado derecho y la masa en el lado izquierdo. La serigrafía sobre el terminal indica la posición de los cables.

La configuración de los jumpers será siempre uniendo el pin central con el izquierdo para alimentar la placa con la fuente externa o con el pin derecho si la alimentación viene por el cable Loconet.

Se recomienda encarecidamente que la alimentación sea con una fuente externa ya que la conexión Loconet-T que ofrecen las centrales no suele soportar más de 200mA.

Unos leds soldados junto al terminal de alimentación nos indicará si la placa está siendo alimentada o si tiene comunicación por el bus Loconet.

La zona de alimentación transformará y estabilizará la alimentación de 12V en corriente continua a unos 5V en corriente continua para alimentar tanto el Arduino como los integrados que conforman la placa. Igualmente por los pines de expansión de la placa se llevarán esos 5V a las placas de expansión a no ser que dichas placas dispongan de alimentación propia.

La fuente está estabilizada y apenas genera calor, por lo que no hace falta disipador. Con esto conseguimos también que el regulador de 5V interno de Arduino no trabaje y por consiguiente no se genere calor innecesario.


Conector Loconet

La conexión de la placa a la central se realizará mediante el típico cable Loconet, un cable de 6 hilos como el usado en los porteros automáticos y la clavija RJ12 de 6 conectores. En la red podréis encontrar infinidad de tutoriales de como confeccionar un cable Loconet.

Desde la central a la primera placa se deberá usar el cable Loconet mencionado antes, pero para interconectar las placa entre sí he puesto la posibilidad de poder hacerlo mediante el cable Loconet o como la idea usada en los productos de la marca Yamorc. Unos conectores que unen las placas directamente entre ellas sin uso de cables y que además de la información transmitida vía Loconet también he incluido la fuente de alimentación externa de 12V CC. Con esto nos evitamos tener que está tirando cables de alimentación para cada una de las placas. Con solo alimentar con cables la primera placa, el resto ya tendrá la alimentación externa.

Si se usa el buffer loconet HTX100 también tendremos la opción de «encganchar» la primera placa directamente al buffer con el tipo de conector explicado anteriormente.

Podremos usar indistintamente el conector RJ12 o el terminal de pines.

Soporte DIN

Si somos de los que centralizamos la electrónica en un solo punto de la maqueta para una mejor mantenimiento y ubicamos todas las placas juntas, puede ser recomendable utilizar el terminal de pines en lugar confeccionar un mini cable Loconet. Si por el contrario somos más de ubicar la el deco en el lugar donde hace falta o utilizamos módulos, entonces sin duda el cable Loconet es la mejor opción.

También y con esa misma idea de centralizar todos los decos en un mismo cuadro de conexiones, he puesto unos orificios para colocar soportes para carril DIN, el típico de los cuadros eléctricos.

Arduino

El software necesario para que la placa funcione correctamente es, como hemos comentado antes, el SVLocoIO que es obra de Dani Guisado (ClubNCaldes.com)

Para cargarlos en nuestra placa de arduino tendremos que hacerlo de la siguiente manera.

Una vez abierto nuestro IDE de arduino, abrimos el sketch que nos hemos descargado del enlace anterior

Seleccionamos ele tipo de placa que tenemos (UNO o NANO) y el puerto donde esté conectado (COMx para Windows o /dev/ttyUSBx en Linux)

Un detalle que hay que tener en cuenta en función del tipo de placa que vayáis a usar. Y me refiero a las NANO que tienen el chip ATMEGA168p y las que tienen el ATMEGA328p.

Fïsicamente son iguales y tiene el mismo procesador pero la cantidad de memoria es diferente, siendo el ATMEGA168P de 16k y el ATMEGA328P de 32k. Justo el doble.

Comento este punto porque en un principio adquirí por error el ATMEGA128P porque era del mismo color que la placa que había diseñado pero mi sorpresa vino cuando al cargar el sketch me saltó el mensaje de que no había suficiente espacio!!

Intentando buscar una solución, vi que si le eliminaba la opción de DEBUG el espacio se reducía considerablemente y se podía cargar sin problemas en las ATMEGA128p. Tan solo hay que comentar la línea donde se define el DEBUG.

Ni que decir que en las ATMEGA328p se carga todo sin problemas. Así que para evitar sustos, recomiendo que todas sean ATMEGA328p. Que no os pase como a mi.

Una vez todo seleccionado correctamente se procede a subir el programa en la placa controladora.

Configuración en RocRail

Una vez tengamos el arduino programado, insertado en nuestra placa y la placa conectada a nuestra red Loconet, procederemos a configurarla en RocRail.

Para ello nos vamos a la opción de menú Programación -> GCA -> GCA50

Se nos abrirá una nueva ventana de configuración donde tendremos que pinchar en la solapa de «Addresses» y una vez allí en el botón «Query»

La consulta nos devolverá las placas que tengamos conectadas a la red para seleccionar y configurar.

Por defecto las que están recién programadas tienen la dirección alta 81 y baja 1 así como la versión del programada cargado, por eso os aparecerá 081/001 ver:106

Seleccionamos la placa a configurar (la marcamos para que se ponga en azul) y le pulsamos a la solapa de «Easy Setup».

En esta pestaña configuraremos los puertos de entrada/salida de nuestra HTX001 con la dirección que queramos y como queremos que se comporte (entrada, salida, pulso, etc). Una vez configurado todo se pulsa en el botón «Set All» para que se grabe.

Si por el contrario queremos consultar si ya tiene alguna configuración grabada, pulsaremos en el botón «Get All»

Puerto 10

Un dato importante a tener en cuenta para que solo afecta a los arduinos NANO. El pin número 10 (D13) no se puede configurar como entrada. Dicho pin es el que se usa para manejar el LED que viene de fábrica en el NANO junto con su resistencia y por consiguiente ya se esta utilizando.

En el foro de RocRail indican como posible solución eliminar la resistencia incluida y así entonces el pin D13 puede ser configurado como entrada. Para ello uno debe ser habilidoso con el soldador.

Descargas

Os dejo para descargar los archivos para que podáis realizar la placa.