Now that I have purchased my first parts, it is time I get acquainted with the software my CRIUS SE MultiWii controller board is running. As the name of the board implies it will be running MultiWii, an open source flight controller software. You may be wondering if the “Wii” part of the name has anything to do with the Nintendo Wii and yes it does. MultiWii was originally designed for people who did not want to purchase expensive flight controllers but rather build their own using an Arduino (usually a Nano or Mini). However, a flight controller needs more than a processor, it needs sensors, and this is where the Wii comes in. At the time, the cheapest and easiest way to acquire an accelerometer and or gyroscope was to purchase the various Wii remotes and remove their sensors. Thus, although several manufacturers are now producing complete controllers such as mine, the MultiWii code remains true to it’s original purpose allowing the construction of a controller from almost any combination of parts.
Now that I’ve finished with the history, we can move on to the actual use of MultiWii.
The portion of the MultiWii code that runs on the actual controller board is written in the Arduino IDE (integrated development environment). I have looked through most of the code, but cannot claim to completely understand it. What I do know is that under various layers of code lies a PID (proportional, integral, and derivative) algorithm that takes user commands and sensor data and makes a decision on how power should be applied to the motors to achieve the movement (or lack of) the pilot wants.
The other half of the MultiWii code is the configuration program written in the Processing language (which compiles to a Java executable). It allows for PID tuning and sensor calibration without having to re-flash the controller as well as live telemetry data and system operation. In the future when I have more experience with it I will post more about tuning, but in the mean time here is a screenshot of my current settings on the hex: