Skip to content
jsgf edited this page Sep 13, 2010 · 19 revisions

Modified Iceclock firmware

This is a set of heavily modified firmware for the Adafruit Industries Iceclock.

The internals are significantly different from the original firmware, but there are also a number of new user-visible features.

New User-visible Features

  • Don’t show leading ‘0’ on hours (in US region) or days
  • Four selectable seconds display modes:
    1. Normal seconds display
    2. AM/PM display (US region)
    3. “Dial” display (show seconds to 10second resolution around edge of a display digit, blinking center segment)
    4. None – just a blinking dot
  • Time-based auto-dim: set “morning” and “evening” hours and brightnesses
  • Alarm blinks brightness from min to max (even while snooze is active)
  • selectable snooze time

Todo:

  • alarms for specific days of the week (or perhaps just weekend/weekday)
  • multiple alarms
  • selectable alarm tones

Internal changes

The internals have been considerably changed:

  • Central button state machine to handle debounce and repeat (avoiding a pile of repeated code on every button-read)
    • Incorporates “debounce crash” fix
  • Table-driven menu display
    • New menus are just a new table
    • All time/date display reuses the menu display code
  • All “application” logic moved to main loop
    • No display updates from interrupt routines
  • Much smaller code size (9.5k program size for baseline; 8.5k with new features; data size also much smaller)
Clone this wiki locally