How fulcanellir/flock-noir works
Flock Noir is an embedded optical/radio evidence detector with a dashboard, alerts, and local recording/wardriving; the README also identifies a separate Raspberry Pi target. The main workflow is selecting a scan mode, collecting optical and radio observations, correlating evidence, then presenting/logging candidates. The sampled firmware excerpts emphasize radio processing, while some sensor and UI wiring is documented only at capability level. The Pi entry point shows its component assembly; unsampled implementation details and cross-component calls are omitted where evidence is insufficient.
Main entry points: main.py Pi Runtime · radio.cpp Radio Scanner · radio.py Pi Radio · web.py Pi Web Dashboard
Components 22
XIAO Firmware
- Radio Scanner
firmware/FlockNoir/radio.cpp - Wardrive Survey
firmware/FlockNoir/wardriver.cpp - GPS Timing
firmware/FlockNoir/gps_time.h
Detection Evidence
- Radio Rules
firmware/FlockNoir/radio_protocol.h - Optical Detection
firmware/FlockNoir/detector.cpp - OPT101 Sensor
firmware/FlockNoir/irsensor.cpp - Evidence Fusion
firmware/FlockNoir/fusion.h
User Outputs
- Mode Dashboard
firmware/FlockNoir/web_ui.h - Video Recorder
firmware/FlockNoir/recorder.cpp - Sound Alerts
firmware/FlockNoir/buzzer.cpp - SD Evidence Files
firmware/FlockNoir/recorder.cpp
Raspberry Pi
- Pi Runtime
pi/flocknoir/main.py - Pi Camera
pi/flocknoir/camera.py - Pi IR Sensor
pi/flocknoir/irsensor.py - Pi Radio
pi/flocknoir/radio.py - Pi Native Parsers
pi/native/core.cpp - Pi Evidence Logger
pi/flocknoir/logger.py - Pi Web Dashboard
pi/flocknoir/web.py - Pi Wardrive
pi/flocknoir/wardriver.py - Pi Sound Alerts
pi/flocknoir/buzzer.py - Saved Settings
pi/flocknoir/settings.py
Other components
- Operator
Connections 20
- Operator → Mode Dashboard: selects mode
- Mode Dashboard → Radio Scanner: configures scan
- Radio Scanner → Radio Rules: matches packets
firmware/FlockNoir/radio.cpp - Radio Scanner → Wardrive Survey: checks survey state
firmware/FlockNoir/radio.cpp - Radio Scanner → Sound Alerts: requests alerts
firmware/FlockNoir/radio.cpp - Radio Scanner → Evidence Fusion: uses evidence model
- Optical Detection → Evidence Fusion: contributes evidence
- OPT101 Sensor → Evidence Fusion: contributes evidence
- Video Recorder → SD Evidence Files: writes recordings
firmware/FlockNoir/recorder.cpp - Operator → Pi Web Dashboard: uses dashboard
- Pi Runtime → Pi Camera: creates camera
pi/flocknoir/main.py - Pi Runtime → Pi IR Sensor: creates sensor
pi/flocknoir/main.py - Pi Runtime → Pi Radio: creates scanner
pi/flocknoir/main.py - Pi Runtime → Pi Evidence Logger: creates logger
pi/flocknoir/main.py - Pi Runtime → Pi Wardrive: creates surveyor
pi/flocknoir/main.py - Pi Runtime → Pi Sound Alerts: creates alerts
pi/flocknoir/main.py - Pi Runtime → Pi Web Dashboard: starts web app
pi/flocknoir/main.py - Pi Radio → Pi Native Parsers: decodes evidence
pi/flocknoir/radio.py - Pi Sound Alerts → Saved Settings: loads and saves
pi/flocknoir/buzzer.py - Pi Web Dashboard → Pi Radio: configures scanner
pi/flocknoir/web.py