finds.dev← search

// the find

but0n/Avem

★ 2,805 · C · MIT · updated Oct 2023

🚁 轻量级无人机飞控-[Drone]-[STM32]-[PID]-[BLDC]

Avem is a bare-metal quadcopter flight controller built on STM32F103 with MPU6050 IMU, FreeRTOS, cascade PID control, and KiCad PCB designs included. It's aimed at hobbyists who want to understand how a flight controller works from the ground up rather than just flash Betaflight and fly. The full hardware design (schematic, BOM, PCB layout) is included, which is rarer than you'd think.

Cascade PID implementation (inner rate loop, outer angle loop) is the right architecture and it's actually implemented, not just described. KiCad source files for the PCB are included — you can order boards or modify the design, not just look at photos. FreeRTOS is used appropriately for task separation between sensor reading, PID computation, and motor output rather than one giant superloop. The companion HUD app with real-time attitude visualization over serial is a genuinely useful debugging tool for tuning.

STM32F103 is a poor choice for a modern flight controller — no hardware FPU means floating-point PID and quaternion math runs in software, which is slow and burns CPU budget. Last commit was 2023, Wi-Fi (ESP8266) and GPS are marked unfinished in the to-do list — so it's not a complete system. No motor mixer abstraction: motor output mapping appears to be hardcoded for one frame geometry, making it useless for anything other than the exact quad it was built for. No failsafe behavior is documented or visible — what happens on signal loss is unclear, which is a real safety problem.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →