Repository navigation
Life node v1 golden image (2026-10-13)
Pre-releaseGolden image for the Life node v1, built from e0a4c00 on 13 October 2026. Replaces image-v5, which no node ran.
New since image-v5 (#94, content/spec.md 2.2)
One listening window, the same every day of the season.
| Months | Listening windows, the hours the readings count |
|---|---|
| March to October | 4 h from civil dawn + 1 h from sunset |
| November to February | 2 h from sunrise |
- The node listens to exactly these windows. The 6 h dawn core of May to July and the battery-conditional extra hours of image-v5 are gone, and
life-extrawith them. A node's effort is now the same on every day it is compared over. - The windows are computed for the node's place at every boot (
life-schedule-wpi). The script runs exactly to the next day's first window, so 1 March and 1 November switch cleanly.
The battery guards itself.
life-wittypisets the Witty Pi's own low-voltage stop and recovery level at every boot:WITTYPI_LOW_V12.6 V andWITTYPI_RECOVERY_V13.2 V by default (registers 19 and 22, written only when they change). Below 12.6 V at its input the board shuts the Pi down cleanly. After such a stop it switches the Pi on again above 13.2 V, which on a node means the panel is charging.- Both levels are needed. With only the low level the board skips a scheduled start while the battery is low, and that alarm does not come round for a month. A recovery level alone keeps switching the Pi on. So
WITTYPI_LOW_V=0, for a node on a mains adapter, switches both off. life-windowhandles a boot the board makes by itself outside the windows (battery recovered, power back on the load output). The node sends its post and powers off 10 minutes after boot (OFFWINDOW_GRACE_MIN), with the board's next start set to the next window. Until now such a boot stayed on until the end of the next window. A boot by hand (button, reboot, USB supply) stays on as before.- Every heartbeat carries
window,offWindow,lowV,recoveryVandlvOff; on the way down after a guard stop,wakeislow-voltage. The oracle opens low battery under 12.8 V or on such a shutdown, and closes it at 13.2 V.
Checked before publishing: the build's own checks, which run life-schedule-wpi and life-window check --dry-run inside the image. Also the schedule script on dates across the year and at both month switches, life-window check and stop for in-window, off-window, by-hand and bench boots, and life-wittypi against a stub board for every combination of levels.
Published as a pre-release until node 1 has booted it. Not yet checked on a real node: a boot, a scheduled shutdown and wake, the guard stopping the Pi at 12.6 V, the board switching it on again with the panel charging, and the off-window power-off. Node 1 waits for its battery, which its BMS switched off on 12 October. After node 1 runs this image, the release becomes the latest and the per-box images at /box move to it.
Flash life-node-v1.img.xz as it is, then put a filled-in life-node.env on the boot partition, or use node/image/personalize.sh. See node/image/README.md.
sha256 081263dd354e740ceff0304e6ffa9f986120644b73f7a2d6faa47950e5c0d235