![]() |
ACwing FC firmware
STM32WB55: attitude IEKF, altitude Kalman filter, flight core, protocol v2
|
Files | |
| app_config.h | |
| Phase-1 configuration: P-NUCLEO-WB55 (NUCLEO-WB55RG) + X-NUCLEO-IKS4A1 in Mode 3 (LSM6DSV16X is the sensor-hub master, LIS2MDL sits behind it). | |
| app_main.c | |
| Phase 1: multi-rate attitude estimation on STM32WB55, control hooks in place. | |
| app_main.h | |
| Integration into main.c (CubeMX, CMSIS-RTOS2): | |
| app_task.c | |
| AppTask (see app_task.h). | |
| app_task.h | |
| AppTask: ACwing Pilot protocol v2 (HANDOVER_FW.md) on the drone side. | |
| batt_task.c | |
| BattTask (see batt_task.h). | |
| batt_task.h | |
| BattTask: owns the battery ADC and the battery monitor (battery.c). | |
| cfg_store.c | |
| A/B image selection, CRC (see cfg_store.h). | |
| cfg_store.h | |
| Persistent configuration: parameters, drone name, calibrations and one backup per calibration type (HANDOVER_FW.md §8, §10). | |
| est_config.c | |
| Production estimator configuration (see est_config.h). | |
| est_config.h | |
| The production configuration of the attitude estimator, built from app_config.h in one place, so the firmware and the host tests run the same numbers. | |
| est_pipeline.c | |
| est_pipeline.h | |
| Multi-rate estimation pipeline, WITHOUT any HAL or RTOS dependency. | |
| ext_sens.c | |
| ExtTask: VL53L1X + flow bridge on the Qwiic bus (see ext_sens.h). | |
| ext_sens.h | |
| Expansion sensors on the Qwiic bus (ACwing Flow rev A): VL53L1X ToF and the optical-flow bridge. | |
| fc_shared.c | |
| fc_shared.h | |
| Data exchanged between the flight context (ImuTask) and the AppTask. | |
| log_task.c | |
| LogTask (see log_task.h). | |
| log_task.h | |
| LogTask: owns the log flash, writes the flight log and serves the log download over USB. | |
| params.c | |
| Parameter table and rules (see params.h). | |
| params.h | |
| Drone parameters of protocol v2 (HANDOVER_FW.md §8, ids.ts PARAMS). | |
| tlm_build.c | |
| Note: fields of the packed structs are ALWAYS filled via memcpy from aligned local variables (see telemetry.h: unaligned VSTR -> HardFault). | |
| tlm_build.h | |
| Builds telemetry frames from the pipeline state. | |