‹ cd ~/devlogv2-6-to-v2-10.md

WHAT SHIPPED IN v2.6 – v2.10

2026-09-05 · endothermal systems

This entry covers eight releases, v2.6.3 through v2.10.1. It exists because the site had fallen behind the firmware by that whole span, and describing a smaller device than the one that ships is a defect in the documentation.

From here each release gets its own entry as it lands.

Prayer times, calculated on the device

Six daily times, worked out from the coordinates already stored for the sunrise alarms. No lookup, no download, no account, and nothing that stops working when the WiFi is off — which on this device it is, unless it has been switched on by hand.

The solar code was already a full NOAA implementation with two-pass refinement at the event, so this is a parameterization of arithmetic that was there rather than a new algorithm. The horizon altitude became a parameter, which puts the twilight angles on the same code path as sunrise; declination and the equation of time were pulled out where they could survive the call, because Asr needs the first and Dhuhr the second.

  • Nine calculation methods.
  • Asr by either the Standard or the Hanafi shadow ratio.
  • Per-prayer offsets of up to thirty minutes in either direction.
  • Four high-latitude substitution rules.

Above roughly 48 degrees the twilight angles genuinely go unmet for weeks at a time. The default there is --:--, because that is the honest answer; the substitution rules are offered for anyone who wants one, rather than applied quietly on their behalf.

Prayer checks deliberately do not route through the alarm scheduler. That function owns the snooze budget, the game-dismissal contract, the mercy rule and the one-shot auto-disable, and a prayer time has none of those. It also yields to a sounding alarm: an adhan that swallows a wake-up alarm is a defect, not a trade-off.

The tests assert against physical constants rather than a copied timetable — equation-of-time extremes and zero crossings, declination at the solstices, symmetry across the equator, a twelve-hour equinox day, prayer ordering across 162 combinations, the Asr shadow ratio recovered back out of the altitude. A misremembered table gets "fixed" by breaking correct code.

A world clock, four cities at once

135 cities in 2,970 bytes. A city is a name, a standard offset and one of eight daylight saving rules.

This is deliberately not tzdata. The real database is megabytes and changes several times a year, which would mean shipping it over the air to stay true — a worse failure than a table that is honest about its limits. The screen always shows the offset it actually used, so an hour out is visible rather than hidden.

The table is generated, never hand-edited, and the generator asserts what the rest of the feature assumes: names that fit the box, ASCII only, regions in contiguous runs because the picker's region jump walks them. Slots are stored as indices but seeded by name, so inserting a city into the middle of the table cannot repoint a store written by older firmware.

Twelve things to remember, and the first way to type

Reminders, and with them the only string editor in the firmware. Every other editor here is a cursor over discrete or numeric fields; a name is a different interaction shape, so it was built once and generally, with a preset library and a web form for company rather than being made the only way in.

The ribbon is always ten cells, space-padded, so there is no past-the-end case — every position is editable, and trailing spaces are trimmed once, on save. The characters above and below the active cell are what make it steerable rather than a hunt, and one button jumps a whole character class, so reaching a digit takes three pushes instead of thirty.

Two decisions worth stating. A reminder's "done" is stored as a date, not a flag cleared at midnight: a clock unplugged from 23:00 to 09:00 cannot run a midnight branch, and either comes back with yesterday's ticks still standing or drops today's on a morning power blip. Comparing the stored day against today has neither failure. And the reminder tone is not the button-click sound — someone who turned the clicking off has not asked for their medication reminder to be silent. It does not loop either. A nudge that nags until dismissed is an alarm.

Daylight saving, handled by the clock

The clock moves itself an hour at the boundary and latches that it did, the way a person applies daylight saving. Nothing downstream learns that DST exists.

v2.7.0 covered the EU, US and Canada, Australia and New Zealand. v2.10.1 changed the shape of a rule from "the nth weekday of the month" to "the first given weekday on or after day N" — tzdata's own vocabulary, and a superset of the old encoding, so the original four rules are byte-for-byte the same behaviour. What it buys is the schedules the old shape got wrong in a way that only surfaces in some years. Israel starts on the Friday before the last Sunday in March, which is not the last Friday in 2028, 2029, 2034, 2035, 2040 or 2045. Chile changes on the Sunday on or after the second, which is the first Sunday in six years out of seven.

Eight rules is now the world, near enough. The list of countries that still change their clocks keeps shrinking, and the ones that borrow another country's dates need no rule of their own. Three regimes stay out because this shape cannot describe them honestly: Morocco, Lord Howe Island and Palestine. No city in the table uses them, so nothing there is quietly approximate.

Sun-following alarms also stopped drifting an hour for half the year, because the summer hour is now added in exactly one place.

The rest

  • Time until the next alarm. One answer to "when does this clock next go off", across the

whole list and all five alarm types, built on the scheduler's own predicates so the two cannot disagree.

  • One-time alarms on the calendar. They now appear on the month view alongside the

repeating ones.

  • Boot sync, so the clock is right the moment it comes back.
  • Slag Stack, the ninth arcade game.

What this changes on the site

The product pages describe the device as of v2.2.1. They are being brought up to v2.10.1, and prayer times, the world clock and reminders join the feature list where they belong.

The manual at /manual/cinderclock.html is generated from the firmware repository and is next.

endothermal systems llc · home · dev log · cinderclock · privacy · © 2026