Flight controller on STM32WB55 · attitude IEKF and altitude Kalman filter · FreeRTOS · BLE
ACwing Flow bridge on STM32C011 · PC tools in MATLAB and Python · ACwing Pilot app
by Andrea Cirillo
ACwing is an open project for small multirotors. The hardware (flight controller, power board, GNSS and optical-flow expansions) is in ACwing_HW, the mechanics in ACwing_Mechs; the ACwing system repository pins the versions that belong together. This repository holds the software:
| Folder | What |
|---|---|
00 - FC_FW |
flight-controller firmware (STM32CubeIDE project ACwing_FC_FW): attitude IEKF on SO(3), altitude Kalman filter, flight core with arming, failsafes and TAKEOFF/LAND, battery monitor and failsafes, flight log with USB download, ACwing Pilot protocol v2, telemetry over USB and BLE |
01 - FLOW_FW |
ACwing Flow bridge firmware (STM32C011): PMW3901 optical flow → I²C target |
02 - Tools |
PC tools in MATLAB and Python (live viewer, calibration, validation) and the ACwing Pilot app |
03 - Docs |
the documentation: theory, firmware, tools, guides, decisions |
The documentation is published at acwing-uav.github.io/ACwing_FW,
built from 03 - Docs; the pages also read directly on
GitHub. The API reference (Doxygen) exists only on the published site.
| Start here | |
|---|---|
| Home | what ACwing is, status, where to start |
| Repository structure | every folder and file |
| Theory | vehicle model · attitude IEKF · IEKF on the microcontroller · altitude Kalman filter |
| Firmware | architecture · flight core · sensors · battery · flight log and USB · protocol v2 · BLE · Flow bridge · build · testing |
| Tools | PC tools and live viewer · magnetometer calibration · validation |
| Why it is built this way | decisions (ADR) |
| API | Doxygen: FC firmware · Flow bridge · how it is built |
| I want to… | |
|---|---|
| build and flash the FC firmware | import 00 - FC_FW in STM32CubeIDE: Building and flashing |
| see the attitude live | MATLAB acwingLiveViewer or acwing-tools viewer: PC tools |
| run the host tests | make in 00 - FC_FW/Tests/host, make test in 01 - FLOW_FW: Testing |
| build the documentation | pip install -r "03 - Docs/requirements.txt", mkdocs serve: Writing the documentation |
- Phase 1, attitude estimation: concluded. Validated on the board against the MATLAB reference (≤ 0.003 σ).
- Phase 2:
- BLE telemetry is validated on the board.
- App protocol v2, failsafes, altitude with TAKEOFF/LAND, the Flow bridge, the battery monitor and the flight log with USB download are implemented and host-tested, not yet run on the board.
- Phase 3, control loops and motors: planned. Motors are disabled
(
MOTORS_ENABLE = 0).
Details and next steps: Roadmap.