HTX100 Buffer loconet

Introducción

Tras mi reciente pérdida, mi DR5000 de Digikeijs, me he visto en una situación en la que no esperaba encontrarme.

La DR5000 iba a ser el centro de toda la instalación donde se unificaban el bus Loconet, la generación de la señal DCC y el bus Xpressnet. Así enchufaba el Multimouse de Fleichmann para manejar los trenes, se generaba la señal DCC para gobernarlos a todos y recibía la información de donde estaban por con los sensores de ocupación vía Loconet.

Ahora no tengo nada.

Bueno, en verdad la generación de señal DCC sigue funcionando y lo que se ha ido al traste son los buses Loconet y Xpressnet. La conexión con el PC y por consiguiente a Rocrail o JMRI sigue siendo posible tanto por USB como por red (cableada o wifi), así que por ahí me puedo salvar.

La prueba de las nuevas placas Loconet que había diseñado se habían ido al carajo. Necesitaba poder tener Loconet!!

Me di una vuelta por las tiendas de modelismo de aquí y de allá y me quedé sorprendido de lo poco que hay en el mercado en cuanto a centrales digitales, que sean similares a la DR5000 y con un precio que no tengas que empeñar el coche. En España lo que más se vende al parecer es la z21/Z21 y su Xpressnet, pero ya teniendo unos cuantos diseños en el otro bus, no los iba a desaprovechar.

En mi búsqueda me topé con los «buffer» de diferentes tipos para conectar con el PC dicho protocolo. Concretamente y para el caso que nos ocupa, un buffer Loconet para conectar al PC vía USB. Además con Arduino!!!

Estaba salvado!!!

En este momento el refrán de «divide y vencerás» tomó sentido para mí. Me di cuenta que tenerlo todo centralizado en un único cacharro no es del todo recomendable porque si se te rompe, se rompe todo y a la porra la instalación. Si además le juntas que el fabricante de dicho cacharro tampoco existe ya, pues apaga y vámonos.

Proyecto

Luca Dentella, un youtuber al que sigo desde hace un tiempo tenía la solución a este problema. Tiene un código de arduino para manejar la señal del bus loconet.

En su capítulo número 7 de su serie DCC con Arduino explica perfectamente como poder hacerlo:

Un tema importante que se indica en el vídeo y que si buscais información sobre los buffer Loconet lo encontrareis, es que se necesita un «terminador Loconet», una corriente constante de 15mA a 12V en la señal Loconet. Sin esa fuente, nada funcionará. Así que hay que tener en cuenta a la hora de diseñar un buffer, insertar dicha señal.

Partiendo del diseño de Luca, lo he adaptado al factor de forma de Arduino e incluido algunas cositas más para que sean más compatibles con las placas que ya tengo diseñadas.

Como se puede observar, el diseño es muy parecido a las demás placas que conforman la serie HTX basadas en Arduino y que se pueden implementar tanto en su versión NANO como en su versión UNO.

El HTX100 requiere de una fuente de alimentación externa de 12V en corriente continua. Yo la obtengo de una vieja fuente de alimentación de ordenador.

Incluye el circuito sniffer loconet propuesto por la NMRA así como la circuitería para generar la señal del terminador loconet. A pesar de llamarse «terminador», ni mucho menos va al final del bus. Es más yo lo voy a poner al principio aunque se puede conectar en cualquier punto de la red.

Un par de jumper sirven para configurar el funcionamiento de la placa. El JP1 cerrado inyectará +12V en los pines 1-6 del bus loconet y si está abierto se usará la señal Railsync (señal DCC) por dichos pines y que vendrá de otro dispositivo. El JP2 abierto no inyectará los 15mA en la señal loconet (pines 3-4). Con el puente cerrado crearemos un terminador loconet.

Igualmente he incluido unos conectores en los laterales al estilo Yamorc para interconectar las placas entre ellas.

HTX100 + HTX001

La conexión al PC se hará mediante el USB del propio Arduino.


Versión 2.0

Después de recibir las placas y estar realizando pruebas, todas ellas satisfactorias por cierto, vi en los ejemplos de la librería Loconet que existía la opción de hacer el mismo buffer pero en lugar de conectarlo vía USB, hacerlo vía TCP y conectarlo al router de la instalación y no usar el USB. Esto brinda la posibilidad de no depender del software que se use y no tener que estar reconfigurando la aplicación cada vez que se vaya a usar. No se puede usar el mismo puerto USB en dos aplicaciones a la vez.

Como tenía por casa un escudo de red que estoy usando para otra cosita que ya os comentaré en breve, lo conecté a un arduino UNO que tenía por ahí y le puse el escudo de red. El problema que me encontré es que no sabía como se configuraba en Rocrail, pero después de varias noches sin dormir haciendo pruebas y leer mucha documentación conseguí configurarlo.

Por el tamaño del programa que se carga en el arduino, éste debe ser un UNO o un NANO, pero el NANO que sea un Atmega328p. No vale un Atmega168, tiene la mitad de memoria que el anterior y no cabe el programa.

Por otro lado, las conexiones físicas entre un NANO y el escudo de red no están en la misma posición que en un UNO, así que como mi idea es usar los NANO por su pequeño tamaño he tenido que hacer algunas modificaciones en la placa anterior, que pasaremos a llamar versión 1.0

Para esta nueva versión 2.0 se ha incluido aparte del conector ISCP que contiene las señales de MOSI, MISO y SCK, un enlace con la señal SS necesaria para «ordenar» los dispositivos que van conectados por ISCP, un regulador de voltaje para alimentar tanto el arduino como los integrados y el escudo de red. Al eliminar el conector USB que tenía antes ahora tenía que alimentar la placa de otra forma, así que aprovecho la entrada de +12V que tiene para generar el terminador y la estabilizo a 5V.

Igualmente se ha reubicado el terminador y otros componentes. También se han hecho dos orificios en el centro de la plata para colocar un soporte para carril DIN. Así cuando construya el cuadro de mandos lo podré instalar de forma ordenada y que quede bonito. Que no quieres el soporte, pues para atornillarlo donde se necesite.

Al igual que la versión anterior, es necesario una alimentación externa de 12V en corriente continua, tendrá salida/entrada de loconet por la parte inferior, la alimentación externa tanto por terminales como por conector jack y la salida de cable de red por la parte superior.

El arduino NANO que se debe usar, como he comentado antes, es el Atmega328p y no debe tener los pines soldados de fábrica. Lo ideal es que vengan con las tiras de pines sin soldar para que el conector ISCP se suelde al revés, es decir con los pinchos hacia abajo. Todos los pines, los del ISCP y los de conexión deben ir hacia abajo.

El motivo es que si están hacia arriba puede estorbar con la placa que se «pinche» encima y no encaje. También porque las conexiones del ISCP se han «puenteado» a otro conector más centrado con el formato de un arduino UNO.

Arduino

Para cargar el programa en nuestro arduino NANO procederemos de la siguiente forma.

Abrimos nuestro IDE de Arduino que lo puedes descargar aquí, seleccionamos nuestro tipo de placa y el puerto donde está conectado.

Abrimos el programa que descargaremos en el siguiente enlace:

Una vez cargado, procedemos a compilar y subirlo al arduino NANO.

Si no sale nada raro en la salida, entonces se habrá cargado bien. Podemos verificar que se ha cargado con el monitor serial. No olvidar cambiar los baudios para poder entenderlo!

Descargas

Versión 1.0

Diseño PCB

Gerber

Arduino

Versión 2.0

Diseño PCB

Gerber

Arduino

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *