Firmware

How the ZerryBit firmware works, and why the device lasts months on a charge.

The ZerryBit's firmware is built around one idea: the device is asleep almost all of the time. It doesn't run apps, render web pages, or keep a connection open. It sleeps with the Wi-Fi radio off, wakes for a few seconds, fetches ready-made images, puts them on the e-ink screen, and goes back to sleep.

That is the trick behind a display that stays useful for months on one charge.

The life of a wake-up

Four things can wake the device: the scheduled timer, a press of the Zerry button, rotating the knob, or plugging in the charger. Every wake then runs the same short sequence:

Wake up. The processor comes out of light sleep. On a button or knob wake the screen responds immediately; a timer wake stays silent.

Connect to Wi-Fi. Takes a couple of seconds; the device remembers your router's channel and its previous address to make this fast.

Check in. The device asks its server what changed and downloads only the new widget images. On a typical automatic wake this is a few seconds.

Update the screen. Changed widgets are refreshed on the e-ink panel.

Back to sleep. The radio switches off and the device drops to about half a milliamp until the next wake, minutes or hours away.

A full automatic cycle is typically 5 to 10 seconds of awake time. When you interact with the device it naturally stays awake for as long as you're using it, then sleeps again shortly after you stop.

Widgets are rendered elsewhere

The device itself doesn't compute forecasts or fetch calendars. Your widgets are rendered as finished 1-bit images by a server: the ZerryBit cloud in app mode, your Home Assistant add-on, or your own server. The device's job is to collect and display them. That is why new widget types can appear without a firmware update, and why the device's power budget stays tiny.

Everything it fetches is cached locally: if a wake finds no network, the screen keeps showing the last good widgets (lightly dithered to signal they're stale) instead of going blank.

Why you can't push to it

Between wakes the radio is off, so the device can't receive anything: no pushes, no remote wake. Keeping the radio listening would cut battery life from months to days. Instead, servers answer the device's polls: reply "no update" when there's nothing new, or a fresh image the moment there is. And the Zerry button always gets you an instant refresh by hand. The full power math is on the Battery page.

On this page