A brief history of a flight controller - From MultiWii to Betaflight and beyond
I will tell you the history of probably the most successful family of Open Source flight controllers: MultiWii that continues its life today as Betaflight, EmuFlight, and INAV. Other families like OpenPilot were not that successful and practically died. On the other hand, the history of ArduPilot is not that interesting and we can leave it for the other time.
Wii and Arduino make MultiWii
Believe it or not, but it all began with a Nintendo Wii controller: Nunchuck. Why? It was the most obvious source of gyros in the early days. You pry open one Nintendo Nunchuck, get gyro out, connect it to Arduino, flash it with MultiWii and you have made you your very own DIY flight controller. Yeap, the "Wii" in MultiWii was taken from the Nintendo Wii itself. If DIY was not your thing, you always had the option of buying ready boards like KK for example.
MultiWii takes it to the STM32
MultiWii was great, but Arduino and its ATmega328 had many problems: slow, big, little memory and little flash for the code. Very soon Arduino was just not enough. Some guys started to scratch their heads and came out with an idea: let's rewrite MultiWii to work on those STM32F103 MCUs... this is how Baseflight and the first generation of STM32 flight controllers were born. Remember Naze32? Yeap, those were those times.
STM32F1 was so much better: more processing power, more RAM, more flash, more everything. Baseflight (MultiWii rewrite for STM32) was growing, getting new features, drones were flying better than ever before! The future was there. Almost...
The problem with Baseflight was its main author and maintainer. He came under the nickname of trollcop or timecop and, to take it mildly, he was a 100% douchebag! Google it out if you want some spicy details... After some debacle with another contributor called Hydra, Hydra took his toys, forked Baseflight and this is how Cleanflight was born!
All hail Hydra! Stop! I ment to say Cleanflight
Comparing to trollcop, Hydra was an angel and Cleanflight started to bloom! More contributors, more functions, more, more, more... STM32F3, SPracing F3. All those things happened when Cleanflight was the thing. But not everything was working as nicely and the official pictures showed. There were internal frictions and currents inside the Cleanflight community.
Some people (BorisB) wanted more rapid development for 5" multirotors. Some people (DigitalEntity) wanted more GPS and Navigation functions. Hydra wanted something else (I know what, but I will skip this part today). Before everybody understood what is happening, BorisB forked Cleanflight under the name of Betaflight with a promise to test new features before they would be merged back to Cleanflight, while DigitalEntity forked Cleanflight under the name of INAV to bring GPS and navigation for the people.
The trinity (?) - not sure the name fits, but sounds very cool
The schism became a fact and all 3 maintainers started to push their projects in different directions. Users got confused in the beginning but quickly learned that:
- if they want to fly 5" multirotors they should use Betaflight
- if they want to fly with GPS and navigation or on airplanes, they should go with INAV
And Cleanflight? Cleanflight and Hydra lost momentum, lost users and lost the market. And one point, to keep the brand alive (yeap, Cleanflight was a quite strong brand a few years ago) Hydra gave up independent development of CF and just reset it to Betaflight. Cleanflight became just a rebranded Betaflight and ultimately died somewhere in 2018.
Interesting times
And that would be the story of how MultiWii became Betaflight and INAV. It's not the full story tho. There are more flight controller projects that originated from MultiWii, CF or Betaflight. Most of them died, some of them are still around. Here is a shortlist with some spicy details if available
- Triflight that originated from Cleanflight (I think) to work with tricopters. Unfortunately for the project, people stopped flying tricopters and project died completely around 2017
- RaceFlight - this is a good one and brings a lot of drama. They concentrated on racing (hence the name) and got quite popular. Since it's hard to sell Open Source project was abandoned at one point but the name returned as RaceFlight One that was supposed to be 100% clean rewrite without any Open Source code inside. Turned out it was not, there was extra drama involved. Race Flight One lives now as FlightOne and recently popular Falco-X can be called it's descendant.
- ButterFlight. Oh, this one is also a good example of a drama... After the debacle of Race Flight One GPL violation, some people got together, abandoned different people and started a thing that was Helio Spring FC with a "special" coprocessor called IMU-F. They needed software to run their hardware and Betaflight had objections (and they had very good reasons to have them). Somebody forked Betaflight, called it a ButterFlight and dadam... we have a new contender. Unfortunately for the ButterFlight, two things happened. 1 - making a bunch of haters your core community is a very bad idea. 2 - the Helio got into legal and financial problems and finally went under. ButterFlight died soon after
- It would be the end of ButterFlight is not the fact that some people liked how ButterFlight was flying and had different ideas and visions than Betaflight devs and community. A guy nicknamed Quick Flash forked what was left of the ButterFlight code and called it EmuFlight. It's still quite new and let's see if it will be a success or not...
I'm Paweł Spychalski and I do things. Mainly software development, FPV drones and amateur cinematography. Here are my YouTube channels: