Reloj de estilo retro, con ESP32

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.

Link de acceso para la compra y descarga del software

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.

Tubo NIXIE

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.

Contenido del Kit

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.

Muestra de 3 fuentes en el display OLED

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.

Configuración: RGB Glow Tube Clock

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.

Gestión de los pulsadores

El comportamiento de un pulsador se puede hacer de dos formas:

  1. 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.
  2. 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.

Fuentes gráficas de fábrica

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 [>>>]

Fuentes gráficas modificadas

Menús de configuración: Inicio

Menú 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

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

Menú: 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

Menú 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.

Tabla numérica de color

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

Software: EleksTube IPS

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.

Contenido de la carpeta BIN

.\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’

Vista gráfica en los 6 tubos

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:

  1. 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).
  2. 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).
  3. 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,
  4.  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.

Logo: 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 

 

 

Shift Register (Registro de desplazamiento)

Funcionamiento de un Shift Register o Registro de desplazamiento, muy útil cuando se necesita controlar una gran cantidad de dispositivos de forma simultánea, utilizando un microprocesador con un número limitado de terminales. Este componente electrónico –Shift Register– es muy usado en centrales de control destinados a la domótica, paneles electrónicos de tipo LED, etc.

8-Bit Shift Register

En los circuitos digitales, un registro de desplazamiento es una cascada de Flip-Flops que comparten el mismo reloj, en el que la salida de cada Flip-Flop está conectada a la entrada de datos del siguiente Flip-Flop de la cadena, dando lugar a un circuito que desplaza por una posición la matriz de bits almacenada en ella, desplazando los datos presentes en su entrada y desplazando el último bit en la matriz, en cada transición de la entrada de reloj.

Esquema interno del 74HC595

Los registros de desplazamiento –Shift Register– pueden tener entradas y salidas tanto en paralelo como en serie. Normalmente se configuran a menudo como Serial-In, Parallel-Out (SIPO) o como Parallel-In, Serial-Out (PISO). También hay modelos que tienen entrada en serie y paralelo y otros con salida en serie y en paralelo. También hay registros de desplazamiento bidireccionales que permiten el desplazamiento en ambas direcciones (L → R o R → L). La entrada en serie y la última salida de un registro de desplazamiento, también se pueden conectar para crear un registro de desplazamiento circular.

Funcionamiento (Shift Register)

Para comprender mejor el funcionamiento de un registro de desplazamiento, se puede montar en una placa de pruebas (Protoboard) el siguiente circuito:

Display de 7 segmentos con 74HC595

El hilo de entrada de datos (SER/DATA) se puede conectar a la línea de +5 o GND, dependiendo del estado lógico (1/0) que queramos introducir al registro. A continuación se pulsa el botón SRCLK/CLOCK, para que el primer dato entre en el registro, desplazando todos sus estados una posición en orden creciente. Si queremos visualizar el estado de los registros en el display, a continuación pulsaremos el botón RCLK/STROBE.

Pruebas del 74HC595

Para que funcione el registro de desplazamiento, el hilo SRCLR/RESET tiene que estar conectado a nivel alto (+5V), si lo conectamos a GND se inicializarán todos los registros poniéndose a cero (Reset).

Reloj FC-209 – RECOPILACIÓN

Recopilación de todos los videos relacionados con el reloj LED (FC-209), explicando por encima lo que se puede encontrar en cada uno de ellos. Además se presenta la última actualización del firmware, tanto para el kit FC-209 como para el reloj de pared. También se crean ambas versiones de firmware con los textos en inglés.

RECOPILACIÓN

Construye un Reloj LED – EC1204B

Se describe el montaje del kit de reloj en una carcasa de plástico semitransparente, en la cual se alberga una batería de litio (recuperada de un PC), con el fin de alimentar el reloj de forma autónoma. Se empieza describiendo con el esquema y de forma básica el funcionamiento del reloj. Posteriormente se explica el funcionamiento del módulo ‘Step Up’, utilizado para elevar la tensión de la batería de litio y conseguir los 5V estabilizados que  alimentan el reloj. También se instala un módulo de carga TP4056 con protección, el cual se explicó con detalles entre el video Power Bank #1 y Linterna LED #2 – MEJORAS. Se mide el consumo del reloj, y se calcula la autonomía máxima de la batería, a partir de su capacidad. Finalmente se muestra la construcción de la serigrafía frontal, realizada con una CNC y se describe el funcionamiento y ajustes de este kit de reloj, utilizando el firmware con el que viene programado el reloj de fábrica.

Firmware para el Reloj LED: EC1204B

Se realiza un nuevo firmware para sustituirlo por el que viene instalado de fábrica, es la versión 1. Después de realizar un estudio de todo el hardware, se decide elevar la frecuencia del reloj de cuarzo, y sustituir el sensor de temperatura original DS18B20, por otro de mayor precisión. Al realizar estos cambios, la versión 1 del firmware no es compatible con el kit original, porque sería necesario sustituir estos dos componentes. Posteriormente se detalla a fondo el funcionamiento del chip DS1302, RTC o reloj en tiempo real, y se explica el proceso a seguir para reprogramar el micro-controlador utilizando el puerto ICSP (In-Circuit Serial Programming) que incorpora dicho kit. Finalmente se detallan todas las funciones y mejoras incorporadas en el nuevo firmware, explicando el modo de configuración y su funcionamiento.

Firmware Reloj LED #2 (Temperatura, Hora de Verano)

Se actualiza el firmware anterior, incorporando la posibilidad de que el reloj realice el cambio automático de la hora inverno/verano. Esta es la versión 2, y tampoco es compatible con el kit original. Se analiza a fondo el funcionamiento y comunicaciones entre el sensor de temperatura y el micro-controlador, comparando las diferencias que existen entre el sensor original DS18B20 y el instalado. Finalmente se calibra el sensor de temperatura mediante el menú de configuración y se detalla el proceso que sigue el reloj cuando tiene que actualizar la hora, estando apagado y encendido, comprobando también su funcionamiento.

Firmware Reloj LED #3 (Brillo nocturno)

Se actualiza de nuevo el firmware, incorporando la posibilidad de programar las horas en las que el display reduce su brillo. Con esto se evitan las molestias por exceso de iluminación, cuando se utiliza como despertador en una habitación oscura. Esta es la versión 3, y tampoco es compatible con el kit original. Se realizan de nuevo medidas de consumo del reloj, pero ahora con bajo brillo, y se calcula el incremento de la autonomía de su batería, debido a la reducción del consumo.

Firmware Reloj #4 (Compatible FC-209)

Debido a las numerosas peticiones que recibo, realizo un nuevo firmware totalmente compatible con el kit de reloj FC-209. Esta es la versión 4, y es la primera que se puede utilizar con el kit original. A pesar de que el sensor de temperatura original es menos preciso, con el DS18B20 se amplía el rango de medidas, pudiendo mostrar temperaturas entre -10 y 125ºC. Como existe la posibilidad de sustituir el chip de temperatura por otro externo con encapsulado metálico, es posible utilizar un sensor externo para medir la temperatura de componentes electrónicos o fluidos.

Cronómetro LED #5 (FC-209)

Se incorpora la posibilidad de utilizar el kit FC-209 como reloj o cronómetro. La opción de cronómetro se debe habilitar pulsando el botón central MODE, en la fase de arranque. En caso de no tocar nada, el módulo arrancará en modo reloj y tendrá las mismas funciones que tenía en la versión anterior, versión 4. Esta es la versión 5, y también es compatible con el kit FC-209. Una vez que se entra en el modo cronómetro, es posible configurar el modo del contador, pudiendo contar el tiempo hacia delante o hacia atrás. La resolución del cronómetro es de centésimas de segundos, mostrando este valor al final, en modo alterno cuando se detiene la cuenta.

Reloj LED de pared #1

Se muestra un nuevo diseño de reloj, utilizando las mismas características del kit FC-209, pero ampliando su tamaño para que pueda utilizarse como reloj de pared. Este firmware NO es compatible con el kit de reloj FC-209. Esta es la versión 6, exclusiva para este modelo de reloj, pero funciona exactamente igual que la versión 5 en el kit FC-209.

Al ampliar de tamaño el display, es mejor construir todo el frontal con diodos LED, en lugar de utilizar display’s de 7 segmentos. Con este aumento de tamaño se acentúa el efecto de parpadeo, provocado por la baja velocidad del procesador, por lo que se aumenta la frecuencia del cristal de cuarzo, igual que se hizo en  las 3 primeras versiones del firmware, pero en este caso se mantiene el mismo modelo de sensor de temperatura. Otra modificación, es el uso de una batería recargable en lugar de la pila de botón. En este firmware se habilita el control de carga de la batería tampón, a través del chip DS1302. Para poder alimentar más de dos diodos en serie, como es el caso, se necesita subir la tensión de alimentación por encima de 5V, por lo que también se necesita instalar un módulo Step-UP.

En el video se muestran los detalles de construcción del circuito impreso que se necesita, así como el ensamblado de los diodos led en el frontal y sus cableados. Finalmente se realizan las pruebas de funcionamiento.

Reloj LED de pared #2

Se construye la carcasa frontal del reloj de pared, y se monta un anclaje para poder colgarlo. También se muestra el grabado de la serigrafía y mecanizado del frontal, realizado todo con una CNC. Luego se pinta la serigrafía, y se muestra el reloj ya colgado y funcionando.

Termómetro digital para fluidos

Se utiliza un nuevo kit de reloj, para poder utilizarlo principalmente como medidor de temperatura de componentes electrónicos y fluidos. Se sustituye el chip de temperatura original, por otro externo del mismo modelo, pero encapsulado en acero inoxidable. También se realiza el mecanizado con la CNC, pero como en este caso se utilizará el kit con un  alimentador externo de 5V, su tamaño es bastante reducido y fácil de transportar. Finalmente se realiza el calibrado del sensor de temperatura, utilizando como referencia los 0ºC que tiene el hielo en fusión.

Firmware for LED Clock – ENGLISH

Debido a las múltiples peticiones que recibí de algunos seguidores no hispanos, hice una versión del último firmware del kit FC-209, pero traduciendo todos sus textos en inglés.

Última actualización del firmware del reloj LED

Se incorporan un par de sugerencias que he recibido en los últimos meses. La primera de ellas y la más solicitada, es la posibilidad de presentar la temperatura en modo alterno con la hora, y la otra es la opción de poder mostrar los CEROS de las decenas de hora en el display, es decir, que se encienda el cero de la izquierda de las horas entre las 0 y las 9 de la mañana. Ambas opciones serán configurables, de manera que se podrá elegir entre la presentación anterior o la nueva.

Existe una variante entre el firmware del kit de reloj FC-209 y el reloj de pared, aunque sus prestaciones son las mismas. De manera que hay dos modelos de firmware, uno para cada modelo.

·        Kit FC-209: J_RPM_v5B_EC1204B.HEX

·        Reloj de pared: J_RPM_v6B_EC1204B.HEX

Configuración del Reloj LED (v5B-v6B)
Configuración del Reloj LED (v5B-v6B)

 

También he creado dos versiones con los textos en inglés:

·        Kit FC-209:  J_RPM_v5eB_EC1204B.HEX

·        Reloj de pared: J_RPM_v6eB_EC1204B.HEX

Flow diagram (v5B-v6B)
Flow diagram (v5B-v6B)

Detalles de la presentación alterna

Cuando se active el modo de presentación alterno, la temperatura se mostrará de forma síncrona con el reloj, y lo hará cada 5 segundos. Entre el segundo 5 y el 55 de cada minuto, nunca se mostrará en el segundo ‘0’ de cada minuto, y lo hago así con el fin de mostrar siempre el cambio del minuto al paso por el segundo ‘0’ y no interrumpir la escucha de las señales horarias en caso de que estuvieran activadas. La temperatura sólo aparecerá durante un segundo de cada 5, en total 11 veces en cada minuto.

Por otra parte, como la lectura de la temperatura requiere de un tiempo y no es conveniente utilizar interrupciones cuando se está realizando la lectura, la presentación del display se detiene durante ese período de tiempo, siempre inferior a 1 segundo, pero provoca que la aparición de la temperatura en el display sea inferior a 1 segundo. Dependiendo de la velocidad del sensor de temperatura ese efecto podría pasar desapercibido, cosa que no sucede con el chip original que se incluye en el kit, ya que es demasiado lento. Me refiero al sensor de temperatura DS18B20 que se incluye en el kit de reloj.

Por ese motivo, con el fin de mejorar la visibilidad de la temperatura, la lectura sólo se realizará cada 10 segundos, de manera que entre dos presentaciones sucesivas, una de ellas siempre será instantánea y aparecerá durante 1 segundo completo. Dependiendo del segundo en el que se arranque el reloj, la lectura podría coincidir en los segundos acabados en ‘0’ o en ‘5’, ya que la primera vez que pase por alguno de ellos tendrá que leer el valor, pero al paso por el segundo ‘0’ se sincronizará y siempre leerá en los segundos acabados en ‘5’. Los segundos acabados en ‘0’ mostrarán la temperatura leída anteriormente, excepto en el segundo ‘0’ de cada minuto como ya he mencionado antes. Por otra parte, en el caso de que la temperatura sobrepase alguno de los dos umbrales de alarma, el aviso acústico se realizará sólo cuando el valor acaba de ser leído. Es decir, la alarma de temperatura sólo sonará en los segundos acabados en ‘5’