• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

DIY Flight Controller with Arduino + Linux


Active member
After collecting dust on my desk for literally a year, I finally got the barometric pressure sensor drivers worked out on my DIY flight controller project. It should be all set to integrate into an airplane.


I designed the base board and get it fab'd at oshpark:


The teensy (3.2) handles all the real-time sensor I/O and PWM servo outputs.
I use an inexpensive MPU9250 breakout (+ pressure/temp sensor) from bang good.
It has onboard power regulation and main battery voltage sensing.
It supports SBUS receiver input, and 8 pwm output channels.
The heart of the system is the beagleboard "pocket beagle". This is a tiny (in size) linux computer that runs the flight controller app. The flight controller code can do things like autolaunch, autoland, fly circle holds, compute and fly survey routes, hold altitude, and hold speed. The flight code is a hybrid of C++ and python (running on board the pocketbeagle), so the code can be extended in either language. It has a mission/task system that is python based, so you can actually write core python code for this system without needing to recompile the app.
It is not a pixhawk or ardupilot, it's a completely independent ecosystem.
All the code and board designs are available under the MIT open-source license.


The entire AuraUAS software system also runs on the bolder flight systems flight controller hardware (which is a spin-off from the U of MN UAV lab.) The hardware above is sort of a DIY version of the flight controller our UAV lab runs.

I know that not too many people are interested in diving this deep into flight controller hardware and software ... especially when there are so many super cheap simpler options available (and px4 is there for anyone that wants to do full blown uav stuff.) But I like my system because I made it myself and I understand it from end-to-end. Also it's *way* simpler than px4 which is intentional. Px4 supports every board, every sensor, every type of aircraft/multi-rotor/ground/surface/heli/space vehicle, every use case, every person's idea ... this is great, but their code complexity has grown to insane levels! (My personal characterization ...) ;-) In my recent years I have come to value simplicity in code and simplicity in design ... especially for flight critical components.

I think my AuraUAS system could be interesting to people who know python, people who want to build something up from scratch, people that like linux, and people that want to start learning with something that is fully functional, but slightly simpler.

Thanks for reading all the way down to here! :)

Curt (University of Minnesota UAV Lab staff engineer.)


Active member
Looks way more complicated than anything I could do. Keep it up
Thanks for the kind words. We are all starting from the same place and doing our best to learn as we go. I started working on the first parts of this project way back around 2005! Back then I couldn't solder two wires together. :)