What you'll need
- A Makerdiary nRF52840-MDK USB Dongle running Nordic's nRF Sniffer for Bluetooth LE firmware. Using a different nRF52840 dongle or a Flipper Zero? The main README's manual instructions still work for you -- this tool is built around the Makerdiary dongle specifically.
- Your phone, with the official Onewheel app installed and able to connect to your board.
- Chrome, Edge, or another Chromium-based browser on a laptop or desktop. Not Firefox or Safari -- they don't support the Web Serial/File System Access APIs this tool depends on, and there's no workaround for that. Brave works for Capture, but disables the File System Access API by default, so the Flash step won't work there (confirmed on Brave 1.92) -- use Chrome/Edge/Chromium if you need Flash too.
- A little patience: catching the handshake often takes several tries (5+ isn't unusual). That's a real limitation of this class of BLE sniffer hardware, not a sign anything's wrong -- more on this on the Capture screen.
Nothing you do here leaves your computer. The dongle talks to your laptop over USB, everything is decoded locally in your browser, and the only output is a small text file you save yourself. No server, no account, no upload.
Flash your dongle
If your dongle is already running the nRF Sniffer firmware (for example, if you set it up previously), skip this step -- nothing here is required twice.
This puts the dongle into its bootloader -- a tiny built-in program (separate from the sniffer firmware) whose only job is accepting new firmware. To your computer, that bootloader looks exactly like a USB flash drive named UF2BOOT; that's normal, not a different mode. Copying the firmware file onto it is a real flash, not just a file copy that sits there -- the bootloader watches for the new file, programs it directly into the chip, and reboots into it automatically.
This is Nordic's official nRF Sniffer for Bluetooth LE firmware (v4.1.1), pre-packaged for the Makerdiary nRF52840-MDK dongle -- see firmware/NOTICE.md for exact provenance and license.
Advanced: use a different .uf2 file (other dongles)
This only works for boards with a UF2 bootloader like this one (the "shows up as a USB drive" style). A genuine Nordic dev kit using Nordic's own DFU bootloader (e.g. a PCA10059) needs different tooling entirely -- see the main README's manual instructions for that path.
Need firmware for a different UF2-bootloader nRF52840 board? Get it from Nordic directly: nRF Sniffer for Bluetooth LE (you'll need to convert their .hex to .uf2 yourself -- see the main README).
Capture the handshake
💡 Heads up: this often takes several tries (5+ isn't unusual) before it catches the handshake -- the sniffer has to catch your phone's connection at the exact right moment and then not lose sync, and it misses one or both fairly often. That's a real limitation of this class of BLE sniffer, not a sign your setup is broken. Some attempts won't even show a "CONNECT_REQ" line at all -- also normal, just try again.
Taking a while? That's expected -- 5+ tries isn't unusual with this kind of sniffer, not a sign something's broken. A few things that have helped:
- Toggle your phone's Bluetooth off and back on, then reconnect the Onewheel app.
- Double-check your laptop's own Bluetooth is really off.
- Power-cycle the board again and retry.
- Keep the dongle within a few feet of your phone and board.
Technical log
Got it!
Your board's unlock handshake, captured and decoded locally:
Drop the downloaded file into garmin-app/source/LocalConfig.mc in your Floatface checkout (it replaces the placeholder from LocalConfig.mc.example), then build and sideload as usual. This value is specific to your board -- see PROTOCOL.md for why it can't be shared or reused on a different board.