1 puntos por GN⁺ 2026-02-10 | 1 comentarios | Compartir por WhatsApp
  • Un proyecto que controla un reloj analógico de cuarzo de bajo costo con un módulo ESP8266 y un sketch de Arduino para sincronizarlo con la hora de Internet
  • Obtiene la hora desde un servidor NTP cada 15 minutos para mantener la precisión, e incluye ajuste automático de horario de verano
  • Se modifica el reloj separando la bobina del motor paso a paso Lavet para que el ESP8266 pueda controlarla, y se usa un chip EERAM para guardar la posición de las agujas de hora, minuto y segundo incluso cuando se corta la energía
  • En la configuración inicial, una interfaz de página web provista por el ESP8266 permite indicar la posición de las agujas; después, una página de estado visualiza el estado del reloj con SVG o HTML Canvas
  • Un ejemplo de código abierto que demuestra cómo implementar un reloj con sincronización precisa por red usando hardware económico, mostrando una aplicación práctica de tecnologías de control IoT embebido

Resumen del proyecto

  • ESP8266 WiFi Analog Clock es un sistema que usa un módulo WEMOS D1 Mini ESP8266 y un sketch de Arduino para obtener y mostrar automáticamente la hora local desde servidores NTP (Network Time Protocol)
    • Se reconecta al servidor NTP cada 15 minutos para mantener la precisión del reloj
    • Incluye ajuste automático de horario de verano (Daylight Saving Time)
  • El proyecto se basa en un reloj analógico de cuarzo de bajo costo y combina modificaciones de hardware con control por software

Configuración de hardware

  • El reloj usado es un reloj analógico de cuarzo comprado en Walmart por US$3.88
  • Se abre el movimiento de cuarzo del reloj para separar la bobina interna del motor paso a paso Lavet del oscilador de cuarzo, y se sueldan cables a cada terminal para conectarlo al ESP8266
    • La mayoría de estos movimientos están ensamblados a presión, sin tornillos
    • Los cables de la bobina son más finos que un cabello, así que hay que manipularlos con mucho cuidado
  • El circuito terminado monta el IC EERAM y otros componentes sobre una perfboard

Funcionamiento del software

  • El sketch AnalogClock.ino hace que el ESP8266 compare 10 veces por segundo la hora real con la hora mostrada por el reloj
    • Si el reloj está atrasado, acelera la aguja de los segundos para sincronizarlo
    • Si el reloj está adelantado, espera hasta que la hora real lo alcance
  • El movimiento de la aguja de segundos se logra aplicando un pulso bipolar a la bobina del motor Lavet
    • Según las características del motor, hay que ajustar la constante PULSETIME; experimentalmente, 30 ms resultó adecuado
  • Los relojes baratos no tienen retroalimentación sobre la posición de las agujas, por lo que esa información se pierde cuando se corta la energía
    • Para resolverlo, se usa un Microchip 47L04 Serial EERAM (SRAM de 4 Kbit + respaldo EEPROM)
    • Guarda cada segundo la posición de las agujas de hora, minuto y segundo, y la restaura al volver a encenderse

Configuración inicial e interfaz web

  • En la primera ejecución del sketch, el ESP8266 ofrece una página web simple para que el usuario indique la posición inicial de las agujas
  • Después, el ESP8266 recuerda la posición de las agujas usando los datos guardados en la EERAM
  • Durante el funcionamiento, ofrece una página de estado (status page) con tres modos de visualización
    • Visualización gráfica de carátula basada en SVG
    • Visualización de carátula basada en HTML Canvas
    • Visualización de estado solo en texto

Licencia e información técnica

  • El proyecto se publica bajo licencia MIT
  • La composición principal del código es C++ 64.1% y C 35.9%
  • El repositorio de GitHub tiene 252 estrellas y 2 forks
  • Etiquetas relacionadas: arduino, esp8266, clock, analog-clock, ntp, hardware-construction

Importancia

  • Un ejemplo práctico de cómo convertir un reloj barato en un reloj inteligente sincronizado por Wi‑Fi
  • Un caso de implementación de control preciso del tiempo e interfaz web usando el entorno ESP8266 y Arduino
  • Material de referencia de código abierto para aprender sobre modificación de hardware IoT y técnicas de sincronización de firmware

1 comentarios

 
GN⁺ 2026-02-10
Comentarios de Hacker News
  • Es un proyecto realmente genial
    La parte que más me llamó la atención fue el chip “SRAM with EEPROM backup”
    Este chip permite guardar de forma permanente la posición de las agujas cada vez que se mueven, sin consumir la vida útil de escritura como una EEPROM común
    Además cuesta menos de 1 dólar, así que es un componente útil para proyectos hobby o de pequeña escala
    • Creo que su funcionamiento se puede resumir así
      La SRAM y la EEPROM vienen en un mismo encapsulado junto con un controlador, y cerca hay un pequeño capacitor (4.7µF)
      La SRAM conserva los datos mientras haya energía, y la EEPROM los guarda de forma permanente aunque se corte la corriente, pero tiene un límite de escrituras
      El controlador detecta cuando el voltaje empieza a caer y vuelca de inmediato el contenido de la SRAM a la EEPROM
      El capacitor suministra la energía necesaria para que la EEPROM pueda escribir en ese momento
      Cuando vuelve la energía, los datos de la EEPROM se copian otra vez a la SRAM
      La desventaja es que la capacidad es pequeña, apenas 4 kilobits, pero si puedes resolver este problema por 1 dólar, vale totalmente la pena
    • No estoy seguro de si es una tecnología similar, pero este enlace de producto de Adafruit también está interesante
    • A mí también me gusta FRAM para este tipo de usos
      Sobre todo porque, si guardas logs de depuración en un ring buffer, puedes conservar los crash logs de un sistema embebido incluso sin estar conectado a una PC de desarrollo
  • En Walmart aparece con precio de $3.88, pero por la política de precios dinámicos según la zona y el usuario, en mi área me sale a $5.92
    Enlace del producto
  • En mi casa tengo un reloj atómico Seiko que se supone que ajusta la hora automáticamente con señal WWVB
    Pero donde vivo ahora la señal es tan débil que configurarlo a mano es muy molesto
    Así que hice mi propio código de Arduino usando ESP32 y un servidor NTP para emular señales de reloj atómico de distintas partes del mundo
    También es bastante interesante aprender sobre la historia y las diferencias entre las señales de radiodifusión de relojes atómicos de cada país
    • Ojo: transmitir en la misma frecuencia que WWVB probablemente sea ilegal
  • Me gustaría ver a alguien modificar un reloj de proyección como este
    El brillo rojo de la proyección es perfecto por la noche, pero como no tiene sincronización por Wi-Fi, no se puede ajustar con NTP ni GPS
    La parte del proyector está conectada al cuerpo principal con un cable plano, así que hacerle ingeniería inversa podría ser divertido
    Idealmente, estaría bueno que en el techo una matriz LED mostrara también otra información además de la hora
    Sí existen productos así, pero son carísimos, como buyfrixos.com
    • Yo hice una versión casera de baja luminosidad
      Enlace a mi proyecto
    • El producto enlazado trae función de “Atomic Time”, así que al parecer se sincroniza con señal WWVB
      Yo también uso varios relojes de pared baratos de ese tipo y casi no tienen desviación de hora
      Incluso creo que podrían tener menos jitter que NTP
    • A mí también me encantan los relojes WWV/WWVB
      Nunca hace falta ponerlos en hora, y coinciden con los relojes NTP con menos de 1 segundo de diferencia
      En cambio, los relojes del horno o del microondas sí dan ganas de apagarlos
    • La verdad es que cuando te metes en este tipo de modificaciones, entre el costo de los componentes y el tiempo invertido terminas concluyendo que el precio de un producto comercial sí tiene sentido
    • Tengo algunos relojes digitales comprados en Temu que se adelantan con el tiempo
      En un mes ya van como 1 minuto adelantados, así que estaría bueno que tuvieran sincronización por Wi-Fi
  • Me encanta esta vibra hacker
    Hoy en día los productos son cada vez más cerrados, y extraño poder hacer cosas simples y hackeables
    Si algún día dejo de estar atado al trabajo, me gustaría fabricar yo mismo electrodomésticos simples, confiables y amigables para hackers
    Ver proyectos así de verdad me impresiona
  • Si quieres ensuciarte menos las manos, recomiendo Crazy Clock
    Lo compré para mi hija, pero el tic-tac irregular le distraía al estudiar, así que ahora está descansando
    Aun así, fue una experiencia bastante divertida
    • El modo “Early clock” mantiene el reloj entre 0 y 10 minutos adelantado, así que sirve bien para evitar llegar tarde
      Eso sí, si tienes varios relojes en casa, tienes que decidirte a usar solo uno para que funcione
  • Si tienes un poco más de presupuesto, también hay relojes grandes que hacen un “clonc” cada 30 segundos
    Introducción al Gents Turret Movement
    Yo usé uno de esos para hacer un reloj electromecánico basado en un diapasón
    En vez de una fuente de tiempo precisa, funciona con un diapasón y lógica 74xx
    • Estos relojes de diapasón son realmente geniales
      Me pregunto por qué Accutron ya no sigue fabricándolos
      El uso de la frecuencia de resonancia es parecido al de un reloj de cuarzo, pero visualmente mucho más atractivo
  • Al diseñar un circuito H-bridge para un motor paso a paso, hay que considerar sí o sí la corriente inversa
    Si no, los picos pueden causar fallos o incluso dañar el microcontrolador
    Lo ideal es aislar el voltaje de compuerta con un optotransistor y alimentar el motor por separado
  • Vi un video de YouTube titulado “Convertir basura de €0 en una consola de edición de video de €400”
    También tiene proyecto en GitHub
    • La idea de reutilizar un controlador de VCR como dispositivo de entrada digital es excelente
      Todavía quedan muchos decks viejos y controladores LANC, así que tiene bastante potencial
  • El proyecto está muy bueno, pero parece que podría haber deriva de tiempo
    Aunque el reloj conozca la hora exacta, si la velocidad real de accionamiento se va desajustando poco a poco, el error acumulado puede crecer bastante
    Sobre todo si la constante PULSETIME está mal configurada aunque sea por 1 ms, podría aparecer una diferencia en solo un día
    Claro, el motor paso a paso Lavet en teoría mantiene pasos basados en una frecuencia constante, pero también podría haber sesgos por desgaste o ruido
    De todos modos, para el nivel de un reloj de pared quizá sea un error despreciable
    • En un motor paso a paso tipo Lavet, el funcionamiento se controla por la cantidad de pulsos, así que importa más el número que el ancho del pulso
      Si revisas esta explicación en Wikipedia, se entiende fácil
    • pulsetime es solo el tiempo necesario para avanzar un paso
      Mientras no se pierdan pasos, no se acumula error
      Es decir, basta con mantener el conteo de pasos correctamente