Promethius+Bob. One of them brought fire down and got chained to a rock for it; the other is Bob. Between them this release gives the board a memory that survives a restart, a game to play with it, and an update that no longer costs the screen.
The board remembers. The 128 KB the partition table was leaving empty now holds a black box: about 1,800 sightings and a hundred boots, written as they happen. The LOG comes back after a restart with the newest sighting of up to 200 devices and the wall-clock time each was seen, drawn in grey so history sits quietly under what is live. CLR still clears it. Nothing about the layout changed, so no board needs a USB reinstall to get it.
It remembers crashes too. Every boot records why it started, and a boot that followed a crash keeps the task, the address, the uptime, the free memory and the screen that was showing. DIAGNOSTICS counts what is kept and when the last crash was.
BINGO. Settings' BINGO row deals a 4x4 card from the seventeen detection types, each square its own icon, faded behind scanlines until the board actually sees one. Four in a row is a line, sixteen is a full card, a fresh card arrives every week, and finishing one keeps a streak. A tap on any square opens that type's MORE INFO, so the game is also the field guide. STATS holds cards filled, best card, streak and lines called.
Backgrounds reach the bottom of the screen. The main screen and the desk stopped their background above the button bar and painted the strip under it black; it now runs to the bottom edge, around and under the buttons. The detection counters sit on dark plates so they read over anything, which lets the snow and the fireflies' soil carry on underneath. Fire rises from a bed of coals instead of a single line, and the spectrum's floor reaches the bottom too.
Updates stopped costing anything. The download comes over plain HTTP, which gave back 88 KB of firmware and the 40 KB block that used to force the screen buffer out. So the screen keeps animating through an update, Bluetooth stays up, and cancelling one goes straight back to detection instead of restarting the board. The signature check got another 20 KB smaller, and every image still has to be signed for this exact board.
An older release is refused. Each build stamps its version inside the bytes the signature covers, and the installer reads it as the image arrives: older than what is running is refused, the same version is allowed, because reinstalling what you have is a repair.
The LOG points at what is getting closer. Green up for nearer, red down for further, nothing for the wobble a still device makes — the same arrow the NEARBY list has always had.
More room to work in. 108 KB of firmware and 6 KB of memory came back this release, which is what pays for whatever comes next.
The actually-useful part
Added
- The black box: the LOG and a crash history kept in flash, across restarts.
- BINGO in Settings, with a weekly card, lines, streak and STATS.
- A closer/further arrow on the LOG, and grey for rows it restored.
- DIAGNOSTICS: kept sightings, kept crashes, the last crash, and the last screen's real frame rate.
- BLACKBOX, LOG and MEM on the serial console.
Changed
- Backgrounds run to the bottom edge; the detection counters sit on plates.
- Updates download over plain HTTP and keep the screen and Bluetooth; a cancelled update no longer restarts the board.
- An update older than the version running is refused.
- TIME ZONE lives on the DESK MODE page only; CROWD steps where it stands.
- The LOG holds 64 rows in memory and reads the rest from flash.
- 108 KB of firmware and 6 KB of memory freed.
Fixed
- Fire's flames cut short and the spectrum's floor stopping above the buttons.
- IDENTIFY MY BOARD on the web flasher, which never worked.
- A restored LOG that looked like an empty one.