The heart and soul of a multi-rotor machine
In this issue we are going to take a look at the heart and soul of any multi-rotor craft; the flight controller board or FCB. I was originally going to do a round-up of the various controllers that are available in the market today in this month’s column, but before we do that, I thought that it would be best to start by describing exactly how these FCB’s work, and to give a little background history to help explain how these amazing little controllers came into being, and what it took to get them to the point where they are today.
Some of the earliest controllers for multi-rotor flight were developed from small MEMS gyros that were originally developed for RC helicopters. Several years ago, small MEMS gyros became available which allowed micro sized helicopters to maintain stability in the yaw axis. These gyros kept the tail pointing in the same direction when power changes were made, which allowed the pilot to concentrate on other things. Figure 1 shows a drawing of a single small gyro that can sense changes in rotation in the yaw axis of a model. Because the earliest gyros could only sense rotation in one plane, such as yaw in a helicopter, to be able to sense changes in pitch, roll and yaw necessary to stabilize a multi-rotor craft, you needed three gyros, each set up 90 degrees from the other two as shown in Figure 2. Some of the earliest multi-rotor models were controlled in this manner using home-brewed flight controllers along with some clever mixing in the transmitter. While this approach did work somewhat, it was crude and still required a huge workload on the part of the pilot to keep the craft stable in flight. What was needed was a way to automate the flight response and signals from these gyros, to take most of the work load off the pilot and make a craft that was much easier to fly.
Modern microprocessors are great at performing millions of calculations per second, and are a natural choice for reading sensor data from small gyros. Millions of little microprocessors are used every day in products such as hand-held calculators, coffee makers, televisions and even our cars so they are both plentiful and inexpensive. Back in 2005, the first Arduino project boards were made available which provided electronics students a simple compact way to write and develop programs to perform a multitude of different functions. The Arduino was a little computer prototyping platform that contained a small 8-bit microprocessor called the ATmega168, along with a few other input and output devices that allowed the Arduino to be connected to sensors and control other devices. These Arduino boards are still available today, and an example of one is shown next to a quarter for size reference in Figure 3.
A few years ago, a group of RC modelers started tinkering with these boards and began writing programs that would provide stabilization for model aircraft. About that same time a new video game system hit the market called the Nintendo Wii. The cool thing about the Wii was the fact that it used motion based hand-held controllers for the game instead of the usual joystick and push-button controllers that were common in most other games. When the Wii became so popular, many companies started creating after-market controllers for the game and this created a huge market of readily available and relatively cheap controllers.
These Wii controllers turned out to be very important in the development of multi-rotor flight controller boards. To be able to sense movement and acceleration, the Wii controllers contained MEMS gyros and accelerometers which could be removed and added to the Arduino project board and provide a way to sense changes in direction. People would purchase the Wii Nunchuk controllers from places like eBay, remove the little sensor boards from them, attach them to the Arduino, and then write the program needed to make it all work. The Arduino could be programmed to put out the control pulses needed to drive standard brushless motor speed controllers and voila, the first complete multi-rotor flight controller boards were born! We really owe a lot of thanks to these early developers of this technology that makes our multi-rotor flight possible today.
Open-source forums began to spring up around the world to allow all of the different developers to collaborate with one another and provide a forum to openly share their ideas and computer code. One of the largest communities of this type was the Multi-Wii project, which shared their ideas on forums such as RC Groups. This project used the Arduino processor board, along with the sensors from the Wii controllers to produce a useable FCB for multi-rotors.
In the beginning, every flight controller board was hand made and soldered together one at a time. Unfortunately, this lead to as many different variations in FCB’s as there were people making them. Later on, some members of the community that had access to PC board manufacturing equipment developed circuit boards called “Shields” that allowed modelers to simply solder on an Arduino board and the Wii sensors. These shields also had all of the pins for hooking up the connections to the radio receiver and speed controllers, which made for a much cleaner finished product. This allowed for a more
standardized controller board that could be easily duplicated by others, and required minimal soldering experience. Figure 4 shows one of these early Arduino shield type multi-rotor controller boards.
These early shield designs were a great improvement over the original FCB’s, but they still required soldering and knowledge of programming to make them operational. The final step of the process was for other enterprising individuals to make circuit boards that were completely dedicated to being multi-rotor controllers. These boards had all of the parts directly machine soldered onto a PC board, and were then pre-programmed with the required software so that they were ready to use when purchased by a modeler. A factory built FBC such as the Quadrino Zoom, shown in Figure 5, is an example of a finished product that is ready for use by the modeler.
Other flight controller boards were developed along similar paths, but with different microprocessors. The APM 1.0, APM 2.0 and APM 2.5 projects also developed as open source projects, but were developed using the more powerful ATmega2560 microprocessor. This processor has much more on-board memory, and more input-output channels, so it can run more sophisticated software and interface with more devices such as GPS antennas, Bluetooth modules and telemetry devices. The APM 2.0 board with integrated GPS antenna is shown in Figure 6.
Another processor that has been used successfully in flight controller boards is the STM32 processor from Cortex. These processors are based on a 32-bit operating system, which is significantly more powerful than the 8-bit system used in the Arduino based flight controllers, and opens the doors for even more computing power to be available for controlling multi-rotors. The open-source developed CopterControl board made by the OpenPilot project and the popular DJI NAZA controller, shown in Figure 7, are two examples of flight controllers based on the STM32 processor.
Regardless of the processor used, there are five basic types of sensors used in FCB’s today. The first and most basic sensors are the gyros. Gyros can sense rotational movement about an axis and are used for detecting changes in pitch, roll and yaw. Early MEMS gyros could only sense rotation in one axis, but more recently, sensors have been developed that combine 3-axis sensing into a single package. By themselves, gyros can correct for changes in pitch, roll and yaw but they cannot detect changes in direction fore and aft, side to side or up and down. Some of the early FCB’s such as the KK Multicopter board and the GAUI GU-344 were gyro-only controllers. These controllers will stabilize a multi-rotor but they lack the ability to self-level the machine. FCB’s that only have gyros are typically said to have three degrees of freedom.
To gain the ability to self-level the second type of sensor, accelerometers, are needed. Accelerometers can sense changes in movement fore and aft (the X-axis), side to side (the Y-axis) and up and down (the Z-axis). The beauty of these sensors is the fact that in addition to sensing changes in movement, they can also sense the force of gravity. When a craft is hovering straight and level, there would be no movement in the X and Y axis, but the Z-axis will show one G of force straight down. With this sensing ability, the FCB can determine if it is tilting one way or the other, and gives the craft the ability to know which way “up” is so that it can level itself when needed. FCB’s that have both gyros and accelerometers are said to have six degrees of freedom or 6-DOF. The Quadrino Basic and Hoverfly Sport are examples of 6-DOF flight controller boards.
The third type of sensor that is normally added to a FCB is a magnetometer. These devices can sense the variations in the magnetic field of the earth, and provide an electronic compass sensor to the FCB. With a magnetometer, the FCB can know which direction it is pointing and auto correct itself for slight drifting in the yaw axis. The craft can also fly in a straight line on a specific heading with a magnetometer installed. Most of the magnetometers used can sense variations of magnetic fields in the X, Y and Z axis, so when this sensor is added, the FCB has nine degrees of freedom or 9-DOF.
In most cases, when a magnetometer is added to a FCB, the fourth type of sensor is added at the same time. This fourth sensor is used to measure barometric pressure, which in turn can detect changes in altitude. As a craft gains altitude, the air gets thinner which causes a decrease in air pressure. The barometric pressure sensors available today are so sensitive that they can detect altitude changes as small as four inches! While these sensors are accurate in detecting altitude changes, this only holds true if the barometric pressure remains constant. If a cold front or warm front moves in and the barometric pressure changes during a flight, the output of a pressure sensor can become inaccurate. A flight controller board that has a full set of sensors which includes gyros, accelerometers, magnetometers and a barometric pressure sensor is said to have ten degrees of freedom or 10-DOF. FCB’s such as the Quadrino Zoom and DJI NAZA are examples of this type of controller.
The fifth type of sensor typically added to a FBC is a GPS antenna and receiver. With a GPS system added, in addition to all the previous sensing, the FCB knows exactly where it is on the planet in longitude and latitude as well as precise altitude that does not vary with changes in barometric pressure. The addition of a GPS system allows a multi-rotor to fly to exact points in space, maintain position even if a change in wind tries to blow it off course and maintain precise altitude during flight. Many GPS systems can even learn the exact position of where they took off from and if something happens to the radio system or the pilot becomes disoriented, the machine can be programmed to return home and auto land itself right back where it started from. FCB’s that add in GPS capability are normally said to have 13 degrees of freedom or 13-DOF capability. FCB’s such as the GAUI-INS, DJI WooKong and DJI NAZA-GPS are examples of this type of controller.
I must say that I am truly amazed at the sheer number of different multi-rotor flight controller boards that are now available. I did a quick check on the internet, and in less than 10 minutes, I found over 30 different flight controllers which are currently available for sale. The overwhelming majority of these flight controllers have been developed in the last year alone and it does not look like things are going to slow down any time in the near future. We are at a truly unique point in history when all of the components needed to produce a precise flight controller board are readily available and inexpensive enough to produce functional FCB’s for as little as $25.00. It will be very interesting to see what new developments occur over the next year in the field of multi-rotor flight controller boards.
Next time we will take a look at a round-up of several of the FCB’s that are currently available today, and look at the different features, programming interfaces and capabilities of each one. ∞