How ianmaddocks/paramoter-audio-flight-computer works
ParaVario is embedded flight-computer firmware for paramotor pilots. Its main loop samples sensors and handles controls, then updates flight state and guidance; audio, Bluetooth, and the Wi-Fi page expose the resulting cues and information. GPS-dependent features are enabled at runtime, while the microphone supports noise-responsive volume, RPM, and spectrum. The README documents several capabilities whose implementation details were not sampled; those links use README evidence rather than implying source inspection.
Main entry points: App.cpp Main loop · WebUi.cpp Wi-Fi web UI · Audio.cpp Audio output · Flight.cpp Flight state
Components 25
Runtime and state
- Main loop
src/app/App.cpp
Sensors and controls
- Barometer
src/sensors/Baro.cpp - GPS receiver
src/sensors/Gps.cpp - Battery monitor
src/sensors/Battery.h - Mic analysis
src/sensors/Mic.cpp - Button input
src/input/Button.cpp
Flight functions
- Flight state
src/flight/Flight.cpp - Wind estimate
src/flight/Wind.cpp - Glide ratio
src/flight/Glide.h - Landing approach
src/flight/Approach.cpp - Emergency glide
src/flight/Emergency.cpp - Flight announcements
src/flight/Announcer.cpp - IGC logger
src/logging/IgcLogger.cpp
Pilot outputs
- Vario tone
src/app/VarioSound.cpp - Auto volume
src/audio/Volume.cpp - Speech builder
src/audio/Speech.cpp - Audio output
src/audio/Audio.cpp - Bluetooth feed
src/comms/BleFeed.cpp - Wi-Fi web UI
src/comms/WebUi.cpp - Web page
src/comms/WebPage.h
Configuration
- Settings
src/Settings.cpp
Other components
- Pilot
- Speaker
- Flight apps
- Pilot phone
Connections 32
- Pilot → Button input: presses
README.md - Pilot → Pilot phone: views
README.md - Main loop → Barometer: reads
src/app/App.cpp - Main loop → GPS receiver: reads
src/app/App.cpp - Main loop → Mic analysis: updates
src/app/App.cpp - Main loop → Flight state: ticks
README.md - Main loop → Button input: handles
src/app/App.cpp - Main loop → Battery monitor: samples
- Flight state → Wind estimate: updates
- Landing approach → Wind estimate: uses
src/flight/Approach.cpp - Main loop → Landing approach: dispatches
src/app/App.cpp - Main loop → Emergency glide: dispatches
src/app/App.cpp - Main loop → Flight announcements: updates
- Main loop → IGC logger: logs flights
- Main loop → Vario tone: updates
src/app/App.cpp - Mic analysis → Auto volume: provides noise
- Main loop → Auto volume: updates
src/app/App.cpp - Landing approach → Speech builder: builds calls
src/flight/Approach.cpp - Flight announcements → Speech builder: builds calls
- Speech builder → Audio output: queues utterances
- Vario tone → Audio output: sets tone
- Auto volume → Audio output: sets levels
- Audio output → Speaker: drives
README.md - Main loop → Bluetooth feed: updates
src/app/App.cpp - Bluetooth feed → Flight apps: sends vario data
README.md - Main loop → Wi-Fi web UI: updates
src/app/App.cpp - Wi-Fi web UI → Web page: serves
src/comms/WebUi.cpp - Web page → Wi-Fi web UI: requests status and settings
src/comms/WebPage.h - Pilot phone → Wi-Fi web UI: connects over Wi-Fi
README.md - Wi-Fi web UI → Mic analysis: reads spectrum
src/comms/WebUi.cpp - Wi-Fi web UI → Settings: reads and updates
src/comms/WebUi.cpp - Flight state → Settings: uses configuration