RGB Glow Tube DIY Clock es un reloj de estilo retro, porque simula los números en 6 displays LCD-IPS cerrados en tubos de cristal, para darles el aspecto de tubos de vacío NIXIE o NUMITRON. Este reloj se compra en kit, pero viene prácticamente montado. Sólo es necesario insertar los 6 displays LCD-IPS en sus zócalos y colocar los tubos de cristal. Este reloj funciona con el microcontrolador ESP32, y permite cambiar su aspecto desde el propio reloj, eligiendo una de las 3 fuentes de caracteres que tiene en memoria. Las fuentes de caracteres se pueden personalizar, utilizando el software ElecksTube IPS.exe.
Display’s numéricos de vacío
Los primeros display’s numéricos que se fabricaron estaban construidos con tubos de vacío. Se conocían como Tubos Nixie, y se utilizaron en equipos electrónicos a partir del año 1955.
El tubo Nixie está formado por un ánodo, construido con una rejilla montada delante de una serie de cátodos. Los cátodos tienen la forma del símbolo que se quiere representar, y se sitúan apilados tras el ánodo, pero sin contacto galvánico entre ellos. Todo el conjunto va encerrado en una ampolla de vidrio llena de gas a baja presión, normalmente neón. Cuando se aplica una tensión entre uno de los cátodos y el ánodo, alrededor de 170V, el cátodo se ilumina en sus proximidades al ionizarse el gas, haciendo visible así su número.
El esquema superior está simplificado. Habría que añadir una resistencia en serie con la alimentación, para limitar la corriente de trabajo del tubo NIXIE, como si se tratara de un diodo zener.
Los tubos Nixie son muy sencillos de utilizar y no necesitan caldeo, pero tienen algunos inconvenientes:
- Su peso y volumen.
- Necesita una tensión alta.
- Los símbolos no están todos en el mismo plano, lo que reduce su ángulo de visibilidad.
- Son frágiles.
Con el fin de solucionar algunos de estos problemas, aparecieron los tubos de vacío Numitrón. Estos tubos son los antecesores a los displays LED de 7 segmentos que ahora conocemos. La diferencia es que sus segmentos no eran LED, sino filamentos. Los Numitrón se podían fabricar en tamaños más reducidos que los tubos Nixie, y podían funcionar con tensiones más bajas, alrededor de 5 voltios. Otra ventaja es que todos los símbolos se forman con los 7 segmentos, y al estar en el mismo plano su ángulo de visión es mejor que en los tubos Nixie. A cambio, los tubos Numitrón consumen más que los tubos Nixie, su tiempo de vida es menor y el trazado de los símbolos no es continuo ni tan perfecto, comparado con los NIXIE
Tanto los tubos Nixie como los Numitrón hace años que dejaron de utilizarse, pero por nostalgia muchos aficionados a la electrónica actualmente los siguen utilizando en sus proyectos, normalmente para fabricar relojes con aspecto retro. Debido a esta tendencia, ahora se pueden comprar algunos kit de reloj con el mismo aspecto de los tubos Nixie.
Aternativa a los tubos de vacío
El problema principal de los tubos Nixie/Numitrón es que no son baratos, pero existe una alternativa: sustituyendo cada tubo de vacío por un display LCD-IPS y colocando encima una ampolla de cristal. Así se puede fabricar un reloj con el mismo aspecto retro, reduciendo notablemente su consumo y mejorando sus prestaciones. Con un display LCD-IPS se puede simular un tubo Nixie o Numitrón, y modificar su aspecto y color de forma rápida sencilla. Ahora se puede conseguir por menos de 50€ un reloj con diseño retro, por ejemplo el kit: RGB Glow Tube.
RGB Glow Tube DIY Clock
Este reloj se compra en kit, pero viene prácticamente montado. Sólo es necesario insertar los 6 displays LCD-IPS en sus zócalos y colocar los tubos de cristal.
Es aconsejable añadir un trozo de cinta adhesiva de doble cara en la base de los tubos de cristal, para fijarlos con el metacrilato transparente superior. Con esto se evita que los tubos se suelten y rompan cuando se manipula el reloj
El PCB está sujeto a una base plástica con 5 separadores y tornillos M3. La caja se monta atornillando sus dos laterales de plástico con dos perfiles de aluminio ranurado. Utiliza 4 tornillos ALLEN M3 para fijar las tapas laterales con los dos perfiles de aluminio, colocando previamente el plexiglás transparente superior. En la parte superior, el PCB lleva 5 separadores M3, que sirven como apoyo del plexiglás transparente superior, no necesita los tornillos.
Para simular los tubos Nixie/Numitrón, se utilizan 6 displays LCD-IPS de 210×82 mm. Las imágenes se pueden crear en un PC con cualquier programa de diseño gráfico, en formato JPG, con una resolución de 135 pixel de ancho por 240 pixel de alto y color de 24 bits. El software EleksTube IPS.exe se encarga de convertir todas las imágenes JPG en un solo archivo binario, para luego enviarlas a la memoria del reloj (ESP32).
Glow Tube Clock funciona con un microcontrolador ESP32. Lleva un 74HC595, que es un registro de desplazamiento de 8 bits, con 8 salidas en paralelo de tres estados. El interface de USB a UART es un CH340, necesario para conectar el reloj con un PC y actualizar el firmware, o personalizar sus fuentes de caracteres. El reloj lleva un conector USB-C en el lateral, utilizado para conectar el PC y también para su alimentación de 5VDC. El kit incluye un alimentador de tensión 110-240 VAC a 5 VDC/1A (estándar USA, no EU), con conector USB-A hembra. También se incluye el cable USB macho-macho de conexión con el PC y alimentador, con protección de tela y conectores USB-A / USB-C acodado.
El patrón de la hora (RTC) es el chip DS3231, que está controlado por I2C y es muy preciso. Este chip RTC incluye en su interior un oscilador a cristal con compensación de temperatura (TCXO). Para mantener la hora del chip RTC cuando se interrumpe la alimentación, utiliza una pila de litio exterior tipo CR1220.
Configuración del Reloj
El kit del reloj incluye una cartulina en color, con las instrucciones en inglés por una cara y en chino por la otra. Cuando empecé a configurar el reloj, me costó bastante tiempo interpretar el manual y configurar el reloj. Provocado principalmente por los cambios de comportamiento que tienen los pulsadores en cada menú. La gestión de los pulsadores que hace el firmware de este reloj es muy confusa.
Gestión de los pulsadores
En cualquier dispositivo electrónico que tenga pulsadores, el fabricante decide la funcionalidad y comportamiento de cada pulsador, y lo programa en su firmware.
El comportamiento de un pulsador se puede hacer de dos formas:
- Detectando el flanco de subida o bajada, de la tensión que recibe un pin del microcontrolador. Así los cambios son lentos, porque es necesario pulsar y soltar el pulsador para provocar un cambio.
- Comprobando el cambio 1-0 en un pin del microcontrolador, para arrancar un reloj de muestreo y encadenar cambios sucesivos, mientras el pulsador permanezca cerrado. Así los cambios pueden ser más rápidos que en el caso anterior, pero también más imprecisos. Es importante ajustar el tiempo de muestreo, en función del número máximo de cambios que se tengan que realizar en cada menú. Con esta gestión temporizada, la precisión del ajuste dependerá de la destreza que tenga el usuario para ajustar el tiempo de sus pulsaciones con los del muestreo.
Comportamiento de los pulsadores
Con el fin de minimizar los costes de producción de los equipos electrónicos, los pulsadores suelen tener asociadas diferentes funciones en cada menú. Lo que no suele ser habitual y sucede en este reloj, es que también cambia el comportamiento de un mismo pulsador, en función del menú en el que esté funcionando.
El comportamiento que tienen los pulsadores en este reloj, se identifica en las gráficas con el color que he añadido en cada pulsador y menú.
- ROJO: Se realizan los cambios al soltar el pulsador.
- VERDE: Realiza cambios sucesivos al pulsar, al ritmo de la frecuencia de muestreo.
Observar que a excepción del pulsador [POWER], los demás pueden tener un comportamiento diferente, en función del menú en el que estén funcionando.
Tengo que aclarar que esto sucede con la versión del firmware que tiene el reloj que he probado, y esto podría cambiar con otras versiones
La memoria del reloj puede almacenar y gestionar 3 fuentes de caracteres diferentes, con 10 gráficos cada una. Al inicio, los gráficos de las 3 fuentes contienen los 10 números del sistema decimal, ordenados desde el cero hasta el nueve. De esta forma es posible cambiar el aspecto del reloj en cualquier momento, eligiendo una de las 3 fuentes de caracteres.
El firmware de este reloj asocia un nombre a cada una las fuentes que tiene en su memoria: RETRO, PUNK, DIY. Estos nombres no se puede cambiar, pero sí su contenido. Conectado el USB-C del reloj con un PC y abriendo el software del fabricante EleksTube IPS.exe, es posible modificar el contenido de las 3 fuentes del reloj.
Las dos primeras fuentes de caracteres, RETRO y PUNK, deberían contener siempre los 10 dígitos del sistema decimal, porque siempre están asociadas con la presentación de la fecha y hora. La última fuente de caracteres es la fuente del usuario (DIY), y podría asociarse al reloj, o utilizarse para almacenar y mostrar un gráfico diferente en los 6 tubos, en lugar de la hora… menú INICIO pulsador [>>>]
Menús de configuración: Inicio
Al alimentar el reloj, los 4 pulsadores realizan su función al soltar el pulsador.
- POWER: Enciende y apaga el reloj.
- Izquierda: Muestra la hora o la fecha.
- Derecha: Muestra la hora o los 6 primeros gráficos almacenados en la fuente de caracteres asociada al usuario (DIY). La imagen fija podría mostrar los números entre el 0 y el 5, o 6 gráficos de 135 píxeles de ancho por 240 de alto cada uno.
- MODE: Da acceso al menú principal de configuración.
Menú principal
En el menú principal, los 4 pulsadores realizan su función al soltar el pulsador.
- POWER: Salir del menú sin realizar cambios.
- Izquierda/Derecha: Para desplazar el cursor y elegir alguna de las 6 opciones de este menú.
- MODE: Ejecuta opción que apunta el cursor.
En la gráfica, hay 3 opciones enmarcadas en rojo y las otras 3 con un número inferior (1,2 y 3):
MARCO: Los 3 menús enmarcados en rojo son de 2 estados (binarios), y cada vez que se pulsa el botón [MODE] cambian sus valores:
- SET: Selecciona el formato de presentación de la hora, en 12 o 24 horas.
- RGB: Habilita o deshabilita el LED RGB de iluminación de los 6 tubos
- LIGHT: Limita el brillo máximo de los LED RGB en los 6 tubos.
NÚMERO: El número indica el submenú al que se accede.
Submenú 1: SET TIME
Este submenú es para configurar la fecha y hora. Los 3 botones de la izquierda realizan los cambios muy rápidos. Hay que realizar pulsaciones muy cortas, para conseguir que los saltos sean de uno en uno.
- POWER: Vuelve al inicio para mostrar la hora, sin realizar cambios.
- Izquierda: Reduce rápidamente el valor del número apuntado, mientras se mantenga el pulsador cerrado.
- Derecha: Incrementa rápidamente el valor del número apuntado, mientras se mantenga el pulsador cerrado.
- MODE: Guarda el valor de forma provisional, y desplaza el cursor a la derecha. En caso de haber guardado algún valor erróneo, como no se puede volver atrás, es mejor salir del menú pulsando el botón [POWER] y volver a empezar Si el cursor estaba apuntando los segundos, al pulsar [MODE] se guardan en el chip RTC todos los valores de fecha y hora que muestran los tubos, y se vuelve al inicio mostrando la hora.
Submenú 2: SET STYLE
El submenú STYLE permite seleccionar el aspecto de los dígitos. En este submenú, los 4 pulsadores realizan su función al soltar el pulsador.
- POWER: Vuelve al inicio para mostrar la hora, sin realizar cambios.
- Izquierda/Derecha: Desplaza el cursor para apuntar a alguno de los 3 estilos.
- MODE: Selecciona el estilo apuntado, y vuelve al inicio mostrando la hora. Si la fuente de caracteres del usuario (DIY) no contiene los 10 números del sistema decimal, no se debería asociar con el reloj.
Submenú 3: SET RGB
El submenú SET RGB permite configurar el comportamiento de los LED RGB que iluminan los 6 tubos. En este submenú, los 4 pulsadores realizan su función al soltar el pulsador.
- POWER: Vuelve al menú principal sin realizar cambios.
- Izquierda/Derecha: Mueve el cursor para apuntar a alguna de las 6 opciones de este menú.
- MODE: Acceso a la opción que apunta el cursor.
En la gráfica hay 4 opciones enmarcadas en rojo y las otras 2 con un número inferior (4 y 5):
MARCO: Los 4 menús enmarcados en rojo, cambian su valor cada vez que se pulsa y suelta el botón [MODE].
- RainBow: Utiliza el mismo color en los 6 tubos, y modifica gradualmente su color.
- Chasing: Distribuye los colores entre los 6 tubos, y al cambiar su color de forma gradual (igual que lo hace RainBow) se produce un efecto de rotación.
- Breath: Mantiene el color seleccionado de cada tubo, y modifica gradualmente la luminosidad de los 6 tubos a la vez.
- SPEED: Define la velocidad de cambio de los 3 efectos anteriores.
NÚMERO: Con los submenús 4 y 5 se define el color del LED RGB de los tubos. En ambos submenús, los pulsadores tienen un comportamiento diferente.
Los colores de los LED RGB están asociados a una tabla de 8 bit. Los valores de la tabla numérica comprendidos entre el 0 y el 200 se asocian con los colores del espectro visible. El valor 0 se asocia con el color rojo y el 200 con el color magenta. A partir del número 200 y hasta el 255, el color va cambiando desde el magenta hacia el rojo (valor 0).
Submenú 4: All Same MODE
En este submenú sólo funcionan 2 pulsadores, porque no se necesitan los cursores. El valor numérico asociado al color, cambia en los 6 tubos a la vez.
- MODE: Incrementa rápidamente el valor numérico (color) en los 6 tubos, mientras se mantenga el pulsador cerrado.
- POWER: Al pulsar y soltar, se guarda el color que muestran los 6 tubos, y vuelve al menú SET RGB.
Submenú 5: Single MODE
Desde este submenú se puede configurar un color diferente en cada tubo.
- Izquierda: Reduce rápidamente el valor del número apuntado (color), mientras se mantenga el pulsador cerrado.
- Derecha: Incrementa rápidamente el valor del número apuntado (color), mientras se mantenga el pulsador cerrado.
- MODE: Guarda el color para el tubo seleccionado y apunta al siguiente, mientras se mantenga el pulsador cerrado.
- POWER: Al pulsar y soltar, se guarda el color que muestra cada uno de los 6 tubos, y vuelve al menú SET RGB.
Archivo de respaldo (Backup)
Antes de modificar algún dato del firmware original del ESP32, es conveniente hacer una copia de seguridad. Si por cualquier circunstancia fallara algo durante la actualización y el reloj dejara de funcionar, tendríamos un archivo con el firmware original y podríamos recuperarlo.
Para crear un archivo de respaldo de este reloj, se puede utilizar ‘esptool.exe’ que se incluye dentro del paquete : EleksTube IPS.V1.1 (9).zip
esptool.exe se ejecuta abriendo una ventana de comandos en Windows, modo administrador. La ventana de comandos tiene que apuntar a la carpeta donde se encuentre el programa ejecutable ‘esptool.exe’
Comandos a ejecutar desde CMD
# Copia de seguridad del firmware del ESP32: esptool --baud 115200 --port COM6 read_flash 0x0 0x400000 EleksTube_fw-backup-4M.bin
La cadena contiene el nombre del ejecutable, la velocidad, el puerto COM (en mi caso es el 6), el comando de lectura, las direcciones primera y última que tiene que leer del ESP32, y a continuación el nombre del archivo que tiene que crear con su extensión. Yo he puesto al principio el nombre del programa y al final el tamaño del archivo que tiene que crear y la extensión… pero se puede poner cualquier nombre.
Si alguna vez necesitaras restaurar el reloj con el firmware de fábrica, tendrías que ejecutar este comando:
# Restaurar el firmware del esp32: esptool --baud 115200 --port COM6 write_flash 0x0 EleksTube_fw-backup-4M.bin
La cadena contiene el nombre del ejecutable, la velocidad, el puerto COM, el comando de escritura, la dirección de inicio de la memoria y el nombre del archivo.
La dirección del final de la memoria del ESP32, no es necesario indicarla en la cadena, porque el software acabará cuando envé el último Byte del archivo de respaldo.
IMPORTANTE:
Para evitar errores cuando se trabaja con la ventana de comandos de Windows, es importante que los nombres de las carpetas no contengan espacios ni caracteres UNICODE mayores a un Byte, por ejemplo caracteres chinos.
Software: EleksTube IPS.exe
Este software contiene un total de 23 fuentes de caracteres para elegir. En el software, cada fuente se muestra en una sola imagen con los 10 dígitos pegados. Cada imagen (fuente) es de 1350×240 pixel, por lo que cabe suponer que al seleccionar una de ellas el software la trocea en 10 imágenes diferentes y las guarda en la carpeta .\EleksTube\esptool\data
Al principio suponía que al abrir el software se cargaban las 23 fuentes desde la carpeta EleckIPS_PIC_Picture, pero no es así. Aunque se modifique algo o se borre esta carpeta, el software carga las mismas 23 fuentes al arrancar.
.\EleksTube\esptool\bin Esta carpeta contiene el último archivo que ha compilado el software Elekstube IPS.exe. El archivo binario contiene los 30 gráficos de 135x240 pixel, de las 3 fuentes de caracteres que puede manejar el reloj. Este archivo binaro, es lo único que se envía al reloj para actualizar las 3 fuentes de caracteres.
.\EleksTube\esptool\data En esta carpeta se encuentran las 30 imágenes con formato JPG, que compilará el software para generar el archivo binario. Los nombres de los archivos JPG no se pueden cambiar, pero sí podemos modificar el contenido de todos los archivos, siempre que se respete su nombre, formato y resolución. Las imágenes que comienzan por RETRO y PUNK se tendrían que modificar 'a mano' antes de compilar el archivo, porque desde el software sólo se pueden cambiar las imágenes del usuario DIY; son las diez que tienen como nombre un número solo.
.\EleksTube\img En esta carpeta se encuentran las 10 imágenes (Custom image) de la fuente DIY del reloj. Cuando se abre el software Elekstube IPS.exe y no se selecciona alguna de las fuentes del menú inferior, las dos ventanas superiores muestran el mensaje: 'Custom image' y al pulsar el botón [Compile Custom Picture]: 1 - El software copia las 10 imágenes de la carpeta .\EleksTube\img y las pega o reescribe por las que haya en la carpeta .\EleksTube\esptool\data 2 - Compila las 3 fuentes de la carpeta .\EleksTube\esptool\data generando un nuevo archivo binario, y lo sustituye por el que había en la carpeta .\EleksTube\esptool\bin
Imágenes personalizadas con ‘EleksTube IPS.exe’
Como el software ‘EleksTube IPS.exe’ no permite cargar imágenes nuevas y tampoco modificar las que tiene en su lista, la única forma de cargar imágenes nuevas al reloj utilizando este software sería siguiendo estos pasos:
- Con el software cerrado, borramos las 10 imágenes del usuario de la carpeta .EleksTube\esptool\data (este paso se puede omitir, no es imprescindible).
- Abrimos la carpeta .EleksTube\img y sustituimos las imágenes que contiene por las nuevas que hemos creado, pero respetando el formato y nombre de las que tenía. Se puede cambiar una sola imagen o las 10, teniendo en cuenta que el reloj mostrará de izquierda a derecha las 6 primeras (0..5).
- Abrimos el software, y sin seleccionar una fuente nueva del menú inferior, pulsamos el botón [Compile Custom Picture]. Así el programa copiará las imágenes de la carpeta .EleksTube\img en la carpeta .EleksTube\esptool\data, y creará un nuevo archivo binario con las 3 fuentes. Para hacer esta operación no es necesario que esté conectado el reloj con el PC,
- Conectar el reloj al PC, seleccionar el puerto COM al que está conectado, y pulsar el botón: [Upload Image] para enviar el nuevo archivo binario al reloj y actualizar sus 3 fuentes de caracteres.
¿Dónde fabricar el PCB?
Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Una de las empresas más grandes del sector es PCBWay.
Concurso de creadores 2023
El plazo para presentar los proyectos finaliza el 15 de Enero de 2024
PCBWay abre de nuevo la participación al concurso de creadores. Por el simple hecho de participar, se asignarán 500 beans (créditos) en tu cuenta de PCBWay, los cuales podrás canjear en la tienda por un Raspberry Pi Pico.
Además del premio por la participación, PCBWay repartirá un total de 16 premios: 1 primer premio al mejor proyecto, 2 segundos premios, 3 premios para los clasificados como terceros y 10 premios más para los proyectos más populares.
Consulta todos los detalles y las bases del concurso, pulsando el siguiente link:
Acceso al concurso de creadores PCBWay