·
44 commits
to develop
since this release
CrossInk Almanac: Globe, Moon & Calculator
This release adds three new modules to the Almanac, plus fixes and polish across the suite.
New: Globe
A spinning Earth under a fixed crosshair.
- Orthographic globe with Natural Earth coastlines and toggleable country borders
- Live day/night terminator with a civil-twilight band, driven by the real sun position
- The reticle names the country under it; one press opens its CIA World Factbook entry, with adjustable text size
- Find a country: all 205 countries (193 UN members, both observer states, and the sensible extras), each flying to its capital
- Space mode: full-bleed black with a starfield; every piece of chrome (info bars, crosshair) individually toggleable
New: Moon
The Moon as it faces you tonight.
- Opens on the sub-Earth view: real optical libration, so tonight's tilt is genuinely tonight's
- Terminator matches the current phase; illumination percentage shown
- ~400 named features from the IAU/USGS Gazetteer of Planetary Nomenclature: maria as dotted regions, craters as rim circles sized to their true diameters, with zoom-based level of detail
- The reticle names the nearest feature; hold Confirm to snap back to the Earth-facing view
New: Calculator
A graphing calculator with a purpose-built math keypad.
- Six expression slots, function plotting (Y= style), live input validation
- Expression engine verified against Python across 451 test cases
Improvements
- Almanac menu reordered into logical groups (reference, maps and sky, tools, games, settings)
- Sky Chart: single toggle hides all chrome for a bare star disc
- Dictionary/Factbook/Wikipedia text sizes now adapt to the fonts each firmware variant actually ships (fixes blank text at some sizes on xlarge builds)
- If the clock is unset, the sky modules show a fixed fallback moment instead of a dead screen, clearly labelled
- Fixed a crash when opening long lists (heap exhaustion; lists now stream from the SD card)
- Full e-ink refresh on entering the Globe and Moon clears ghosting under dithered shading
Data files (copy to SD card root)
| File | Source | Built by |
|---|---|---|
| globe.bin | Natural Earth 110m (public domain) | tools/almanac/make_globe.py |
| countries.bin | Natural Earth + CIA World Factbook naming | tools/almanac/make_countries.py |
| moon.bin | IAU/USGS Gazetteer of Planetary Nomenclature | tools/almanac/make_moon.py |
All data comes from authoritative public sources via rerunnable scripts, nothing hand-entered, nothing generated.
Verification
Every mathematical component is host-verified against an independent reference before flashing:
- Sun/sky math: verified against astropy
- Terminator geometry: 2.85M pixel checks vs brute force, 0 mismatches
- Country hit-testing and capitals: 25 cases incl. enclaves and microstates
- Moon orientation: 501 dates vs JPL DE421's integrated librations, worst error 0.11°
- Calculator engine: 451 cases vs Python
Test harnesses live in tools/almanac/ and can be rerun by anyone.
Credits
Built in collaboration with Claude (Anthropic). Ideas, hardware testing, and direction by Sparkadium; much of the code by the AI; everything verified against real-world references before it shipped.