multi-node.demo.mov
Demo showing off the v3.8.1 RadioHound capabilities, scanning and displaying common keyfob frequencies as well as 3 beacon windows for Bluetooth pairing.
Built on top of my custom Python module (https://github.com/jordanboskovich/radiohound-module) and API to communicate with RadioHound sensor nodes and abstract MQTT communication.
One-time setup:
Install node.js from https://nodejs.org/en/download
python3 -m pip install --user fastapi uvicorn numpy requests
cd frontend && npm install && npm run build
Then:
python3 server.py
and open http://localhost:8000.
Each panel's knob sets that band's detection threshold (drag up/down, scroll, or arrow keys). It's shared by every open tab and resets to −75 dBm when the server restarts.
To scan with more sensors, type a node's MAC address into the bar under the title and click "Add sensor" (up to 4). Every sensor scans at once and draws its own colored trace on each radio; a detection from any of them lights the panel and adds to the count (detections within 1 s of each other count once). Click a sensor to make it the primary: its trace is the bright one, the waterfall shows it, and the knobs set its thresholds. Added sensors are kept in the server's memory only, so each restart begins with just the default node (node_mac_address in ScanKeyfobFrequencies.py).
Run python3 server.py and, in another terminal, cd frontend && npm run dev, then open http://localhost:5173. Changes to frontend/src show up immediately. Run npm run build when done so server.py serves the new version.
server.py: scans the bands on the node and pushes each capture to the browser over a WebSocketScanKeyfobFrequencies.py: which bands to scan and how detection worksspec0.py: copy of the RadioHound module (scan,sweep_beta); don't edit herefrontend/: the React dashboard