So I decided to build a quadcopter recently, which turned out to be almost as much fun as flying it, and I got to get reacquainted with the smell of burning solder flux. A key component of a quadcopter (or any multirotor) is the “flight controller”, which takes the inputs from the receiver along with the readings from the onboard gyroscope and accelerometer and determines the correct speed for each of the motors to be running at in order to keep the craft stable in the air. The more fancy flight controllers have things like GPS and compasses to remove even more work from the pilot.
It turns out that a lot of the flight controllers about are based on the Atmel AVR series of microcontrollers, the same ones used by Arduinos. As always, “the community” has been keen to come out with improved and alternative firmware for the various controllers. I chose the KK2.1.5 for my build, which was no exception to this rule.