github skizzophrenic/SquachWatch-CYD v1.9.1
SquachWatch-CYD v1.9.1 "Anubis"

latest releases: v1.40.0, v1.39.0, v1.38.0...
one month ago

Anubis. Named for the lab builds that found it: seven of them in one day, on a tester's boards in the loudest room a SquachWatch has been in, each one a photo of a screen and a guess, until a single line on DIAGNOSTICS said where the heap went. This is what came out of that day, and it is the first release named after a build series rather than a feature, because the fix is the feature.

The loud-room fix. A board on a college IT floor, 186 Bluetooth adverts a second, died two seconds after every boot. An active scan keeps a record for every device it has asked and not yet heard back from, and in a room like that those records ate the heap in under a second. The scan now listens before it asks: passive on every boot, active once the room has been under 50 adverts a second for five seconds, passive again above 90, checked every thirty seconds. At home the switch happens at five seconds and nothing changes. In a loud room the board stays passive, which costs it the names some devices only give when asked and squad messages, and keeps it alive. The same board logged 26 trackers in its first minute.

It hears WiFi again. The Bluetooth scan was asking for the radio 99 percent of the time, and the WiFi sniffer was getting about one frame a second, which is deaf in a house with a router beaconing ten times a second. The scan window is 75 percent now: twenty times the WiFi frames for a dip in adverts inside run-to-run noise. Deauth bursts, probe requests and the pwnagotchi and evil-twin checks have a fair hearing for the first time.

More room to work in. The WiFi driver is restarted on a sniffer's budget once it is up, since a board that listens and only transmits for an update does not need a laptop's worth of buffers, and the fire background's grid lives on the heap only while fire is chosen. A 2.8-inch board went from 22 KB free with a 12 KB block to 39 KB free with a 27 KB block, and the sniffer heard more, not less.

Safe mode, and a crash card. Five boots in a row that each die inside 90 seconds bring the board up in safe mode for that boot, passive scan and a capped backlight, with the reason in yellow on the splash. After any crash the splash holds nine seconds with a red card: uptime, heap, task, address and backtrace. A photo of the splash is the whole bug report; nobody in a boot loop has to reach DIAGNOSTICS. Bench boards can turn the counting off with GUARD OFF on the console.

WIFI NETWORKS. The SYSTEM page keeps up to six networks now, with USE marking the one tried first, REMOVE, and ADD from a scan that runs with Bluetooth still up. A network added on the board is not joined to check it, since joining means giving Bluetooth up until a restart; the password is tried at the next boot check and each row says how that went: joined, wrong password, or not found. At boot the board joins the USE network if it is there and otherwise the strongest saved one in range, and the update flow does the same, so home and work both just work. Your one saved network moves into the list on its own.

BANTER. On the APPEARANCE page: IMPORTANT, LESS, NORMAL or MORE. IMPORTANT keeps a catch, a message, a newer release and the daily hello and drops the idle chatter; LESS and MORE stretch or shorten the gaps. The set pieces two Squachys act out follow the same setting.

The clock's note to self. The time is written to flash every ten minutes, and a board that boots without a clock starts from the last note, marked "at least" until a real sync, so the LOG keeps real times across a reboot.

DIAGNOSTICS says where the heap went. A BOOT line with free heap and largest block with WiFi up, with Bluetooth up, and at the first pass of the loop; BLE SEEN says active, passive or SAFE next to the rate; a DROPPED line counts adverts refused for want of heap. That one line is what found the loud-room crash.

The actually-useful part

Added

  • WIFI NETWORKS on the SYSTEM page: six saved networks, USE, REMOVE, ADD from a scan, password checked at the next boot.
  • BANTER on the APPEARANCE page: IMPORTANT, LESS, NORMAL, MORE.
  • The crash card on the splash after a panic, and safe mode after five short boots in 90 seconds.
  • DIAGNOSTICS: the BOOT heap line, active/passive/SAFE on BLE SEEN, the DROPPED count.
  • The clock's note to self every ten minutes.
  • Console commands: GUARD OFF/ON, WIFI, WINDOW N, TIME, ZONE.
  • Lab builds on the flasher at ?lab=1, named, alongside the release.

Changed

  • The Bluetooth scan opens passive and goes active only while the room is quiet.
  • The scan window is 75 percent of the interval, from 99.
  • The WiFi driver runs on a sniffer's budget once it is up.
  • The fire background's grid is a heap block held only while fire is chosen.
  • The update flow joins the best saved network in range and only shows its list when none is; the FORGET WIFI button is gone, REMOVE on WIFI NETWORKS replaces it.
  • A breadcrumb that came back garbled after a power dip is recognised, not shown as 31 days up.

Fixed

  • The crash at two seconds up in a room with 180 adverts a second.
  • The WiFi sniffer hearing about one frame a second.
  • A flush that never ran early on a 2.8-inch board, and a pressed flush that ran every four seconds at rest, both from bars set above what the board ever has.

Don't miss a new SquachWatch-CYD release

NewReleases is sending notifications on new releases.