SquachWatch · Volume 8

SquachWatch Volume 8 — Using It

The screens, the alert card, the controls that keep a detector from crying wolf, HUNT mode, the log, desk mode, the lock, and the power knobs

Figure 1 — The main screen: the NEARBY banner, the per-type counter rows, and the SCAN, LOG and DESK soft buttons along the bottom. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, …
Figure 1 — The main screen: the NEARBY banner, the per-type counter rows, and the SCAN, LOG and DESK soft buttons along the bottom. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

8.1 First boot and the screen map

Everything in this volume describes the 2.8” CYD (ESP32-2432S028R) in landscape, the board the firmware is designed on. The other boards run the same firmware with layouts scaled to their panels; the StickS3 and Cardputer ADV replace touch with a cursor driven from buttons or keys, and the T-Watch adds a WATCH SETTINGS page (Vol 9 §7). Board-specific differences are called out where they matter. Menu names are given exactly as the firmware prints them.

8.1.1 What happens at power-on

 USB power applied
   │
   ▼
 Splash (~1.5 s), stamped with the build's version from `git describe`
   │                       (hold a finger on the screen here to reset touch calibration)
   ▼
 Boot WiFi check — only if a network is saved and UPDATE CHECK is on:
   join ~1-few s → ask squachwatch.com for this build's latest version → NTP → let go
   │
   ▼
 Radios start: WiFi sniffer, then BLE scan (passive)        SD card mounted if present
   │
   ▼
 FIRST BOOT ONLY: touch calibration (5 targets) → colour check (INVERT / ORDER) → Squachy intro
   │
   ▼
 Main screen — detecting

The first-boot sequence — “a touch calibration, a colour check and a quick intro from Squachy” — runs once; each part can be rerun later from Settings → SYSTEM (CALIBRATE TOUCH, CHECK COLORS) and Settings (REPLAY INTRO). Calibration asks the user to tap and hold each of five targets for about a second; one calibration covers all four rotations. If calibration goes badly wrong, restarting with a finger held anywhere on the screen during the “Hold anywhere now to reset touch calibration…” prompt resets it.

Tip — Menu taps must be short. “A touch held for more than about half a second without moving is ignored, so a slow thumb is not a tap.” Resistive panels reward a fingernail or stylus.

8.1.2 The main screen

┌──────────────────────────────────────────────────────────────────────────┐
│ [⚙]  Settings (top-left)                          Rotate (top-right) [⟳] │
│ ┌────────┬────────┬────────┬────────┬────────┬────────┐                  │
│ │ FLOCK 0│ AXON 0 │ GLASS 0│ SKIM 0 │ RAV 0  │TRACKER3│   counter row(s)  │
│ ├────────┼────────┼────────┼────────┼────────┼────────┤   tap one → the   │
│ │ DRONE 0│ ALPR 0 │ CAM  2 │ BCON 0 │DEAUTH 0│ HACK 0 │   closest device  │
│ └────────┴────────┴────────┴────────┴────────┴────────┘   of that kind    │
│      NEARBY banner  /  HUNTING pill  /  UPDATE / LORA NEW pills            │
│                                                                            │
│                 animated background + Squachy (speech bubble)              │
│                                                                            │
│   [ SCAN ]               [ LOG ]               [ DESK ]                     │
└──────────────────────────────────────────────────────────────────────────┘

Counters. Settings → APPEARANCE → DETECTIONS chooses the style: XP draws the counters as Windows-XP taskbar buttons, one per kind currently in range; CLASSIC shows the full fixed counter rows. Either way, tapping a counter opens the closest device of that kind. Eleven fixed columns cover all seventeen types through three folds — trackers into TRACKER, Ring into CAM, evil twins into HACK (Vol 7 §1.3).

NEARBY. Each device on NEARBY shows a green up-arrow when it has come closer since its last reading and a red down-arrow when it has moved away; a change under 4 dB shows nothing, “which is what a still device does.” In CLASSIC style a long press (600 ms) on NEARBY opens the closest live device.

Soft buttons:

Table 1 — Soft buttons:

ButtonScreenAction
[ SCAN ]MainReturn to the main (idle) screen; the source also routes a manual raw BLE or WiFi sweep through it, with a TRACK THIS TARGET? panel (WATCH / HUNT / CANCEL) on a chosen result
[ LOG ]MainOpen the detection log
[ DESK ]MainDesk mode (§6)
[ CLR ]LOGWipe the log and return

The raw-sweep path is described in source comments (include/ui_rawscan.h: “Reached from CLEAR’s SCAN button picker”) but not in the README; its exact on-screen flow has not been confirmed here against a running board or the emulator.

8.1.3 Screen states

            ┌──────┐ ~1.5 s
   power ──►│ BOOT ├────────┐
            └──────┘        ▼
                       ┌─────────┐  new detection, passes the gates  ┌─────────┐
            ┌─────────►│  MAIN   │──────────────────────────────────►│  ALERT  │
            │          │ (CLEAR) │◄──────────── tap / 10 s ──────────┤  card   │
            │          └──┬───┬──┘                                   └────┬────┘
            │  [SCAN]     │   │ [DESK]                     HUNT on card   │
            │             │   ▼                                           ▼
       ┌────┴───┐ [LOG]   │ ┌──────┐                             ┌───────────┐
       │  LOG   │◄────────┘ │ DESK │  (catches → small card)     │   HUNT    │
       └────┬───┘           └──────┘                             │  gauge    │
            │ hold a row → WATCH / HUNT / IGNORE                 └───────────┘
            ▼
     watched device returns ───────────────────────────────────► LOCKED ON (waits for tap)

The design contract’s original state machine was BOOT → CLEAR ⇄ ALERT ⇄ LOG with a five-second alert; the shipping firmware auto-dismisses after ten seconds and has added DESK, HUNT, LOCKED ON, the settings pages and the SquachMesh screens.


8.2 The alert card

When a new detection passes every gate in §3.3, the board flashes a full-screen alert. Its anatomy:

┌──────────────────────────────────────────────────────────────┐
│███  FLOCK  ████████████████ (header in the type's colour,     │  ← type, Bangers display face
│                               FIRST OF ITS KIND / AT NIGHT)   │
├──────────────────────────────────────────────────────────────┤
│  VENDOR   Flock-BLE              ┌─────────────────────────┐ │
│  NAME     Penguin-xxxx           │   gauge: what was found │ │
│  MAC      B4:1E:52:xx:xx:xx      │   with the instrument   │ │
│  SIGNAL   ▮▮▮▮▮▯▯▯  -67 dBm      │   grid over it          │ │
│  CONF     HIGH CONF              └─────────────────────────┘ │
├──────────────────────────────────────────────────────────────┤
│   [ MORE INFO ]   [ IGNORE ]   [ SNOOZE ]   [ HUNT ]           │
└──────────────────────────────────────────────────────────────┘
      tap anywhere else to dismiss · clears itself after 10 s

Table 2 — 2. The alert card

ElementMeaning
Header colourThe detection type’s own colour; HACKER, DEAUTH and EVILTWIN share red
VendorThe matched row’s label — e.g. RayBanMeta vs Meta tells the specific glasses UUID from a company-ID hit
NameThe device’s own advertised name, an SSID, a drone serial, a Pwnagotchi’s name, or an iBeacon’s UUID fragment and major.minor
SignalRSSI meter
ConfidenceHIGH CONF, MED CONF or LOW CONF (Vol 7 §4.1)
FIRST OF ITS KINDThis board has never caught this type before; Squachy marks the occasion later
AT NIGHTCaught between 23:00 and 05:00, once the clock is set
SPAM: N FAKE TAGSThe single alert raised when a type trips the flood detector (Vol 7 §7)

Table 3 — 2. The alert card

ButtonEffect
MORE INFOWhat this thing is and why it matched (the text lives in src/detection_info.cpp)
IGNORENever alert on this exact device again; still logged and counted, with an IGNORED tag on its LOG row. The button then reads MUTED; tap again, or use Settings → IGNORED, to undo
SNOOZEQuiet about this device until the board restarts
HUNTOpens HUNT mode aimed at this device (§4)
Figure 2 — A device marked IGNORED in the LOG: it is still counted and logged, but can no longer take over the screen. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).
Figure 2 — A device marked IGNORED in the LOG: it is still counted and logged, but can no longer take over the screen. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

8.3 Keeping alerts useful

The README frames the design problem in one line: “A detector that cries wolf gets switched off.” Apart from TYPE FILTER, none of the controls below stop anything being scanned, counted or logged; they only decide what takes over the screen.

8.3.1 The controls

Table 4 — 3.1 The controls

ControlWhereOptionsWhat it does
IGNOREAlert card, or LOG rowper devicePermanent alert suppression for one device; LOG row tagged IGNORED
SNOOZEAlert cardper deviceSame, until restart
AUTO SNOOZESettings (BEHAVIOR)OFF, AFTER 5, AFTER 10After N alerts a device must come 7 dB closer than it ever has to interrupt again; allowance returns after 30 minutes
ALERT FILTERSettings (BEHAVIOR)ALL, MED+, HIGH ONLYMinimum confidence allowed to take over the screen
TYPE FILTERSettings (BEHAVIOR); screen titled DETECTION FILTERper type on/offAn off type is dropped, not logged. IBEACON ships off
Watch listHold a LOG row → WATCHone deviceLOCKED ON when it returns; always passes AUTO SNOOZE and spam suppression
HUNT MODEHUNT on the alert card, or hold a LOG rowone deviceSignal gauge; HUNTING pill on the main screen; STOP HUNT ends it
Spam floodsAutomatic—One SPAM alert, then quiet logging until five minutes pass without more
HEADS-UPSettings → SQUACHMESHon/offSquad members’ serious catches arrive as a banner (Vol 9 §5)
TAGS + RINGSWATCH SETTINGS (T-Watch)LOG ONLY (default), ALERTTrackers and Ring cameras logged without waking the screen or buzzing

The row labels are taken from src/ui_settings.cpp: the settings list shows TYPE FILTER, which opens a screen titled DETECTION FILTER; some README and source text uses the second name.

8.3.2 How AUTO SNOOZE decides

AUTO SNOOZE is an RSSI high-water mark per device. It is aimed at the doorbell across the street “that takes your screen every time you walk past.”

 device D raises a would-be alert at RSSI r
   │
   ├─ AUTO SNOOZE OFF, or D is the watched device ───────────────► ALLOW
   │
   ├─ D gone ≥ 30 min, or 30 min since its last alert ───────────► reset: alerts = 0, bar = 0
   │      (on a T-Watch sitting still, only "really gone" resets)
   │
   ├─ alerts < N (5 or 10) ─► alerts++ ; bar = max(bar, r) ──────► ALLOW
   │                           (the Nth is ALLOW_LAST)
   │
   └─ out of free alerts:
         r ≥ bar + 7 dB ─► bar = r ──────────────────────────────► ALLOW (it came closer)
         otherwise ───────────────────────────────────────────────► HOLD (logged, no alert)

The bar is the strongest reading the device has ever interrupted at, not the most recent, so “five alerts at −80 and one at −60 should leave a device having to beat −60.” Without the 30-minute decay, the source notes, the device that once came closest would become the one that could never be heard again — “backwards on a detector.”

8.3.3 The order the gates run in

 detection
   │
   ├─ TYPE FILTER off for this type? ──────────────► dropped entirely (not logged)
   ├─ logged: LOG row, black box, SD CSV, counters
   ├─ watched device? ─────────────────────────────► LOCKED ON (bypasses everything below)
   ├─ type in a spam flood? ───────────────────────► logged quietly
   ├─ IGNORED or SNOOZED? ─────────────────────────► logged quietly
   ├─ below ALERT FILTER grade? ───────────────────► logged quietly
   ├─ AUTO SNOOZE says HOLD? ──────────────────────► logged quietly
   └─ ALERT card (or a small card in DESK mode; LOG ONLY types on the watch stay silent)

This ordering is a synthesis of the README’s control table and the FAQ; the precise sequence inside main.cpp’s alert gate has not been traced line by line, and two controls (ALERT FILTER and IGNORE) commute in any case.

Tip — A sensible field setup on a fresh board: ALERT FILTER at MED+ (suppresses the 48 Low Flock module prefixes and other module-vendor rows), AUTO SNOOZE at AFTER 5, and IGNORE on every device known to belong to the user — own AirTags, own doorbell, own Flipper. Lower-confidence matches remain in the LOG for later review.


8.4 The watch list and HUNT mode

WATCH. Long-press any row in the LOG and choose WATCH. It works on any device, “even one that matched nothing” — the watch slot is checked in both radio callbacks before the signature tables. When the device reappears the board shows LOCKED ON: a radar scope with the signal and whether it is getting CLOSER or FURTHER, which stays up until tapped. REMOVE FROM WATCH LIST stops it. One device at a time; the watch resets at restart.

Figure 3 — LOCKED ON: a watched AirTag returns, the radar scope reports "closer", and the REMOVE FROM WATCH LIST control ends the watch. Image: SquachWatch-CYD firmware screen capture (skizzophre…
Figure 3 — LOCKED ON: a watched AirTag returns, the radar scope reports "closer", and the REMOVE FROM WATCH LIST control ends the watch. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

HUNT. A hand-swept signal-strength meter. The hardware has no magnetometer, so it is “deliberately … not a self-orienting compass — it’s a strength meter you sweep by hand/body the way real fox-hunting works with a plain omnidirectional receiver: rotate to find where the signal fades, walk toward where it doesn’t.”

Table 5 — 4. The watch list and HUNT mode

ReadoutRule in src/ui_hunt.cpp
GETTING WARMERLatest sample more than 3 dB above the comparison sample
GETTING COLDERMore than 3 dB below
(steady)Within ±3 dB
CAUGHT!Two samples running at −48 dBm or stronger (“arm’s length”); held 5 s; the status light flashes green
Re-armSignal drops more than 10 dB below the catch level
  HUNT technique (omnidirectional meter, no compass)

        stand still ─► turn slowly through 360°, body between board and target
              │         reads weakest when the body shadows the target
              ▼
        face AWAY from the weakest heading ─► walk 5-10 paces
              │
              ├─ WARMER ─► keep going
              ├─ COLDER ─► turn back, re-sweep
              └─ CAUGHT! (≥ −48 dBm twice) ─► within roughly arm's length

Caution — “Many phones and trackers change their Bluetooth address on purpose to defeat exactly this, so it’s best on gear that doesn’t.” An AirTag rotates its address, so a hunt can lose its target mid-walk; fixed-address gear — cameras, doorbells, Flock units, skimmer modules, a squad member’s board — hunts well. The −48 dBm threshold is a fixed number and does not account for transmit power, so a high-power transmitter can read CAUGHT from further away than a coin-cell tag.


8.5 The log, the black box and the SD card

Table 6 — 5. The log, the black box and the SD card

StoreCapacitySurvives restartContentsClear with
Live LOG (RAM)64 rowsNoOne row per device per type, merged on repeat sightings[ CLR ]
Black box (flash)About 1,800 sightings, plus about the last hundred boots incl. crash detailsYesAfter a restart the LOG restores the newest sighting of up to 200 devices, drawn in grey[ CLR ]; a duress wipe
SD card CSVCard sizeYesEvery detection appended to a daily fileDelete files; a duress wipe
Wardrive log (T-Watch S3 Plus)Up to 125,000 sightingsYesEverything heard with a GPS fix (Vol 9 §9)Its own clear; a duress wipe

The live LOG was cut from 200 to 64 rows because 200 cost 11.6 KB of static RAM; history depth moved to flash, and the LOG screen “scrolls out of these rows and straight into eighteen hundred sightings on disk.”

LOG row actions (press and hold): WATCH, HUNT, IGNORE / UN-IGNORE; a row captured with a GPS position shows SEEN AT with where. A device seen on three different days becomes a Regular and gets a name on its LOG row. Once the clock is set the LOG shows real times, or the date for an older catch.

Figure 4 — PRIVACY MODE applied to the LOG: addresses masked to the first three octets and names cut to three characters, on screen only. Image: SquachWatch-CYD firmware screen capture (skizzophr…
Figure 4 — PRIVACY MODE applied to the LOG: addresses masked to the first three octets and names cut to three characters, on screen only. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

SD card format. One file per local day, /squachwatch-YYYYMMDD.log (or /squachwatch-nodate.log before the clock is known). Each row is CSV:

ts,type,rssi,mac,channel,vendor,ssid
2026-10-13T14:02:11Z,FLOCK,-71,B4:1E:52:xx:xx:xx,6,Flock,
2026-10-13T14:02:40Z,AIRTAG,-58,xx:xx:xx:xx:xx:xx,0,Apple,

The README’s header names the last column ssid; include/sd_row.h calls it the name, which carries the SSID for WiFi matches and the advertised name for BLE. The timestamp is ISO-8601 UTC when the clock is trusted, otherwise milliseconds since boot. A GPS build (T-Watch S3 Plus, and the unreleased cyd-gps CYD builds) appends latitude, longitude to seven decimal places and accuracy in metres, empty without a fresh fix, or FAKE for a bench fix typed on the console. BLE rows carry channel 0. The example rows above are illustrative, with addresses masked.


8.6 The clock, desk mode and the status light

The clock. The board has no RTC battery and (except on GPS builds) no GPS, and it never joins a network to scan. It sets its clock four ways: one NTP round trip during the boot update check when a network is saved; the web flasher’s Set Time & Zone button immediately after flashing; a serial line TIME <epoch> (with ZONE US EASTERN and similar) at the board’s console speed, which is 2,000,000 baud on the CYD; or from any squad member’s hello (Vol 9 §3). It saves a note of the time to flash every ten minutes, so a cold boot never goes backwards in date, but such a clock is used for the date only. TIME ZONE lives on the DESK page; daylight saving is automatic.

Desk mode. DESK MODE turns the board into a desk clock: the date and time in large seven-segment digits over the chosen background, Squachy underneath, and a FOCUS 25 timer (25 minutes, then the status light goes green, Squachy says to stand up, and a five-minute break runs). Detection continues: a catch appears as a small card by the buttons instead of the full ALERT (tap it for the full card), and a squad message appears as a polaroid of the sender’s Squachy with the note beside it. The power saver never dims this screen. The DESK page holds DESK BACKGROUND, CLOCK FONT, CLOCK SIZE, CLOCK BG, TIME ZONE, and on mesh builds SQUAD ON DESK and the visit options.

Figure 5 — Desk mode: the clock over the fire background, a catch as a small card, a squad message arriving as a polaroid, the focus timer, and the one-time time-zone card. Image: SquachWatch-CYD…
Figure 5 — Desk mode: the clock over the fire background, a catch as a small card, a squad message arriving as a polaroid, the focus timer, and the one-time time-zone card. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

The status light. The RGB LED on the back of the 2.8” CYD (front of the RL Phantom; a WS2812 on the Freenove ESP32-S3 2.8”) reports state without the screen:

Table 7 — The status light. The RGB LED on the back of the 2.8" CYD (front of the RL Phantom; a WS2812 on the Freenove ESP32-S3 2.8") reports state without the screen

PatternMeaning
Slow breathe, theme colourIdle, nothing detected
Three flashes then hold, in the detection’s colourAn alert card is up
Double-blinkUnread message
BlipA squad member walked on
CyanUpdate downloading
Green / redUpdate succeeded / failed
Green flashHUNT says CAUGHT!; focus timer ended
DarkLock screen, or during a wipe — a duress restart looks like any other restart from the back

Settings → APPEARANCE → STATUS LIGHT has the master switch, alerts and messages on/off, idle breathe/solid/off, idle colour (theme, background, or nine fixed colours), seven brightness steps and a six-second TEST. Boards whose LED pins have not been checked (the AWOK 2.4” and the 3.5”) compile it out and say so.


8.7 PIN, duress PIN and privacy mode

Settings → SECURITY:

Table 8 — Settings → SECURITY

SettingOptionsBehaviour
PIN4, 6 or 8 digitsLock screen; detection keeps running while locked
LOCK AT BOOTon/offLocked from power-on
AUTO-LOCKon screen sleep, or 1–30 idle minutes
ALERTS LOCKEDFULL, TYPE ONLY, NONEHow much an alert shows to whoever is holding a locked board
DURESS PINsame length as the PINLooks like an unlock; first wipes, then restarts quietly
WIPE AFTER 10on/offThe duress wipe after ten wrong guesses
REMOTE UPDATEon (default)/offWhether squad members may trigger an update (Vol 9 §6)

What the duress wipe erases: the squad phrase and key, saved WiFi passwords, the ignore list, the black-box log and crash history, the SD card’s log files and the watch’s wardrive log. Then the board restarts with the status light dark and no splash, and comes up unlocked on the main screen looking like an ordinary, empty SquachWatch. Other settings survive.

Caution — The project is explicit about the PIN’s threat model: it is for “people at the table, not someone with a USB cable.” It “stops a snoop who picks the board up. It does not stop someone with a USB cable and some time, because the flash can be read directly.” The board says so when the PIN is set. Neither the repository’s docs nor its build configuration mention ESP32 flash encryption, so a duress wipe is the protection that actually removes data.

PRIVACY MODE (Settings → SYSTEM) is for filming and screenshots: addresses show as AA:BB:CC:XX:XX:XX and device and network names are cut to three characters, on screen only — “nothing stored changes,” and it is not a radio switch. It also covers the T-Watch’s LORA CHATS.


8.8 Power

Table 9 — 8. Power

ControlWhereBoardsBehaviour
POWER SAVERSettingsAll; on by default only on the watchLOW POWER master switch, SCREEN TIMEOUT, DIM TO, IDLE FRAMES, IDLE AFTER, CPU CLOCK, WAKE ON ALERT
CHARGE MODESettings, or hold BOOT ~1 s on CYD boardsAll except the watchRadios, status light and screen off for faster charging; tap the dark screen to see charge time
POCKET MODEShort press of BOOT (CYD); the crown (watch)CYD-style, T-WatchScreen off; only another press turns it on, so a touch in a pocket won’t. Alerts still light the screen for their card
POWER OFFHold BOOT 3 sFreenove ESP32-S3 2.8” and 3.5”True power switch; KEEP HOLDING prompt at 1 s
LAST RUNSettings → SYSTEMAll except the watchHow long the previous power-up lasted — the practical battery-capacity test
Battery lampMain screen, under the menu buttonFreenove ESP32-S3 2.8”/3.5”, T-WatchLava lamp filled to charge; bubbles and a rainbow on the cable; flicker under 10%
SOUND / VOLUMESettingsFreenove ESP32-S3 2.8”/3.5”OFF (default), ALERTS, ALL; silent at night (23:00–05:00) and while dimmed, except a watch-list hit
BUZZERSettings (BEHAVIOR)CrowPanel 7Off by default; NEW ONLY chirps for a never-seen device

Sources: README “Power”; docs/FAQ.md “Battery and power” and “Does it make any noise?” Battery-life figures are not published for any board; LAST RUN is the project’s recommended way to measure one. Vol 4 covers battery hardware.


8.9 The settings map

The main Settings list, with the group headings the firmware draws over it, as defined in src/ui_settings.cpp (rows marked † appear only on some builds):

SETTINGS
├─ WATCH ───────── WATCH SETTINGS †(T-Watch) ─► BATTERY, WARDRIVE, TAGS + RINGS, LORA CHATS,
│                                               LORA, RADIOS, BLE LISTEN, SLEEP CPU, BUZZ, CHIP TEMP
├─ BEHAVIOR ────── BORING MODE · ALERT FILTER · AUTO SNOOZE · BUZZER †(CrowPanel)
│                  SOUND · VOLUME †(Freenove S3) · WIFI BANDS †(ESP32-C5)
│                  TYPE FILTER ─► DETECTION FILTER screen · IGNORED
├─ SQUACHY ─────── APPEARANCE ─► (page) SQUACHY SIZE, OUTFIT, PET, SHADES COLOR, BANTER, AURA,
│                                       THEME, BACKGROUND, LOCK BACKGROUND, DETECTIONS,
│                                       BRIGHT, INVERT COLORS, COLOR ORDER, ROTATION LOCK,
│                                       STATUS LIGHT
│                  SQUACHMESH ─► (Vol 9) · REPLAY INTRO · SHOW OFF · SQUACHY'S DIARY
│                  BINGO · SQUACHY-DEX · DESK MODE ─► (page) OPEN DESK, backgrounds, clock,
│                                                          TIME ZONE, SQUAD ON DESK …
└─ SYSTEM ──────── POWER SAVER · WARDRIVE †(cyd-gps) · CHARGE MODE †(not watch)
                   SECURITY ─► PIN, LOCK AT BOOT, AUTO-LOCK, ALERTS LOCKED, DURESS PIN,
                                WIPE AFTER 10, REMOTE UPDATE
                   SYSTEM ─► (page) PRIVACY MODE, BATTERY †, LAST RUN, CALIBRATE TOUCH,
                              CHECK COLORS, DIAGNOSTICS, UPDATE FIRMWARE, UPDATE CHECK,
                              WIFI NETWORKS, RESET STATS

POWER SAVER, CHARGE MODE and SECURITY fall through to the SYSTEM heading in the row-group function. In BORING MODE the APPEARANCE row moves under SYSTEM and Squachy’s rows stay visible but greyed.

Figure 6 — The settings menu, scrolling through the BEHAVIOR, SQUACHY and SYSTEM groups to POWER SAVER and SECURITY. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).
Figure 6 — The settings menu, scrolling through the BEHAVIOR, SQUACHY and SYSTEM groups to POWER SAVER and SECURITY. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

8.10 BORING MODE and Squachy’s extras

None of the mascot layer affects detection. The README’s line: “None of this finds anything. All of it is why you leave him on.”

BORING MODE (Settings → BEHAVIOR) removes Squachy, the pet and the flourishes and offers a plain BLACK background, “for when you just want a detector.” Detection is identical.

Table 10 — 10. BORING MODE and Squachy's extras

ExtraWhat it is
THEMESix palettes: VAPRW4VE, CYB3RGR33N, AMB3RTERM, BUBBL3GUM, GH0ST, BL00D
BACKGROUNDTen animated scenes, incl. THE GIBSON (drawn from the user’s own log) and SYNTHWAVE; “some of them hide things”
PETSix companions, once earned
SQUACHY-DEXA card per detection type with lore and the user’s record; the most-caught type (ten or more) becomes his nemesis
BINGOA weekly card of sixteen detection types
SQUACHY’S DIARYLifetime catches, streaks, firsts
BANTERIMPORTANT, LESS, NORMAL, MORE — how much he talks when idle
OutfitsNineteen; most earned by detection count, ten hidden, one a punishment
Figure 7 — All nineteen of Squachy's outfits, each rendered by the firmware with its label read from the source. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).
Figure 7 — All nineteen of Squachy's outfits, each rendered by the firmware with its label read from the source. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

Note — The gamification has a functional side effect worth knowing: BINGO, the DEX and the outfit unlocks reward catching variety, which nudges an owner to carry the board through more places. That is the author’s stated intent — “The detection is the why, Squachy is the fun.”


8.11 Cheatsheet updates from this volume

┌────────────────────────────── SQUACHWATCH — DRIVING IT ──────────────────────────────────┐
│ BUTTONS  [SCAN] home  [LOG] log  [DESK] clock   (in LOG: [CLR] wipe)                      │
│ ALERT    tap/10 s dismiss · MORE INFO · IGNORE (forever) · SNOOZE (till reboot) · HUNT     │
│ QUIET    ALERT FILTER: ALL / MED+ / HIGH ONLY   AUTO SNOOZE: OFF / 5 / 10 (+7 dB rule)     │
│          TYPE FILTER = drop type entirely (not logged).  IBEACON ships OFF                  │
│ WATCH    hold LOG row → WATCH → LOCKED ON radar on return (1 device, cleared at reboot)    │
│ HUNT     WARMER/COLDER = ±3 dB · CAUGHT! = ≥ −48 dBm twice · rotating MACs lose the trail  │
│ STORE    LOG 64 (RAM) · black box ~1,800 sightings (flash) · SD /squachwatch-YYYYMMDD.log  │
│ CSV      ts,type,rssi,mac,channel,vendor,ssid  (+lat,lon,acc on GPS builds)                │
│ LOCK     PIN 4/6/8 · DURESS PIN = wipe + quiet reboot · stops snoops, NOT a USB reader     │
│ PRIVACY  masks MAC/names on SCREEN ONLY — turn on before any photo                         │
│ POWER    BOOT short = pocket mode · BOOT hold ~1 s = CHARGE MODE · LAST RUN = battery test │
│ CLOCK    Set Time & Zone (flasher) · saved WiFi NTP · TIME <epoch> serial · squad hello    │
└────────────────────────────────────────────────────────────────────────────────────────────┘

Table 11 — 11. Cheatsheet updates from this volume

First-hour checklistDone when
Calibrate touch; confirm coloursTaps land; reds are red
Set time and zoneLOG shows wall-clock times
ALERT FILTER → MED+Low module-vendor matches stop taking the screen
IGNORE own trackers, doorbell, pentest kitOwn gear logged, never alerting
Decide on SD loggingCard in, daily file appearing
Decide on a PIN and duress PINLock screen tested once

Comments (0)

  1. Loading…

Comments are held for moderation — nothing appears until approved.