Wear your name
Upload text and animations through the familiar BadgeMagic app. FrogAlert must preserve that content exactly.
Open badge firmware / CH582M / Rust experiment
FrogAlert keeps doing the useful thing—showing your name—then briefly listens for nearby Bluetooth signals and flashes a local warning when an explainable rule matches.
Concept UI — not a photograph of supported hardware
The premise
Upload text and animations through the familiar BadgeMagic app. FrogAlert must preserve that content exactly.
When no app is connected, pause advertising for a short passive BLE scan. No pairing, interrogation, location, or cloud log.
Known public-address prefixes or advertised names can trigger COP DETECTED or HAX DETECTED, then the nametag returns.
Proposed radio cycle
The WCH Bluetooth stack must safely switch between a BadgeMagic-compatible peripheral and a passive observer. Hardware testing decides whether this schedule ships.
No vaporware arithmetic
SHIPPED / HOST
Allocation-free, no_std, unit-tested matching for public OUIs and advertised names.
cargo test --workspace
PROTOTYPE / BROWSER
Read-only target identification, local BIN validation, program/verify sequencing, and explicit safety gates.
node --test tests/*.test.mjs
PLANNED / BADGE
Display driver, BadgeMagic GATT, observer scheduling, alert overlay, and physical power/recovery testing.
no release binary yet
| Signal | Source | Result | Guardrail |
|---|---|---|---|
00:25:DF | Axon public OUI | COP DETECTED | Public addresses only |
B4:1E:52 | Flock Safety public OUI | COP DETECTED | Public addresses only |
Axon Body / TASER | Advertised name | COP DETECTED | Case-insensitive hint |
Flipper / Ray-Ban | Advertised name | HAX DETECTED | Case-insensitive hint |
Experimental hardware lab
Web Bluetooth cannot install firmware on this badge. It can verify the normal BadgeMagic GATT service. Firmware replacement happens through the CH582 factory USB ISP bootloader.
Ask for a BadgeMagic device advertising service FEE0, then verify characteristic FEE1. This probe changes nothing.
Ready for a compatibility probe.
Enter ISP mode with KEY2, then identify the USB target. Connecting does not erase or program anything.
Waiting for a WCH ISP bootloader.
FROGALERT / WEBUSB FLASH CONSOLE
Required. A release must list this exact value; a developer BIN is bound to the value present when selected.
Loading release manifest…
Processed locally. Never uploaded.
Build in the open
FrogAlert is early by design and explicit about what remains. The repository includes the requirements tracker, local build tools, browser protocol tests, release contract, upstream research, and operating memory for the next contributor.