SquachWatch · Volume 9

SquachWatch Volume 9 — SquachMesh, Updates and the Watch

What two boards say to each other and what it costs, the five-word squad key, pushing an update to a whole squad, and the T-Watch's LoRa ears and GPS log

Figure 1 — Two SquachWatches in range: the visiting Squachy walks on, the two greet, and they stand around talking. His outfit, shades and name all arrived in a twenty-byte BLE advert. Image: Squ…
Figure 1 — Two SquachWatches in range: the visiting Squachy walks on, the two greet, and they stand around talking. His outfit, shades and name all arrived in a twenty-byte BLE advert. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

9.1 SquachMesh in one page

SquachMesh lets SquachWatches notice each other. Two boards in range each draw the other’s Squachy as a visitor; boards that share a five-word phrase form a squad and can exchange short encrypted messages, serious-catch banners, clock settings and update nudges. The README introduces it with a warning box: “Work in progress. It is in this release because it works … but it has had days of testing, not months. Both halves are off until you turn them on, and one of them costs you something.”

It is deliberately not a network: “No pairing, no connection, no acknowledgement, no retry — a broadcast that says who is here, and anybody in earshot may or may not catch it.” Every frame rides in BLE legacy advertising or scan-response data; nothing ever connects.

                       Settings → SQUACHMESH  (asks first)
                 ┌───────────────────────┴────────────────────────┐
             DETECT (receive)                               TRANSMIT (send)
   sees other boards' Squachys,                    advert every 1.5 s, FIXED address,
   broadcasts NOTHING                              name + outfit  →  "THIS MAKES YOU
                 │                                  TRACKABLE" warning, must choose YES
                 │                                                 │
                 └─────────────── both on + same 5-word phrase ────┘
                                            │
                                         SQUAD
       ┌──────────────┬──────────────┬──────┴───────┬──────────────┬───────────────┐
    messages       HEADS-UP       roster (16)     fox hunt     UPDATE SQUAD    clock/zone
   (canned or     (serious       + read         (HUNT gauge   (nudge + opt.   from any
    48 chars)      catches)       receipts       on a board)   WiFi share)     member's hello

A peer is recognised inside the BLE scan callback and returns before the signature tables ever see it, so two SquachWatches cannot set each other off as detections (Vol 7 §3.2).


9.2 What goes on the air

9.2.1 The presence advert

The whole visitor protocol is in include/squachmesh.h. Because Squachy’s appearance is a set of indices into tables both boards ship identically, only the indices need to travel:

Table 1 — The whole visitor protocol is in include/squachmesh.h. Because Squachy's appearance is a set of indices into tables both boards ship identically, only the indices need to travel

FieldSizeValue / meaning
AD type—Manufacturer-specific data
Company ID20xFFFF — reserved by the Bluetooth SIG for non-production use; “the honest choice for a project with no registration of its own”
Magic4'S' 'Q' 'M' '1' (53 51 4D 31); checked before anything else is believed, because 0xFFFF is shared with every other hobby project
Version11; an unrecognised version refuses the whole payload
Appearance word2Bit-packed, below
Flags1Must be zero for a board; 0x01 marks a phone (see the note below)
Name0 or 12ASCII, NUL-padded; present only when the owner typed a custom name
Total payload8 or 20(12 or 24 with a phone identity)
  Appearance word (16 bits)
  15      12 11       8 7   6  5   4   3   2   0
 ┌──────────┬──────────┬─────┬───┬───┬───┬──────┐
 │ nickname │ outfit   │shade│ C │ O4│ A │spare │
 │ (10 used)│ low 4    │(4)  │   │   │   │      │
 └──────────┴──────────┴─────┴───┴───┴───┴──────┘
   C = custom-name flag   O4 = outfit bit 4 (seventeenth+ outfit)   A = Legend's aura lit

Indices are clamped on decode rather than rejected — “drawing the wrong hat is a better failure than refusing the peer.” Size is deliberately not sent, since both Squachys are drawn small while meeting.

Note — The header also defines a phone variant: “The companion app visits boards exactly like a board does,” carrying a four-byte random identity because Android hides a phone’s own Bluetooth address from apps, and a FIX frame kind lets a phone share its position with the squad. Neither the README nor the FAQ mentions a companion app, and no app is linked from the repository or squachwatch.com as of v1.36.0. Its existence and status could not be confirmed.

9.2.2 The cost, in the firmware’s own words

TRANSMIT sits behind a full-screen warning headed THIS MAKES YOU TRACKABLE. Its text, verbatim from src/ui_meshwarn.cpp:

“TRANSMIT broadcasts a Bluetooth advert every 1.5 seconds, carrying a fixed address that never changes and your Squachy’s name and outfit.”

“Anyone nearby with a scanner can log that address with a time and a place. Because it never changes, those sightings join up into a record of where you have been.”

“The same trick this device warns you about.”

“Messages are encrypted. That you sent one is not.”

“DETECT only listens. It broadcasts nothing.”

The README’s justification for the warning: “Broadcasting a stable identifier at strangers is the exact behaviour this device exists to catch other people’s hardware doing. Offering it is defensible; switching it on quietly would not be.” The source also records an earlier experiment that advertised without consulting the setting, measured the cost of transmitting on the scanner (68.7 vs 68.6 adverts/s — none), and was torn out because it broadcast without permission.

Table 2 — 2.2 The cost, in the firmware's own words

ParameterValueSource
Advert interval1500 mssrc/mesh.cpp
Peer considered gone after20 s unheardsrc/mesh.cpp, PEER_STALE_MS
Boards tracked as nearby8 (RAM only)src/mesh.cpp, SQUAD_N
Boards drawn at once (CROWD)up to 8README
Squad HELLOone sealed byte “now and then”, roughly every couple of minutesinclude/meshmsg.h

9.3 Squads and the five-word phrase

9.3.1 From phrase to key

A squad is the set of boards holding the same five-word phrase. Settings → SQUACHMESH → MESSAGES → PHRASE: one person ROLLs five words and reads them aloud; the other ENTERs the same five. The phrase is the membership: “leaving somebody out means a new phrase on every board.”

Table 3 — 3.1 From phrase to key

StageDetail
Word list314 words, capitals only, 3–8 letters; no two share their first three letters; no letter has more than 18; no sound-alikes (“FREQ and PHREAK are the same word” read across a table)
Phrase entropyFive words rolled by the hardware RNG with rejection sampling: about 41.5 bits
Key derivationPBKDF2-HMAC-SHA256, salt "SquachWatch/msg/v1", 20,000 iterations → 16-byte key
Cost2753 ms measured on an ST7789 CYD (the deliberate ~3 s freeze when a phrase is set); paid once, then the key is stored
CipherAES-128-CCM, 13-byte nonce, 8-byte tag (mbedtls on the device)
Self-testAt every boot the board must reproduce golden frames made by an independent implementation (Python cryptography) byte for byte before it sends or reads a message
  "WORD WORD WORD WORD WORD"  ──PBKDF2-HMAC-SHA256 (salt "SquachWatch/msg/v1", 20,000 it.)──►  K (128 bit)
                                                                                                 │
  nonce = sender BT address (6) ‖ counter (3, LE) ‖ 00 00 00 00                                   │
  AAD   = 6-byte frame header                                                                    ▼
  plaintext ─────────────────────────────── AES-128-CCM(K) ──────────────────────► ciphertext ‖ tag(8)

The nonce includes the sender’s Bluetooth address because the whole squad shares one key: two boards on the same counter would otherwise reuse a nonce, “which does not weaken AES-CCM, it ends it.” It also binds each frame to its sender — the same bytes replayed from another address fail authentication. The counter never wraps; a sender refuses instead.

9.3.2 The sealed frame

Legacy BLE advertising gives 31 bytes per packet; the ESP32 has no extended advertising. After length, type and the 0xFFFF company ID, a frame has 27 bytes. Messages ride in the scan response.

 offset  0      2       3        6                     6+n          6+n+8
        ┌──────┬───────┬────────┬─────────────────────┬────────────┐
        │ 'ST' │ver|knd│counter │ ciphertext (n)       │  tag (8)   │   ≤ 27 bytes
        │magic │ 2 | k │ 3 B LE │                      │            │
        └──────┴───────┴────────┴─────────────────────┴────────────┘
          └──────── header, authenticated as AAD ───────┘

The presence advert’s magic begins 'S','Q' and the message frame’s is 'S','T', so the two cannot collide.

9.3.3 Frame kinds

Table 4 — 3.3 Frame kinds

KindNameSealed?Replay-recorded?Carries
1CANNEDYesYesIndex of one of 24 ready-made lines
2TEXTYesYesOne of up to 3 parts of 16 six-bit characters (48 total)
3EMOTEYesnot statedOne of the thirty-five emotes
4NUDGEYesnot stated”Install the version I am running”
5WIFIYesnot statedUp to 6 parts: SSID (≤32) + password (≤38), used once, never stored
6UPDATEDYesnot statedThe version a nudged board now runs
7INVITE_PUBNo (plain SHA-256 tag)—X25519 public key, role, target address
8INVITE_KEYYes, one-time session keyYesThe phrase
9HELLOYesNo”I hold the phrase”; since v1.7.8 the sender’s version, and in newer forms its clock
10READYesNoThe counter of the message that was opened
11HEADSUPYesYesDetection type, signal, last three bytes of its address
12FIXYesNoA phone’s latitude/longitude (degrees × 10⁷) and accuracy

All twelve kinds are defined in include/meshmsg.h; the replay column records only what that header’s comments state. The README adds that the hello carries the sender’s clock and zone.

What is protected and what is not. Encrypted: messages, read receipts, heads-ups, hellos, update nudges and any shared WiFi password. Not encrypted: the presence advert (fixed address, name, outfit), and “the fact that you sent something and when.” Anyone holding the five words reads the squad’s traffic — “share them like a house key.”

Figure 2 — A typed message arrives in a red bubble with the sender's name; a canned reply is picked, confirmed and sent; the phrase picker's large alphabet and word list. Image: SquachWatch-CYD f…
Figure 2 — A typed message arrives in a red bubble with the sender's name; a canned reply is picked, confirmed and sent; the phrase picker's large alphabet and word list. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

9.4 Joining without typing

The typed phrase “is the reliable way in and always will be.” The convenient way is ADD on the SQUAD screen (the +N beside a visitor):

   Inviter (in squad)                                     Invitee (stranger, nearby)
   ─────────────────                                      ─────────────────────────
   tap ADD → pick board
   INVITE_PUB {target, role 0, X25519 pubA} ───────────►  "Join squad?"  → accept
                                            ◄───────────  INVITE_PUB {role 1, X25519 pubB}
   both compute shared secret; both screens show the SAME FOUR DIGITS (from both public keys)
   people compare digits aloud ── mismatch? say NO, nothing was sent ──
   INVITE_KEY {phrase} sealed under one-time session key ──►  stores phrase, derives K
                                            ◄───────────  sealed HELLO (proves it holds K)
   screen: ADDED → both return to main screen
   (no answer → inviter offers to show the phrase for typing)

The four digits are a short authentication string: a third board in the middle presenting its own key to each side “leaves the two screens disagreeing.” The INVITE_PUB parts carry only a plain hash tag — “integrity against the air, nothing against a forger” — so the digits comparison is the actual defence. SHOW PHRASE (on by default) can be switched off, after which the words become dashes, the board never prints them, and the squad grows only by ADD, in person.

Figure 3 — Two boards pairing a squad: one taps ADD TO SQUAD, the other accepts, both show the same four digits, and the phrase crosses without being typed. Image: SquachWatch-CYD firmware screen…
Figure 3 — Two boards pairing a squad: one taps ADD TO SQUAD, the other accepts, both show the same four digits, and the phrase crosses without being typed. Image: SquachWatch-CYD firmware screen capture (skizzophrenic, GPL-3.0).

Caution — The digits comparison only works if the two people actually compare them. Accepting an invite without checking reduces the exchange to an unauthenticated key agreement, and a squad phrase handed to an interloper exposes every past and future message under that phrase until a new one is rolled on every board.


9.5 Messages, heads-ups, the roster and the fox hunt

Table 5 — 5. Messages, heads-ups, the roster and the fox hunt

FeatureBehaviourWhere
MessagesOne of 24 canned lines (grouped in six tabs) or up to 48 typed characters on the payphone keypad or QWERTY keyboard; arrives as a red bubble with the sender’s name; nothing sends until confirmedSEND on the SQUAD screen
FILLEight openings ending in a blank — MEET AT, I’M AT, BACK IN … — that open the keyboard pre-typedMessage screen
EmotesThirty-five, sendable from the message screen; the pair also break into them spontaneouslyMessage screen
Read receiptsA READ toast with the reader’s name; a reader with TRANSMIT off cannot send one, “so you see sent and never read, which is the truth”Automatic
HEADS-UPA serious catch on one board shows on the squad’s screens as an amber banner for eight seconds, at most once a minute: Flock, Axon, skimmer, Raven, plate reader, deauth flood, evil twin or hacking gear — never trackers. Carries the last three address bytes so a board that caught the same device stays quietOn by default; HEADS-UP in the SquachMesh menu
RosterEveryone ever heard holding the phrase, up to sixteen, kept across restarts; outfit, number of separate meetings, in-range first; INVITE, AWAY, FORGETSettings → SQUACHMESH → SQUAD
Fox huntHUNT on the SQUAD screen aims the HUNT gauge (Vol 8 §4) at a squad board; CAUGHT! at arm’s length, Squachy bounces, light flashes greenSQUAD screen
Clock sharingEvery hello carries the sender’s clock and zone; a board with neither takes them from the first member it hearsAutomatic
TutorialA seven-card tutorial the first time MESSAGES is enabled; ? replays it; it never transmitsMessage screen

Sources: README “SquachMesh”, “Your squad”, “Fox hunt”, “Smaller things”; docs/FAQ.md; include/meshmsg.h.

The fox needs TRANSMIT on; the hunters need DETECT. A new phrase clears the roster, “because a new phrase is a new squad.”


9.6 Updates, and updating a squad

Vol 5 covers the three update paths in full. The security properties that make a squad update safe are the same ones that protect a single board:

Table 6 — Vol 5 covers the three update paths in full. The security properties that make a squad update safe are the same ones that protect a single board

PropertyImplementation
SignatureECDSA P-256 over SHA-256("SQWOTA1\n" + build name + "\n" + image); public key compiled in; private key held as a GitHub Actions secret
Board bindingThe build name is inside the signed message, so a correctly signed image for a different board is refused — “a wrong display driver is a white screen, and a white screen cannot be navigated to switch back”
No downgradeAn older release is refused; reinstalling the same one is allowed as a repair
ProbationA new image runs on trial and confirms itself after ~30 s; a crash or power cut before then returns to the old slot. SWITCH TO goes back by hand
SettingsPIN, squad and settings survive any update path

Knowing there is an update happens two ways without installing anything: the boot check against squachwatch.com when a network is saved (turned off by UPDATE CHECK), and squad hellos, which carry each board’s version so a board that hears a newer member knows “without touching WiFi.”

UPDATE SQUAD (Settings → SYSTEM → UPDATE FIRMWARE) tells every in-range board holding the phrase to install the version this board is running:

 board A (already updated by hand)                 boards B, C … (squad, in range)
 ───────────────────────────────                  ───────────────────────────────
 UPDATE SQUAD ──► NUDGE {A's version}  ────────►   REMOTE UPDATE on?  locked?  newer than mine?
           (+ optional WIFI parts: A's saved            │ no → ignore
            network, sealed with the phrase)             ▼ yes
                                                   30 s countdown (NOW / SKIP)
                                                   join WiFi (own saved, or A's — used once, forgotten)
                                                   download signed release for MY board from squachwatch.com
                                                   install → restart → probation
                                 ◄────────────────  UPDATED {new version}  → A shows who reported back

There is no “whatever is newest”: the nudge names the sender’s version, because “a receiver has to be able to refuse without joining WiFi, since leaving WiFi update mode costs a restart.” A locked board ignores the nudge regardless. The README’s release-day order: “update one board by hand, then UPDATE SQUAD from it.”

Note — Each board downloads its own build from squachwatch.com; the nudge carries no firmware. The trust a squad member extends is therefore “install the project’s signed release, version X, now” — not “run what I send.” REMOTE UPDATE under SECURITY switches even that off.


9.7 The T-Watch S3 and S3 Plus

The LilyGo T-Watch S3 and S3 Plus (BETA) run the whole firmware on a 240×240 screen, built from the twatch-s3 environment (ESP32-S3, 16 MB flash, PSRAM, RadioLib 7.7.1, SQUACH_LORA and SQUACH_MESH enabled). Watch-only controls live under WATCH SETTINGS, the first row in Settings.

[FIGURE SLOT — Vol 9 §7] A LilyGo T-Watch S3 Plus on a wrist running SquachWatch, screen lit on the main screen or an alert card, crown visible; ideally a second shot of the LORA CHATS screen.

Table 7 — 7. The T-Watch S3 and S3 Plus

WATCH SETTINGS rowFunction
BATTERYCharge state from the power chip
WARDRIVES3 Plus only: GPS and wardrive log on together (§9)
TAGS + RINGSLOG ONLY (default) or ALERT — “A day out otherwise means a lot of AirTags in passing cars”
LORA CHATSOpens the chats, shows how many are new
LORABOTH (default), MESHTASTIC, MESHCORE, OFF
RADIOSHow much of the time WiFi gets; Bluetooth is always on by default
BLE LISTENBLE listening duty
SLEEP CPUCPU clock while idle
BUZZOFF, HIGH, MED (default), LOW
CHIP TEMPThe chip’s temperature

Table 8 — 7. The T-Watch S3 and S3 Plus

Watch behaviourDetail
CrownScreen off; only the crown turns it back on (POCKET MODE)
Buzz patternsDouble tap per alert (at most one every 10 s); three long buzzes for a watched device; one buzz per new LoRa message (at most one every 30 s)
POWER SAVEROn by default; on battery the screen times out regardless; on the charger it stays lit like a desk clock
ClockSet from GPS on the S3 Plus when it has a fix; the web flasher sets it after install
Still-watch AUTO SNOOZEOn a still watch a device’s allowance returns only when it was really gone for 30 min (Vol 8 §3.2)
Update over Bluetooth (BETA)Available on the S3 boards; see Vol 5

9.8 LoRa, receive only

Since v1.26.0 both watches listen to LoRa as well as WiFi and Bluetooth. “Receive only: the watch never transmits.” The radio driver and every decoder came from DH5DAX’s CrowPanel 7 work, and on the bench the watch “caught 26 of 26 test messages across both networks.”

Table 9 — 8. LoRa, receive only

Band (picked from the time zone)Meshtastic (LongFast)MeshCore
US 915 — US zones incl. Alaska and Hawaii, and the rest of the Americas906.875 MHz910.525 MHz
EU 868 — everywhere else869.525 MHz869.618 MHz

With both networks enabled the radio takes turns between the two presets. The console command LORA REGION AUTO|EU|US overrides the band at the next restart; LORA, LORA NODES and LORA MSGS report status.

Table 10 — 8. LoRa, receive only

Heard and readNot read
Meshtastic default LongFast channelPrivate Meshtastic channels
MeshCore Public and hashtag channelsDirect messages on either network
Sender and channel per message, one tab per network in LORA CHATSAnything on other presets or frequencies

A pink LORA n NEW pill on the main screen announces new traffic; PRIVACY MODE covers the chats. Public channels on both networks use well-known default keys, which is why they read in full; private channels stay unread because the watch does not have their keys.

docs/LORA.md is a 1,659-line research document, written on 2026-09-26 for the CrowPanel 7’s LoRa module, that catalogues what an SX1262 can hear (LoRaWAN, LoRa APRS, MeshCom, FANET, OGN and more), proposes a future LORA_TRACKER detection for LoRa GPS trackers that follow someone, and discusses transmitting and the law. Those proposals are research, not shipped features. A bench-only twatch-s3-loratx environment adds a console LORA TX command so one watch can send a test frame to another; the platformio.ini comment marks it “BENCH ONLY … Never released.”


9.9 Wardriving and the WiGLE file

Wardriving is separate from detection on purpose: detection keeps “the handful of things worth an alert,” while the wardrive log keeps “everything the radios hear while a GPS has a fix,” written as WiGLE’s CSV for upload to wigle.net.

Table 11 — 9. Wardriving and the WiGLE file

ItemT-Watch S3 PlusCYD GPS builds (cyd-gps, cyd-ili9341-gps)
Released on the flasherYes (BETA)No — “not in the flasher, CI or releases”; awaits a hardware test
GPSBuilt inATGM336H wired to the CYD (Vol 4)
Storage~7.5 MB of raw flash after the coredump partition; up to 125,000 sightings across restartsStraight to SD as /wigle-YYYYMMDD-HHMM.csv
Record64 bytes: kind, flags, MAC, RSSI, channel, auth/company ID, lat/lon ×10⁷, altitude, accuracy, epoch, name (≤32), CRCSame record and CSV formatter
LoggedWiFi networks with security (RSN/WPA parsed), Bluetooth devices with name and company ID, only while the fix is freshSame
ExportDOWNLOAD WIGLE FILE on the web flasher, desktop Chrome or Edge, as WigleWifi-1.6 CSVCopy from the card
ClearingStays until cleared; a duress wipe takes itDelete files

[FIGURE SLOT — Vol 9 §9] The web flasher’s DOWNLOAD WIGLE FILE control in desktop Chrome with a T-Watch S3 Plus connected, or the resulting WigleWifi-1.6 CSV open beside a wigle.net upload map.

The README lists two more boards that wardrive to SD: the Marauder V8 (using jotra7’s CYD GPS work) and the LilyGo T-Deck Plus. The FAQ adds a status note: wardriving “was marked not road-tested when it shipped in v1.25.0, so treat it as new.” Rows written against a fake bench fix are flagged and never uploaded.

Caution — A wardrive file is a geotagged record of other people’s networks and devices. WiGLE’s uploads are public. The legal and ethical envelope in Vol 10 §3 applies; on SquachWatch the log also holds the owner’s own movements, which is why the duress PIN erases it.


9.10 Everything the device transmits

The FAQ opens this topic with a correction: “Older versions of this FAQ said ‘100% receive-only’. That stopped being true a while ago.” The complete list, with how to stop each:

Table 12 — The FAQ opens this topic with a correction: "Older versions of this FAQ said '100% receive-only'. That stopped being true a while ago." The complete list, with how to stop each

WhatWhenVisible to an observer asHow to stop it
BLE scan requests (active scanning)While detecting, only when the room is quiet enough (Vol 7 §3.1)The board’s own BLE address asking nearby devices for scan responsesNo menu switch
Boot WiFi visitEach boot, only with a saved network and UPDATE CHECK onAssociation to the saved network; a request to squachwatch.com; NTPUPDATE CHECK off, or remove networks under WIFI NETWORKS
WiFi for an updateOnly on UPDATE OVER WIFI or an accepted squad updateAssociation; download from squachwatch.comDon’t start one; REMOTE UPDATE off
Bluetooth update serverS3 boards only, only while UPDATE OVER BLUETOOTH is openA connectable BLE peripheralLeave that screen
SquachMesh advertsOnly with TRANSMIT on (off by default, behind the warning)Fixed address every 1.5 s, name, outfit; sealed squad frames in scan responsesTRANSMIT off
LoRaNever on released builds——
Status light, screen, speaker, buzzerPer settingsOptical and acoustic, not RF — but visible across a roomSTATUS LIGHT, POCKET MODE, SOUND/BUZZ
   Least visible ◄──────────────────────────────────────────────────────────► Most visible
   DETECT only,             default:                  + saved WiFi            + TRANSMIT on
   no saved WiFi,           occasional BLE scan       boot check              fixed BLE address
   STATUS LIGHT off,        requests in quiet rooms   (one association        every 1.5 s —
   POCKET MODE                                         per boot)               trackable over time

9.11 Cheatsheet updates from this volume

┌──────────────────────── SQUACHWATCH — MESH, UPDATES, WATCH ──────────────────────────────┐
│ MESH     DETECT = listen only.  TRANSMIT = fixed BLE addr every 1.5 s (TRACKABLE). Both off│
│ ADVERT   company 0xFFFF · 'SQM1' · v1 · 16-bit appearance word · opt. 12-char name (8/20 B)│
│ SQUAD    5 words from 314 (~41.5 bit) → PBKDF2-SHA256 ×20,000 → AES-128-CCM, 8-byte tag   │
│          nonce = sender addr + counter.  Sealed: msgs, read, heads-up, hello, nudge, WiFi │
│          NOT sealed: the advert itself, and THAT/WHEN you sent                            │
│ ADD      X25519 + 4 digits — COMPARE THEM ALOUD.  SHOW PHRASE off = in-person ADD only     │
│ HEADS-UP 8 s amber banner, ≤1/min, serious types only, never trackers                     │
│ UPDATE   ECDSA P-256 signed, per-board, no downgrade, 30 s probation, SWITCH TO = rollback│
│ SQUAD UP update one board by hand → UPDATE SQUAD.  Receivers: REMOTE UPDATE on, unlocked  │
│ WATCH    crown = pocket mode · BUZZ OFF/HIGH/MED/LOW · TAGS + RINGS = LOG ONLY default    │
│ LORA     RX only. US 906.875 (Mt) / 910.525 (MC) · EU 869.525 / 869.618 · public chans    │
│ WARDRIVE S3 Plus: ≤125,000 sightings in flash → DOWNLOAD WIGLE FILE (Chrome/Edge desktop) │
│ TX LIST  BLE scan requests · boot WiFi check · updates · BLE update server · mesh adverts │
└────────────────────────────────────────────────────────────────────────────────────────────┘

Table 13 — 11. Cheatsheet updates from this volume

Unconfirmed in this volumeStatus
Companion phone app referenced by FLAG_PHONE / KIND_FIXNot documented or linked; status unknown
Exact HELLO interval”Now and then … every couple of minutes” in the header; no constant quoted
Wardriving accuracy in the fieldMarked not road-tested at v1.25.0

Comments (0)

  1. Loading…

Comments are held for moderation — nothing appears until approved.