A PyQt6 desktop application for real-time telemetry visualization from the Altimeter device via Bluetooth Low Energy (BLE). Features live data plotting, flight phase detection, memory status monitoring, and CSV data export.
See also: Altimeter Firmware & PCB | Desktop App (USB Serial)
- Async BLE Communication -- Connects to Altimeter via
bleakwithqasyncevent loop integration - Real-Time Data Visualization -- Live altitude/pressure plotting with
pyqtgraph - Flight Phase Detection -- Automatic detection and labeling of flight phases
- Memory Status Monitoring -- Reads device flash memory usage and status
- Data Export -- Save telemetry data to CSV with
pandas - Communication Logging -- Full BLE command/response logging to file
- Modular UI Architecture -- Separated BLE manager, control panel, data manager, and data panel
Altimeter_Desktop_App_Bluetooth/
|-- main.py # Application entry point (QApplication + async event loop)
|-- ui_dashboard.py # Main dashboard window
|-- config.py # BLE UUIDs, settings, thresholds
|-- data_processor.py # Telemetry data parsing and processing
+-- ui_components/
|-- ble_manager.py # BLE device scanning, connection, and data streaming
|-- control_panel.py # User controls (connect, start/stop, export)
|-- data_manager.py # Data storage, CSV export, logging
+-- data_panel.py # Real-time data visualization widgets
| Component | Technology |
|---|---|
| GUI Framework | PyQt6 |
| BLE Library | bleak (async BLE) |
| Async Integration | qasync (asyncio + Qt event loop) |
| Data Visualization | pyqtgraph (real-time plotting) |
| Data Processing | pandas, numpy |
| Logging | Python logging (file + console) |
# Install dependencies
pip install PyQt6 bleak pandas numpy pyqtgraph qasync pyserial
# Run the application
python main.pyMuhammad Zaeem Sarfraz -- Electronics & IoT Hardware Engineer
- π LinkedIn
- π§ Zaeem.7744@gmail.com
- π Vaasa, Finland