$ show okalachev/flix
Flix is an open-source ESP32-based quadcopter project built from scratch. The repository contains flight controller firmware, a Python control/telemetry library, C++ utilities for log conversion, simulation assets, and extensive documentation. It is primarily an application repo, though it also includes CAD models and data-conversion tools that serve as supporting assets. At runtime, the ESP32 firmware reads IMU data, estimates attitude, and drives motors, communicating via MAVLink and ESP-NOW for telemetry and control. The Python library (tools/pyflix/flix.py) provides an observable API for interacting with the vehicle, and CLI tools convert flight logs from CSV to MCAP and ULog formats for analysis in standard robotics tooling. A Gazebo simulation and a Python test harness validate behavior without hardware. Architecture is a multi-part monorepo: firmware, Python tools, C++ tools, docs, and 3D-printable mechanical parts. External dependencies include the Arduino ESP32 core, MAVLink, ESP-NOW, Gazebo, and custom math classes. The code is generally well-structured, but some data flow relies on global variables and hardware-specific assumptions, limiting reuse outside the ESP32 ecosystem. The project appears actively maintained with CI workflows, but dependency pinning and tight hardware coupling create moderate drift risk.
The LLM identified 4 files worth highlighting for reuse:
Python control library for the Flix quadcopter. Exposes an observable event interface (on/off/wait) for telemetry and commands, and handles FLU-to-MAVLink coordinate transforms. Self-contained enough to be adapted as a pattern for other MAVLink/vehicle control libraries.
Converts CSV telemetry logs to MCAP, a modern robotics log format. Demonstrates a clean, reusable ETL pattern for turning flat CSV sensor logs into structured, queryable log files.
C++ converter from CSV flight logs to PX4 ULog format. Useful for replaying or analyzing drone logs in PX4-compatible tools; the conversion logic is independent of Flix-specific hardware.
Test harness that runs the firmware against a simulated vehicle, verifying state, parameters, and MAVLink command behavior. A good reference pattern for simulation-based testing of drone firmware.