⏱️ Lectura: 17 min

En Portobello, un barrio costero de Edimburgo, un grupo de voluntarios subió por una escalera empinada hasta la torre de la vieja comisaría de policía del barrio y encontró algo que no esperaban: un microcontrolador PIC 16F628 sin ninguna marca de fabricante, soldado a mano, controlando el carillón de un reloj de 1877 desde hace un cuarto de siglo.

📑 En este artículo
  1. TL;DR
  2. Qué pasó
  3. Contexto e historia
  4. Detalles técnicos: qué hace el PIC 16F628 dentro de la caja
    1. Tres generaciones de tecnología en la misma torre
    2. Cómo confirmar qué está haciendo la placa
  5. Cómo reproducirlo si te toca una placa sin marcas
  6. Impacto y análisis
  7. Qué sigue
  8. Preguntas frecuentes
    1. ¿Qué es un PIC 16F628?
    2. ¿Por qué la caja del carillón no tiene un reloj de tiempo real?
    3. ¿Cómo pusieron en hora el reloj sin manual?
    4. ¿Qué es Action Porty?
    5. ¿Se puede recuperar el firmware de un PIC sin marcas?
    6. ¿Qué pasa si el reloj llega a chimear mal?
  9. Referencias
    1. 📚 Artículos relacionados

La comunidad local, agrupada en Action Porty, había comprado el edificio para uso comunitario, pero nadie sabía cómo poner en hora el reloj de la torre ni cómo funcionaba la caja electrónica que hace sonar las campanadas. Lo que empezó como una tarde de bricolaje terminó siendo un ejercicio de ingeniería inversa sobre hardware sin documentación.

TL;DR

  • Construcción de la comisaría de Portobello, en Edimburgo, comenzó en 1877.
  • La comunidad Action Porty compró el edificio con fondos del Scottish Land Fund, pero nadie sabía ajustar la hora del reloj de la torre.
  • Dentro de la caja de control del carillón hay un microcontrolador PIC 16F628 con código de fecha estimado en 2001, sin marca de fabricante.
  • Levantar un pasador (pawl) desconecta el motor del eje y permite ajustar la hora manualmente, cara por cara.
  • Además, el circuito integra un cargador de batería de plomo-ácido, relés y un interruptor GMT/BST.
  • El único control visible es el botón «advance»: hay que mantenerlo pulsado y soltarlo para que el carillón toque la hora siguiente.
  • Un LED de estado parpadea con un patrón (largo, largo, corto, corto, corto) que nadie logró decodificar todavía.
  • No hay un reloj de tiempo real en la placa: solo cuenta horas a partir de los pulsos de un switch mecánico en el eje.

Qué pasó

Todo arrancó con un mensaje de un vecino, que le preguntó a un amigo con conocimientos técnicos si quería subir a la torre de la comisaría de Portobello, comprada meses antes por Action Porty, e intentar arreglar el reloj. La organización había pedido públicamente a alguien que supiera cómo cambiar la hora del mecanismo, y no encontraban a quién preguntarle.

Llegar al mecanismo no fue trivial. Había que subir por una escalera larga y empinada hasta un ático polvoriento, y de ahí a otro tramo de escalones que desembocaba en la torre del reloj. Una vez arriba, el premio fue ver el mecanismo completo, un tren de engranajes de finales del siglo XIX conectado a tres caras de reloj, una por cada fachada visible desde la calle.

La construcción del edificio comenzó en 1877, así que es plausible que el mecanismo original date de esa época. Con el tiempo se le agregaron motores eléctricos para reemplazar la cuerda manual, y una caja de control para apagar el carillón durante la noche.

Para poner en hora el reloj, los voluntarios razonaron la mecánica: un motor mueve, a través de un tren de engranajes, un eje que gira una vez por hora. Ese eje se divide en tres ejes secundarios, uno por cada cara, y mueve directamente el minutero; un engranaje en cada cara deriva de ahí la hora. La hipótesis era simple: si lograban desconectar el motor, podrían girar el eje a mano y ajustar la hora.

Encontraron un pasador (pawl) en uno de los engranajes que se podía levantar para liberar el eje. Con el pasador fuera, el eje giraba con la mano sin resistencia y permitía mover las agujas. Cada aguja tenía un contrapeso visible desde dentro de la torre, así que calculaban la posición de la aguja que no veían usando el contrapeso opuesto como referencia.

Hubo un momento de pánico cuando pensaron que habían dejado el reloj corriendo hacia atrás. La explicación era más simple de lo que parecía: estaban mirando el mecanismo desde adentro de la torre, así que veían todo espejado. Bajaron a la calle para confirmar la hora en la cara visible desde afuera y, para su alivio, el reloj corría hacia adelante y marcaba la hora correcta.

Contexto e historia

El edificio de la comisaría de Portobello tiene una historia más larga que la de un puesto policial. Se construyó para alojar reuniones, administración y los tribunales del entonces burgo independiente de Portobello. Cuando Portobello se anexó a Edimburgo, el edificio pasó a ser biblioteca pública y, más adelante, comisaría de policía.

El Scottish Land Fund permitió que Action Porty comprara el edificio para propiedad comunitaria. Cuando los voluntarios subieron a la torre, en el resto del edificio otro grupo estaba retirando las placas de poliestireno de los años 70 y el papel tapiz con textura de viruta de madera que durante décadas ocultaron la arquitectura original.

Esa doble restauración, la del edificio y la del reloj, resume bien el tipo de proyecto, recuperar infraestructura física victoriana con las herramientas y el conocimiento técnico de hoy, sin planos ni manuales originales a la mano.

La construcción del edificio de la comisaría de Portobello comenzó en 1877. Foto de National Cancer Institute en Unsplash

Detalles técnicos: qué hace el PIC 16F628 dentro de la caja

El mecanismo de arriba, el reloj propiamente dicho, resultó relativamente fácil de entender: es un tren de engranajes clásico de reloj de torre, con un motor eléctrico añadido para reemplazar la cuerda de pesas original. El desafío real estaba en la caja de control del carillón, que sí tenía electrónica moderna encima de la mecánica victoriana.

Dentro de esa caja, los voluntarios encontraron un microcontrolador PIC 16F628, con un código de fecha que estiman de 2001, montado en una placa sin ninguna marca de fabricante ni número de modelo. Junto al PIC había varios relés, una fuente de alimentación y un circuito cargador de batería para una batería de plomo-ácido incluida como respaldo. Ninguno de los presentes sabía quién diseñó ese circuito, ni si era un producto estándar de alguna empresa de relojes de torre o un desarrollo hecho a medida para ese edificio en particular.

La lógica de funcionamiento, reconstruida a partir de mediciones y prueba y error, describe lo siguiente. La caja enciende un motor de corriente alterna que mueve, mediante una cadena, el mecanismo de golpes del carillón. Mientras ese motor está encendido, el reloj golpea de forma continua. Un microswitch en el mecanismo de golpes le informa a la caja cuántas campanadas ya sonaron, para que sepa cuándo detener el motor. Otro microswitch, ubicado en el eje principal del reloj, se activa una vez por hora y le indica a la caja cuándo debe iniciar la secuencia de campanadas.

La placa no tiene ningún reloj de tiempo real: no sabe qué hora es en el sentido de un RTC con cristal de cuarzo. Lo único que hace es contar pulsos de ese segundo microswitch para saber en qué hora del día está, y comparar ese conteo contra el número de golpes que ya dio el mecanismo. Es una solución elegante para el problema real, no hace falta saber la hora exacta si ya hay un reloj mecánico funcionando al lado que la da gratis, pulso a pulso.

El único control expuesto al usuario es un botón etiquetado «advance». Hay que mantenerlo presionado varios segundos antes de que pase algo; al soltarlo, el carillón suena la hora siguiente. Presionado y soltado otra vez, suena la hora que sigue a esa. Ajustar el conteo de horas de la caja parece consistir en presionar «advance» las veces necesarias hasta llegar a la hora correcta.

También hay un LED de estado que parpadea con un patrón (largo, largo, corto, corto, corto) que los voluntarios no lograron decodificar en la primera visita. La caja tiene, además, un selector para el cambio de horario GMT/BST del Reino Unido y conectores tipo banana para los dos microswitches, separados de los cables de alimentación de red, el motor del reloj y el motor del carillón.

flowchart TD
A["Motor del reloj"] --> B["Eje principal, 1 vuelta por hora"]
B --> C["Cara 1"]
B --> D["Cara 2"]
B --> E["Cara 3"]
B --> F["Microswitch de hora"]
F --> G["Placa PIC16F628"]
G --> H["Rele del motor de campanada"]
H --> I["Mecanismo de golpes"]
I --> J["Microswitch de golpes"]
J --> G

El diagrama resume el circuito completo: el eje mecánico dispara el conteo, la placa decide cuánto debe sonar el carillón, y un segundo switch le confirma cuándo ya sonó lo suficiente.

Tres generaciones de tecnología en la misma torre

Era Qué agrega Ventaja Limitación
Mecanismo original (1877) Tren de engranajes de cuerda, movido por pesas No depende de electricidad; funciona décadas sin electrónica Hay que subir a dar cuerda manualmente cada pocos días
Conversión a motor eléctrico Motor que reemplaza la cuerda de pesas Elimina el mantenimiento manual de dar cuerda El reloj deja de funcionar si se corta la luz
Caja de control con PIC 16F628 (~2001) Automatiza el carillón y permite apagarlo de noche Permite silenciar las campanadas nocturnas sin tocar la mecánica Sin documentación ni RTC propio: perder el conteo de horas obliga a reajustar a mano
La caja de control no tiene reloj de tiempo real: cuenta las horas a partir de un microswitch mecánico. Foto de ThisisEngineering en Unsplash

Para entender mejor qué tipo de firmware podría vivir en un chip como este, sirve ver primero el ejemplo mínimo que cualquiera escribiría para un PIC16F628 nuevo, y después una reconstrucción de la lógica real observada en la caja.

#include <xc.h>
#pragma config FOSC = INTOSCIO, WDTE = OFF, PWRTE = ON
#define _XTAL_FREQ 4000000

void main(void) {
    TRISB = 0x00;      // RB0 como salida hacia el LED de estado
    while (1) {
        RB0 = 1;
        __delay_ms(500);
        RB0 = 0;
        __delay_ms(500);
    }
}

Este es el firmware más simple posible para un PIC16F628: hace parpadear un LED cada medio segundo usando el oscilador interno. El LED real de la caja de Portobello parpadea en un patrón mucho más elaborado (largo, largo, corto, corto, corto), lo que sugiere una máquina de estados y no un simple parpadeo.

static volatile unsigned char horas_objetivo = 0;
static volatile unsigned char golpes_dados = 0;

void interrupcion_switch_hora(void) {
    horas_objetivo++;
    golpes_dados = 0;
    RELE_MOTOR_CAMPANADA = 1;   // arranca el motor de golpes
}

void interrupcion_switch_golpe(void) {
    golpes_dados++;
    if (golpes_dados >= horas_objetivo) {
        RELE_MOTOR_CAMPANADA = 0;  // ya sonaron todas las campanadas
    }
}

void boton_advance_soltado(void) {
    horas_objetivo++;
    golpes_dados = 0;
    RELE_MOTOR_CAMPANADA = 1;
}

Esta reconstrucción no es el firmware real de la caja, nadie volcó todavía la memoria del PIC: es la lógica mínima que explica el comportamiento observado, contar golpes contra un objetivo de horas y dejar que el botón «advance» incremente ese objetivo a mano.

Cómo confirmar qué está haciendo la placa

Para validar cada hipótesis antes de tocar algo irreversible, los voluntarios midieron continuidad entre los conectores banana y los pines del PIC con un tester, y observaron el LED de estado con el motor del carillón desconectado. Ese mismo protocolo sirve para cualquiera que se tope con una placa sin marcas: aislar la carga (desconectar el motor de 220V del carillón), medir con un multímetro qué pines cambian de estado al presionar el botón «advance», y anotar la duración de cada pulso del LED con un cronómetro o, mejor, un analizador lógico barato conectado a las líneas de señal de bajo voltaje.

Cómo reproducirlo si te toca una placa sin marcas

Si alguna vez heredás una placa de control sin documentación, de un reloj de torre, un portón viejo o una alarma de fábrica, el protocolo que siguieron en Portobello se puede resumir en pasos concretos.

Primero, identificar el chip. El PIC 16F628 viene en un encapsulado DIP de 18 pines con el número de parte impreso encima, aunque el resto de la placa no tenga marcas. Con ese número alcanza para bajar la hoja de datos completa desde microchip.com y conocer la asignación de cada pin.

Segundo, mapear los conectores antes de energizar nada. Con el equipo desconectado de la red eléctrica, usar un multímetro en modo continuidad para trazar cada cable hasta su destino (motor del reloj, motor del carillón, switch de golpes, switch de hora, alimentación de red) y etiquetarlos físicamente.

Tercero, observar antes de intervenir. Alimentar la placa con las cargas de motor desconectadas y solo mirar qué hace el LED de estado y qué pines cambian de voltaje al presionar el único botón visible. Ese fue el paso que permitió a los voluntarios de Portobello deducir la lógica del botón «advance» sin arriesgar el mecanismo mecánico ni la instalación eléctrica de 1877.

Cuarto, si hace falta releer o volcar el programa del PIC, un programador ICSP compatible con PICkit puede conectarse a los pines de clock, data y MCLR, siempre y cuando el bit de protección de código del chip no esté activado; si está activo, no hay forma de leer el programa sin borrarlo primero.

💡 Tip: Antes de tocar cualquier microswitch conectado a un motor de 220V, desconectá la alimentación de esa carga en la caja de fusibles, no solo en la placa de control: los relés de estas cajas suelen dejar el motor conectado directamente a la red cuando están energizados.

⚠️ Ojo: Trabajar dentro de una torre de reloj implica subir escaleras largas y empinadas en espacios angostos. Cualquier intervención de este tipo debería hacerse con otra persona abajo, nunca en solitario.

Impacto y análisis

El caso de Portobello no es único. Muchos edificios comunitarios, iglesias y ayuntamientos pequeños heredan sistemas de control instalados hace veinte o treinta años por un electricista local que ya no está disponible, o que nunca documentó lo que hizo. Cuando esa persona se jubila o pierde contacto con el edificio, el conocimiento sobre cómo funciona la placa se pierde con ella.

Un PIC 16F628 sin marcas es, en ese sentido, un caso de estudio pequeño de un problema más grande, la deuda técnica de la infraestructura física. Los edificios de esta época acumulan capas de electrónica de control, para calefacción, alarmas, portones, relojes de torre, instaladas de forma puntual y casi nunca documentada para quien venga después.

La ventaja, en este caso, es que el problema era acotado y reversible. Pudieron desconectar el motor con el pasador mecánico, y la peor consecuencia de un error era un reloj mal ajustado por unas horas, no un sistema crítico como una alarma de incendios. Eso les dio margen para experimentar con el botón «advance» sin miedo a romper algo caro o peligroso.

La restauración del edificio en paralelo, retirar el poliestireno y el papel tapiz de los años 70, muestra además que este tipo de proyectos comunitarios suele combinar oficios muy distintos: carpintería, electricidad y, en este caso, ingeniería inversa de electrónica embebida de bajo nivel.

Qué sigue

Quedan preguntas abiertas. Los voluntarios no lograron decodificar el patrón del LED de estado ni confirmar qué hace exactamente el botón «reset» más allá de apagar el motor del reloj, y tampoco probaron qué pasa si el carillón llega a sonar trece veces en una hora por un error de conteo.

El plan, según lo que documentaron en su publicación original, es volver con más tiempo para completar ese mapeo: decodificar el LED, confirmar el comportamiento del botón de reset y dejar una guía escrita para quien tenga que tocar la caja después de ellos. Es, en pequeño, el mismo ejercicio de documentación que le falta a buena parte de la infraestructura física heredada.

📖 Resumen en Telegram: Ver resumen

Si tenés una placa sin marcas dando vueltas en un cajón, bajá la hoja de datos del chip que tenga impreso encima desde microchip.com y empezá por mapear continuidad antes de energizar nada.

Preguntas frecuentes

¿Qué es un PIC 16F628?

Es un microcontrolador de 8 bits de la familia PIC de Microchip, en un encapsulado DIP de 18 pines, muy usado en electrónica de control simple desde finales de los 90 y durante los 2000 por su bajo costo y su memoria flash reprogramable.

¿Por qué la caja del carillón no tiene un reloj de tiempo real?

Porque no lo necesita: ya existe un reloj mecánico funcionando al lado, con un microswitch que marca cada hora. La placa solo cuenta esos pulsos en lugar de llevar su propio cronómetro con cristal de cuarzo.

¿Cómo pusieron en hora el reloj sin manual?

Encontraron un pasador (pawl) que desconecta el motor del eje principal. Con el motor desacoplado, el eje gira libremente a mano y permite mover las tres caras del reloj hasta la hora correcta.

¿Qué es Action Porty?

Es el grupo comunitario que compró el edificio de la antigua comisaría de Portobello, en Edimburgo, con financiamiento del Scottish Land Fund, para convertirlo en un espacio de uso comunitario.

¿Se puede recuperar el firmware de un PIC sin marcas?

Depende de si el bit de protección de código del chip está activado. Si no lo está, un programador compatible con ICSP puede volcar la memoria de programa conectándose a los pines de clock, data y MCLR. Si está activado, no es posible sin borrar el chip primero.

¿Qué pasa si el reloj llega a chimear mal?

Es una de las preguntas que los voluntarios dejaron sin responder: no probaron qué ocurre si el conteo de golpes se desincroniza del todo, por ejemplo si el carillón llega a sonar trece veces.

Referencias

  • Fixing the Portobello Police Station Clock: la publicación original de Point in the Cloud con fotos del mecanismo, la caja de control y el proceso completo.
  • Wikipedia: PIC microcontroller: contexto sobre la familia de microcontroladores a la que pertenece el PIC 16F628 encontrado en la caja.
  • Microchip Technology: fabricante oficial de la familia PIC16F628, con las hojas de datos necesarias para identificar cualquier chip de esta serie.
  • Wikipedia: Portobello, Edinburgh: contexto histórico y geográfico del barrio donde se encuentra el edificio.

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Imagen destacada: Foto de Josh Redd en Unsplash


Andrés Morales

Desarrollador e investigador en inteligencia artificial. Escribe sobre modelos de lenguaje, frameworks, herramientas para devs y lanzamientos open source. Cubre papers de ML, ecosistema de startups tech y tendencias de programación.

0 Comentarios

Deja un comentario

Marcador de posición del avatar

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.