Skip to content
ACwing-UAVPublic

About

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

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

ACwing

ACwing – firmware

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

Documentation

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

Quick start

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

Status

  • 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.

About

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

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages