Skip to content

Life node v1 golden image (2026-10-13)

Pre-release
Pre-release

Choose a tag to compare

@svenjense svenjense released this 13 Oct 19:50
e0a4c00

Golden 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-extra with 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-wittypi sets the Witty Pi's own low-voltage stop and recovery level at every boot: WITTYPI_LOW_V 12.6 V and WITTYPI_RECOVERY_V 13.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-window handles 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, recoveryV and lvOff; on the way down after a guard stop, wake is low-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