Owake nació de una pregunta simple: ¿para qué depender del celular para despertar si puedes construir algo mejor tú mismo?
Es un reloj despertador retro, reloj digital y cronómetro que corre en microcontroladores AVR usando el core de Arduino. Todo está manejado por una máquina de estados finitos jerárquica que gestiona cada modo y transición de forma limpia, acompañada de un driver propio para displays LCD basados en el HD44780 escrito desde cero — sin librerías infladas, con control total sobre el timing y la comunicación.
Características
- Modos de alarma, reloj digital y cronómetro
- Navegación fluida y responsiva mediante tres botones (abajo, arriba, ok)
- Driver I2C propio para LCDs 16×2 HD44780
- Arquitectura FSM jerárquica — los estados son componibles y las transiciones son explícitas
- Soporte para atmega328p y atmega32u4 de fábrica
Hardware
Se necesita una placa AVR común (Arduino Nano, Uno, Leonardo, Mini, Micro o Mega), un LCD I2C 16×2, tres pulsadores y un buzzer. El esquemático está incluido en /resources/schem.png.
Compilación
Requiere avr-binutils, avr-gcc, avr-libc y avrdude en el path. En Windows se pueden obtener mediante MSYS2.
make mcu=yourmcu # por defecto atmega328p
make flash mcu=yourmcu port=mcuport
El firmware compilado queda en build/binaries.
Licenciado bajo la GNU General Public License v3.0.