The Canary checks itself.
Every Canary runs a 10-probe self-test at boot and scores its own health 0–100%. Every feature — camera PEEK, mic, motion, GPS, thermal — is one tap to test. None of it costs extra program memory: it's already in the firmware. Watch the Doctor run.
Your Canary firmware · we pick it for you
No decision needed — this is the build most people should run, and everything below matches it. Building something specific, or just curious? Open developer mode to choose any board and level.
⚙️ Developer & education — choose any board & build level
Only the S3 Canary has dev / release / full levels — the others are single builds. BLE + mesh live only in S3 · full (and the WAP), because they don't fit the smaller OTA slots. The tests below re-light to match whatever you pick.
Boot self-test · 10 probes · 0–100% health
Runs automatically on every boot; you can re-run it any time from the console or GET /api/selftest. Each probe is worth 10%.
Feature tests & demos
Each of these is a real endpoint or console command already in the firmware — tap Run to see what it does. (Emulated here; on a real device these return live data.)
🔵 Bluetooth bring-up · the hard one
BLE is the heaviest feature, so "it doesn't work" is really several different failures. The test reports the first rung that failed and what to do — including the honest reason it's a [env:full]-only build.
🪶 …and it's nearly free on flash
On the XIAO ESP32-S3 the tight budget is flash, not RAM — so a "run everything" mode reuses what's already compiled in rather than adding a test framework:
- ✅The boot self-test and its 10 probes already ship (
diag_run_selftest()). It's re-run byGET /api/selftest. - ✅Every feature already exposes a cheap check —
camera captureFrame(),audio_selftest_start(),*_is_running()/*_get_stats()— surfaced by the existing dashboard endpoints. - ➕The only add is a one-key console
t("run all") that prints them in a table — a few strings, since every call it makes is already linked in. No new framework, no meaningful flash.
This is an emulation for illustration; live results come from the device. The probe list and feature tests are pinned to the firmware in onboarding-spec.json and checked in CI, so this page can't drift from what the device actually does. Firmware is open source on GitHub.
