Droning On: Choosing A Flight Controller

do4 The flight controller is the nerve center of a drone. Drone flight control systems are many and varied. From GPS enabled autopilot systems flown via two way telemetry links to basic stabilization systems using hobby grade radio control hardware, there is an open source project for you.

Modern drone flight controllers can trace their roots back to R/C helicopters. Historically, R/C planes were controlled directly by the pilot’s radio. Helicopters added a new wrinkle to the mix: tail rotors. Helicopters use their tail (or anti-torque) rotor to counteract the torque of the main rotor attempting to spin the entire helicopter’s body. It all works great when the helicopter is hovering, but what about when the pilot throttles up to fly out? As the pilot throttles up, the torque increases, which causes the entire helicopter to do a pirouette or two, until the torque levels out again. The effect has caused more than one beginner pilot to come nose to nose with their R/C heli.

The solution to this problem was gyroscopes, heavy brass spinning weights that tilted in response to the helicopter’s motion. A hall effect sensor would detect that tilt and command the tail rotor to counteract the helicopter’s rotation. As the years wore on, mechanical gyros were replaced by solid state MEMS gyros. Microcontrollers entered the picture and brought with them advanced processing techniques. Heading hold gyros were then introduced. Whereas older “rate only” gyros would drift, weathervane, and wiggle, heading hold gyros would lock down the helicopter’s nose until the pilot commanded a turn. These single axis flight controllers were quickly adopted by the R/C helicopter community.

Today’s flight control systems have many sensors available to them – GPS, barometric pressure sensors, airspeed sensors, the list goes on. The major contributors to the flight calculations are still the gyros, coupled with accelerometers. As the name implies, accelerometers measure acceleration – be it due to gravity, a high G turn, or stopping force. Accelerometers aren’t enough though – An accelerometer in free fall will measure 0 G’s. Turning forces will confuse a system trying to operate solely on accelerometer data. That’s where gyros come in. Gyros measure rate of rotation about an axis. Just as our helicopter example above covered yaw, gyros can be used to measure pitch and roll of an aircraft. A great comparison of gyros and accelerometers is presented in this video from InvenSense.

Stay with us after the break for a tour of available flight controllers and what each adds to the mix. 1024px-Flight_dynamics_with_textInertial Measurement Units (IMU) are devices which read these sensors and execute sensor fusion algorithms to determine current position and attitude. Just about every full scale aircraft produced today has some form of IMU inside it. Even your smartphone can act as an IMU. Give an IMU the ability the control the platform it’s riding on, and you have a flight controller. So how does a flight controller take data from gyros, accelerometers, and other sensors, convert it into a stable flight platform? The answer is in some clever mathematics and software. The core of most flight controllers is a software algorithm called a Proportional Integral Derivative (PID) control loop. PID loops and their tuning is such an important topic that I’m going to dedicate an entire column to it, so if you’re having trouble getting your aircraft stabilized, sit tight, help is on the way! Choosing a flight controller There are a number of popular flight controllers used today. Deciding which one is right for your needs can be a tough choice.  We’re covering open source flight controllers here, but I would be lax if I didn’t mention the commercial offerings. The DJI Naza controller is the preeminent commercial control system available. Many professional and hobbyist pilots use this system on a daily basis. Naza gives basic flight control, attitude hold, and return home functionality with a simple interface. Naza isn’t perfect, though. One issue is GPS based flight rejection – DJI autopilot systems will not allow flights over the Forbidden City in China. Undoubtedly this is due to requests by the Chinese government. However, the closed source nature of the system makes one wonder what other “features” might be hiding in the code. The “Big Four” in flight control systems seem to be The KKmulticopter, The Multiwiicopter, The Pixhawk, and the OpenPilot. 54299s7(1)

KK Multicopter

The KK board was designed by Rolf R. Bakke, aka KapteinKuk. The most popular form of the KK board seems to be the HobbyKing KK multicopter board, currently at version 2.1.5 if you can find it in stock. The KK2.1 boards are based upon an Atmel ATmega644PA processor and an InvenSense MPU-6050.The 6050 is an interesting chip in that it not only includes 3 gyros and 3 accelerometers, but also a microcontroller dedicated to handling the sensor output. This takes some of the load off the Atmel chip. There is still quite a bit of work to be done for an 8 bit micro, and Rolf speeds up the process by writing the entire firmware in assembly code. The double edged sword here is that the assembly code limits the number of developers in the project. The interface side of KK board is simple. A small graphical LCD and 4 buttons allow the user to program parameters. KK’s flight control algorithms only use P and I, there is no D on the KK board. There doesn’t appear to be an official website for the KK board, but information (and the latest source) can be found on the RCgroups megathread.  The KK board can be thought of as a bit of a gateway drug. It’s low cost, easy to set up, and it gets the job done. You don’t need a computer to set it up, everything is on the board mounted LCD. The KK board isn’t a standout performer for any of the common drone types, but if you just want to get out there and have a good flight, it’s plenty good. mwc

MultiWii Pro

Next up is the MultiWii. MultiWii’s name comes from its original sensors. The first revision of the MultiWii was designed to use the Nintendo Wii Nunchuck gyros and accelerometers, as they were cheap and easily available worldwide. Things have changed quite a bit since then. The current MultiWii board, MultiWii Pro (MWP) sports a host of sensor upgrades. The MWP board is based upon the Arduino and utilizes an ATmega2560 processor. Software is written in Arduino’s native wiring language, using everyone’s favorite processing based IDE. The board’s current sensor suite is extensive. In addition to the usual gyros and accelerometers, it has a barometer, magnetometer (compass), and an optional GPS. MultiWii also allows for a number of configuration methods. Off board LCD and OLED displays can be connected for field configuration. A full GUI config program is available via the on-board USB port or a Bluetooth daughterboard. MultiWii’s source is hosted on their Google Code page, though there is a Github mirror for you git fans. MultiWii is quite capable of stabilizing an R/C style airplane, helicopter, or multicopter. The board is on the cusp of being a full-fledged autopilot. It’s not as slick as the APM, partly due to the fact that there isn’t a well funded corporate entity driving development in one direction or another. The core developers are active though, which makes this a good board to watch. APM2

Mega 2 (APM2)

The APM is an open source project from 3DRobotics. It began life as the Ardupilot, a fixed wing flight control system based on the Arduino. The project quickly grew to include rovers, helicopters, and multicopters. While the project is still compatible with the Arduino IDE, the dev site gives tutorials for using Visual Studio on Windows, as well as the ‘make’ command in a Linux environment. The current hardware is the APM2.6, which utilizes an ATmega2560 for the main processor. An ATmega32u4 handles USB functionality. The InvenSense MPU-6000 handles gyro and accelerometer duties. The APM2 has an onboard barometric sensor. Interfaces for off-board GPS and magnetometer/compass modules are provided. APM and Pixhawk use similar software builds, so check the Pixhawk below for more information. pixhawk


APM2 codebase has grown in complexity so much that they’re running out of memory and processing horsepower on their 8 bit ATmega2560. 3DRobotics obviously needed a newer platform with room for further growth. They chose to build upon the hardware platform of the PX4 project. PX4 started in 2009, and current development is based at Swiss Federal Institute of Technology. 3DRobotics ported the APM code to the Px4, and rolled their own version of the hardware called Pixhawk. Pixhawk uses the STM32F427 processor, which is a 32 bit ARM Cortex M4 core with onboard FPU. 3Drobotics also uses a real-time operating system. NuttX is a free open source RTOS. Designed from the ground up as an RTOS, NuttX is much lighter than Linux or other operating systems. It could be compared to VxWorks or other industrial/aerospace RTOS’s. The Pixhawk includes gyros, accelerometers, barometer, GPS, magnetometer/compass, and telemetry. It also has a MicroSD card slot for data logs, which can make things much easier when looking for help online. PixHawk and APM2 both use GUI based Mission software for configuration. They can also operate as full autopilots, with waypoint based missions. On the source side, Pixhawk has a large active developer community behind it. The source is available on the DIYdrones Github.  3DRobotics definitely has a feature advantage here. They have the resources to implement lots of software features, build molded cases, and complete products. Their IRIS drone is possibly the first fully autonomous drone on the commercial market.

OpenPilot CC3D/Revolution


openpilot-revolution-kickstarter OpenPilot is another long time flight controller project. Currently supporting two platforms, the CopterControl 3D (CC3D), and their new flagship board, the Revolution (Revo). The CC3D uses a STM32F103 Arm Cortex M3, and a suite of both gyros and accelerometers. Thanks in part to the current mini FPV craze, the CC3D board is still seeing quite a bit of popularity. This has caused quite a few derivative boards to pop up, such as the Lumenier edition and the Acro Naze32. These boards seem to be very good in the “turn and burn” flight style of small FPV multicopters. The Openpilot project is moving to their new board, the Revolution. The Revo uses a STM32F405RGT6 32bit ARM Cortex M4 processor. Revo uses the InvenSense MPU6000 accelerometer/ gyro chip, along with a barometric pressure sensor, and magnetometer. Revo also supports telemetry and GPS. Both CC3D and Revo are configured using GUI based Ground control software. Source code is available on the OpenPilot’s git server. OpenPilot has had some team turnover issues, but they’re making great progress now. The Revo includes some advanced features, like an onboard telemetry radio. Coupled with the current codebase’s ability to handle high speed maneuvers on small, agile multicopters, this board has a bright future.

 Advice When Choosing a Controller

All these flight controllers are quite capable. Deciding which to use in your drone depends on the flight characteristics, and the style of flying you’re looking for. Being open source projects, there are derivative boards and low-cost clones available for all of them. Beware of the lowest cost clones. Some of them are great, but others are sub-par to say the least. Sometimes saving a few dollars means lower quality components and assembly. Nothing is worse than seeing hundreds of dollars and hours of effort fall out of the sky because of a cracked solder joint or a bad capacitor.

Hackaday Testbed Update

The parts are finally here and the build has begun! If you want to follow my progress on the Hackaday Drone Testbed, a quadcopter which will be used to test some of these flight controllers, head on over to the Hackaday.io project page! That’s about it for this edition. Until next time, keep Droning On! [Title image by Joergens.mi/Wikipedia]

60 thoughts on “Droning On: Choosing A Flight Controller

    1. Actually, many people do know about them. It seems most minis these days are using the Naze32. I plan on putting one in my mini tricopter. Most APM and Multiwii boards are the larger 50x50mm form factor. Only a few boards right now in that 30x30mm form factor that the mini pilots are looking for.
      For my larger tricopter I am using a RCTimer Crius V2 with MegapirateNG firmware. The default firmware for the Crius is MultiWii based. MPNG is a port of APM. I am going with APM because there is a Teensy 3.1 mod out there to convert the telemetry data of APM to FrSky X series telemetry. Several MultiWii ports support FrSky D series telemetry, like the one in the Naze32. Hence why I am going to use the Naze32 on my mini tricopter, I will get a FrSky 4ch D series Rx. I have the FrSky Taranis Tx.

      1. Sirpoonga, have you found the multiwii firmware less than ideal for a tricopter and has the megapirate helped? I get a lot of tail servo oscillations with multiwii and I’m looking for a fix. Not sure if it’s a hardware it firmware issue.

  1. Autoquad seems to be missing, too. It appears to be one of the most stable platforms when it comes to mission flight. I’m playing around with one at this very moment and so far I am really impressed, compared to multiwii and even the Naza. I’ll probably try my first autonomous mission today.

  2. Under open pilot: “This has caused quite a few derivative boards to pop up, such as[…]the Acro Naze32.”

    The Naze32 runs baseflight, a “32 bit fork of the MultiWii RC flight controller firmware”
    https://github.com/multiwii/baseflight – I think some people have gotten open pilot running on them, but it’s certainly not the normal way of using the naze.

    I ran a workshop at the vancouver hackspace using a hobbyking multiwii board, and it needs mentioning that the multiwii desktop software is pretty horrific.

  3. Is this about right?
    APM 1.X based on ATMega1280
    APM 2.x is an ATMEGA2560 and ATMEGA32U-2 (for USB) based platform
    ArduPilot Mega (APM) 2.6 running Arducopter 3.0.1 firmware .
    AIOP All In One Pro Flight Controller V2 running MegaPirateNG (MP NewGen) and MultiWii firmware for UAV capabilities
    APM 3.x : future ARM based Arducopter version

    dsPIC Based Platforms:
    AutoPilot UDB5 UAV Development board with IMU, running MatrixPilot firmware
    AUAV3 running MatrixPilot firmware
    Gluonpilot2 (dsPIC33) with Xbee running GluonPilot firmware

    STM32F1 ARM Cortex M3 Based Platforms:
    MultiPilot32 hardware with ArduIMU+V3 Shield, running Arducopter32 firmware (i.e. 32 bit version Arducopter 2.x)
    Naze32 running MultiWII firmware

    STM32F4 ARM Cortex M4 Based Platforms
    PX4 running PX4 firmware, and also Arducopter32/APM2.6 via ATMega emulation
    VR-Brain (MP32F4 v4) running Arducopter32 firmware, and possibly in the future PX4 firmware
    OpenPilot running OpenPilot GPS/GCS software
    AeroQuad32/Baloo running LibMaple firmware
    Quadrino hardware running MultiWII firmware

    ArduPirates SuperStable, Arducopter NG, Ardupirates NG, etc)? Paparazzi / Eva?

    Is the MultiPilot32 the only one that uses an external IMU Shield / FreeIMU while all the others don’t mention IMU / OilPan because it’s built into the main FCB?

    Why do some software packages (OpenPilot, Gluonpilot2, PX4) not run on platforms of similar hardware? These incidentally don’t run software from other platforms either.. why?!

    Will most Ground Station software work with any platform? (AndroPilot, HappyKillMore, etc)

    Would most all frame work with any platform above? For example, the popular frames seem to be X, H, Stretched-X, either 4, 6, 8 motors, but will any of these work regardless of the controller board / software? Is there a sturdy one that is recommended for newbies?

    Would most Radios work with any platform / frame above? PPM-Sum, Fry-Sky on a Futaba, Graupner MX-16?

    What’s recommended to see real-time video from the uav (either via goggles or pc)?

  4. From what I read on APM and PX4 forums I don’t think that the APM is really utilizing NuttX. The APM is just running in one thread! Please correct me if I’m wrong.

    I also have a really strong hunch that Pixhawk (HW) was developed as part of PX4 autopilot project and not by 3DR!! as the Pixhawk is direct descendant of PX4FMU + PX4IO boards. PX4 autopilot is also SW primarily meant to be run on Pixhawk. APM was just ported for the board.

    It may be little confusing since Pixhawk is much more frequently combined with APM than with PX4 sw. Once I witnessed somebody asking about APM related problems on PX4 autopilot forums. The newcomer got there via Pixhawk’s mainpage http://pixhawk.org which is actually part of PX4 autopilot website. He was politely redirected to APM webpage.

    1. @Gramp, APM (ie. ardupilot) does use NuttX. It runs in 4 main threads, plus a bunch of lower level “soft interrupt” tasks for sensor drivers.
      Pixhawk was developed as a cooperative project between the PX4 project, 3DR and the ardupilot project. I’m the lead developer on the ardupilot side of things, and I also maintain the plane and rover ports. There is a lot of common code between the PX4 “native” stack and ardupilot and a lot of cooperation between the various projects.
      Cheers, Tridge

      1. @Andrew, thank you for clarifying it. I haven’t expected much cooperation between the projects.
        Nice to know that Ardupilot really use NuttX. NuttX is IMO really beautiful OS (having VFS, unix like devices/drivers system, POSIX-like APIs while still being very simple and it has wonderful CM4/3 support).

  5. I was the one who commented in the previous article.
    It seems to have spawned the comment in this article about team turnover. From what I understand, again reading over a few of the public statements during the team turnover, it appears that most of the former OpenPilot teams are now TauLabs.

    I also agree that this list is far from comprehensive. I would like to see AeroQuad added to the list. Some of the Tau Labs boards would be great to see like Quanton – http://www.quantec-networks.de/shop/en/quanton/1/quanton-flight-control-rev.-1 What about naze32? Or the generic KK board from HobbyKing?

    Much has been left wanting.

    1. > it appears that most of the former OpenPilot teams are now TauLabs

      This is false, HostileLabs is a fork of Openpilot with a couple of the old openpilot devs that caused a lot of drama and to this day continue down that negative path, from experience with both groups, the openpilot project improved dramatically once they left.

      I owned a Quanton, like you I bought in to the Taulabs BS initially, it’s garbage, overpriced and the guy behind it is toxic as are all the taulabs people I have had the displeasure to deal with.

      1. Tim had been spreading a lot of misinformation about Tau Labs. It is true that TL is a fork of OP and if you look at the commit history, you will find that the majority of the OP code has been written by people who are now with TL.

        Ask yourself these questions: First, the OP project claims to be a nonprofit. Does this make sense? They have a substantial revenue stream from the sale of their products and unless they operate extremely inefficiently, they will definitely make a substantial profit. Second, the OP project claims to be “open”. Is this the case? Other than CC3D all their hardware is closed and they have now also released a closed version of CC3D (aka OP Atom) at a higher price. Third, ever wonder why you never find anything negative on the OP forums? It’s because negative posts get deleted and the user who post them get banned.

        TL on the other hand does not sell hardware and does not make any profit. It only includes boards that are open hardware. At the same time, it officially allows other to maintain a fork if they want to run TL on closed hardware. It’s not like that the permission to do so is actually needed; the GPL license allows anyone to fork a GPL project and to whatever they want with the code as long as they follow the GPL.

      2. But they canceled the Openbilot GCS and now have this NOT-SOUNDING GOOD “Librepilot” that do not even have official Firware versions.
        Setting up a vehicle with that sure is FAST. You can get the package in the morning and fly your drone after lunch, including downloading the GCS.

  6. Hey guys,

    We have an open source framework for programming drones based on Android.
    We will provide full sdk with high-level functions, simulator for testing your apps and maybe some computer vision in version 1.0
    Hopefully will secure seed funding in the following month and fully commit.
    Will be happy to hear some feedback.

  7. I can’t recommend the Pixhawk, I have one that I’ve been trying to get working for weeks without any success. What they don’t really make clear is the boards don’t come with any software so you have to depend on shareware that tends to be flaky and unreliable. I’ve tried Qgroundcontrol that is recommended by Pixhawk and both Mission Planner and
    APM Planner 2.0 that are available from 3D Robotics who sells the PX4 and none of them will work to program firmware on the board to make it work as a copter. I did manage to get Mission Planner to configure the PX4 as a Plane once but when I try to set it up as a copter the program always crashes! I also tried 2 versions of APM Planner 2.0 for Ubuntu and neither one will even run!

    1. @Steve, thousands of people use the Pixhawk with copter, so I think itis reasonable to assume there is something about your setup that is making it not work.
      One wild guess given you run Ubuntu is perhaps you have modemmanager installed? It installs by default on Ubuntu desktop builds and it assumes any serial device you plug in must be a modem. So when you plug a Pixhawk in modemmanager automatically tries to send Hayes AT commands to the Pixhawk, which screws up firmware loading and connecting with ground station software.
      Check in your package manager if you have modemmanager installed, and if you do then uninstall it. The age of dialup modems is long gone, but the ghosts are still causing trouble :-)
      Cheers, Tridge

      1. Saying that thousands of people use the Pixhawk with a copter doesn’t help any since it don’t work for me. I find it hard to believe anyone uses it since their programs are all rubbish! When I first tried Qgroundcontrol in Windows it wouldn’t even run! I found Issue 810 on Github which has a work around of installing Qt which is a huge platform like Microsoft’s .net that it depends on. After I installed Qt the program would start up but didn’t have any of the features needed for things like uploading the firmware! Since nobody else was addressing the problem I had to file a new Issue, No. 822, to get the missing functions replaced! The 3rd version of Qground that runs is very flaky and unreliable, when it doesn’t crash it has dozens of different errors every time I try it and both Mission Planner and APM Planner 2.0 are just as bad!
        Do you know if there are any directions for getting APM Planner to run in Linux? Since none of the Windows versions will work to upload firmware to the PX4 as a copter I thought I’d try Ubuntu but one version doesn’t even install and the one that does won’t run. Since neither version of APM Planner 2.0 will run in Linux I don’t think it matters if modemmanager is installed or not at this point.
        I looked for a video on Youtube of someone building a copter with the PX4 to see if they could get it to work but couldn’t find any and it looks like the build project here hasn’t had any progress for several months either.

        1. Steve, I have to disagree with you on the Pixhawk. I flown it, flashed the firmware, and run it with radio telemetry through Mission planner and APM planner (On windows 7)
          I’ve had no problems with it thus far, and it’s an incredibly stable platform in the air.
          Is it possible that you have either a compatibility problem with your PC, or even a bad Pixhawk?
          The folks to ask are the 3Drobotics people themselves, and the community over on DIYdrones. From what I’ve seen, they’ve been very helpful with any issues.

          1. Adam & Andrew, I’m trying to run this in Linux since Windows versions won’t work.
            First I tried Linux Mint which I prefer and got the message “Command Not Found”.
            Switched to Ubuntu, typed apmplanner2 and it just has lots of errors.
            It actually started up but when I tried the Firmware Upload got error message of No Permission, perform “Sudo Adduser (username) dialout”.
            Did that and tried Firmware Upload again, program freezes with Download=0% and aborts when I click Cancel.
            Got a lot of errors in Terminal window saying:
            Qobject::Connect: Cannot queue arguments of type ‘Qtestcursor’
            Error=Unable to open port “permission denied””ttyACM0”

            So far this is even worse that the Windows version! There’s nothing stable about this at all and it won’t even run so I doubt anyone is actually using it!

            On Github I got this message from Don Gagne who is trying to fix Qgroundcontrol and get it working after 2 previous “fixes” haven’t worked:
            “It looks like one problem is that on Windows (only?) QObject::connect is not using a Qt::QueuedConnection when the emitter and receiver are on different threads, and instead calling the signal direct which in turn causes a assert/crash. Need to build my own Qt5 windows debug version to trace through the Qt code. Possible cause is an unregistered MetaType. But I’m not seeing any debug output to that affect. What fun!”

            They aren’t any help on forums like DIYdrones since they can’t fix all the program problems and bugs. I either get not reply at all or lots of hateful messages from the fanboys with the same silly comments like “thousands of people use the Pixhawk…”

            So far I have no proof that Pixhawk even works and I haven’t had any success after weeks of trying. I’m about to give up and throw this thing in the trash! If you guys were able to get it to work I’d really like to know how you did it? Can one of you post a Youtube video showing it actually being setup? Thanks.

          2. Finally got the Linux version of APM to run by running it as Root to get rid of all the error messages. After it runs it’s no better than the Windows version though, that is it can’t configure the PX4 as a copter, just a Plane. Even then, when I connect to it as a Plane I don’t get any flight data. Mission Planner could at least read flight data. Also, APM doesn’t seem to have any useful error messages or ever check the connection status of the link because I can unplug the USB cable and doesn’t make any difference to the program! Who would write a ground control program that can’t even tell if it’s connected to the craft that it’s supposed to be contolling? I’m giving up on both Windows and Linux versions of APM since it’s totally useless and just a waste of time to try and use it at all! Maybe the software guys on Github can eventually get Qground to run, we can only hope.

  8. Has anyone ever done a head to head comparison of all these controller boards? It would be great to find out how they compare with each other. What do you guys think of the KK2.1? I’m thinking of getting one of those since it doesn’t need a pc to program it like the worthless PX4.

    1. Steve, I know all this was 6 years ago but I have to point out, that you were told what your problem is and you ignored it….. One wild guess given you run Ubuntu is perhaps you have modemmanager installed? and the reason is that you answered the problem with with your reply and that is…. It actually started up but when I tried the Firmware Upload got error message of No Permission, perform “Sudo Adduser (username) dialout” that word dialout is some software regarding a dial up modem. I had been running both the APM2.5 and the APM2.8 and also 2 Pixhawks and they were the best FC compared to cc3d and multiwii boards

  9. The 3rd “fixed” new release of Qgroundcontrol after Qt was updated from ver. 4 to 5 and screwed everything up actually sort of works now! I was able to configure the PX4 as a quadcopter which I was never able to do before! It still has a lot of errors and freezes sometimes but is starting to show some promise. Both the Windows and Linux versions of APM Planner and Mission Planner still won’t work and their owners are continuing to deny that anything is wrong so they may never be fixed.

    1. I’m still not sure why you’re having issues with Pixhawk. I’ve had no problems connecting via USB or telemetry to APM planner or Mission Planner. Again, I’d say to talk to the folks at DIY drones. If you’re using a Pixhawk from 3Drobotics, drop them a message.

      1. I’m having problems because NONE of the ground control programs work anymore! I guess they used to work sometime in the past but I just started this last month so I don’t know the history and the old versions are no longer available. Like I said the software folks at Github are trying to fix Qground after updating Qt screwed up everything but the other programs that also depend on Qt are never going to work again until they also get fixed. It’s no good talking to anyone on DIY drones since they don’t want to discuss problems with the program and won’t even admit that it needs to be fixed. APM Planner, which uses Qt can’t configure the PX4 for any sort of craft and Mission Control can only do it as a plane but I’m not sure if it uses Qt also or has other problems.

        1. Sounds like you have an isolated issue on your end. The latest versions of the APM and Mission Planner are working fine here, and working for hundreds, if not thousands of others. Try to find someone local to walk you through the process in person – Possibly a local hackerspace could help. Good luck Steve!

          1. No problem on my end except bad software! I know it’s not an isolated issue or the software guys at Github wouldn’t still be working on trying to get it running after 2 weeks! When I first tried Qground it wouldn’t even run in Windows. Issue 810 on Github said a work around was to first install Qt to make it work. That got it running except then it didn’t have any features like Firmware Update. I had to join Github and file a new Issue, #822 to get features added back. It still wouldn’t work though, had lots of errors and crashed all the time and they said the problems were caused by going from Qt 4 to Qt 5 so there are now more Issues. APM Planner also uses Qt but they refuse to fix it so it will never work again unless they finally come around. I’m not sure if MP uses Qt but it has similar problems and can only configure the PX4 as a plane but not any sort of copters. As long as they finally get one program out of 3 to work that’s all I need though. I’m not a programmer so I’m not sure what they mean but here are some of the problems they are working on to get it working again:

            “UDPLink runs in different thread, creating child Socket inside itself. Internal to Socket another object is created with parent set to Socket.
            Firmware Scan closes all links. Which ends up deleting UDPLink object on main thread. This works it’s way down to the child object of Socket which gets deleted.
            Part of the process of delete a child QObject is to notify the parent. This is done by sending an event.
            This send event happens on the main thread, instead of the UDPLInk thread.
            Solution: A number of the link interface APIs need to be moved to signals so that they get queued and are run on the right thread.

  10. Hi , I’m building an obstacle avoidance quadcopter for my Engineering project and I need a flight controller that I can tweak the source code and add sensor like IR or Sonar to it . What do you advice me >>

    1. MultiWii and Naze32 both have support for sonar input, as have the Arduino-based ones too. I’ve only seen one guy on Youtube use it for altitude hold with quad racing in mind – you don’t need to tilt the quad forward to make it go fast. Seems to work fine :)

    1. On Hak5, when they build a quadcopter using Paparrazi is looked like a good option but don’t seem to get much support from the fan boys who are rabid about the others such as APM Planner and Mission Planner even though those programs don’t even work. I would guess the problem is lack of advertising. Pixhawk recommends QGC on their website while 3DRobotics recommends Mission Planner and APM Planner. Since those programs don’t work customers are eventually going to stop buying products from 3DR unless they either put pressure on the software programmers to fix the programs or maybe switch to Paparrazi in order to come up with usable software.

  11. Good News, Qgroundcontrol is Working again, mostly!
    It’s been a long hard 4 months but we have finally got Qgroundcontrol working! It started out not even being able to run at all and now it works pretty well, without crashing, and can actually configure the PX4 as a Quadcopter for the first time! I’m not sure I’d trust it to fly an expensive Quadcopter at this point but the program can upload firmware to the PX4 and lets the remote be configured and calibrate the sensors, then it is able to go into flight mode and display the data.
    All the software programming work was actually done by Don Gagne and others on Github and all I did was download each new release and test it but I’ve tested over 2 dozen versions now and reported back the problems. Not everyone knows this but they actually release a new update of the program on Github almost every single day! That’s a lot of programs to download, install and test! In the release dated 11-23-14 the user interface was changed quite a bit so the program looks different now but it actually is easier to use in my opinion. At this point I would say that anyone who hasn’t tried QGC lately or tried it a few months ago when it wouldn’t work should try it again now and you will be surprised. I’m sad to say that Mission Planner and APM Planner still won’t work because the ones in charge of maintaining them refuse to do any work to fix the problems so both programs are still worthless at this time.

      1. Unbelieve, yes some have said it works for them but only on Planes so it depends on what hardware you have. On my PX4 it can only program it to work as a Plane but won’t work as any sort of copter or even a car or truck! Fortunately I was able to wait until they got enough of the bugs fixed in Qgroundcontrol that it works again so I can use that.

        1. Reading threw the entire set of post’s its clear. you have an isolated issue do mainly to forcefully constraining computer operating systems to linux. A lack of comprehension is also very apparent in your post’s. I my self only use linux and have a dual boot laptop just for compatibility options but there are very few windows only applications I use personally (netbook). As an operating system my opinion windows is now a joke, very slow and crashes far to easy. It had its day but that day has set ;) .
          Now for an example a poster said “The age of dialup modems is long gone” with a description of some software in linux that will cause issues for what your trying to do. And this was done long before you added a post with a description of some of the errors you have had. “Permission, perform “Sudo Adduser (username) dialout” well thats the VERY thing that the other poster warned about. DIALUP serial protocols and function.
          I am building a new quad using the pixhawk that is a marine grade waterproof copter and so far its been a dream to program the device for the intended use.
          I do not enjoy reading such negative post’s, If it is now working for you GREAT. But in the future follow the manufacture suggested setup and everything will work fine right off the bat.

          1. saltywaterpvcquad you are a moron or you are off your meds! Since Qgroundcontrol wouldn’t even run at first and it took them 6 months last year to fix all the bugs and get it running that’s not an isolated issue! If you can’t understand the posts and make intelligent replies you shouldn’t be on the internet. Does your mom know you are using the computer without permission? Maybe you should go outside and play!

  12. I’m surprised nobody mentioned anything from Eagle Tree.
    I use a vector with and without OSD and it is super easy to setup and supports gps rth 3d hold 2d hold. This is a closed system but super well designed.

  13. Great article. Thanks for posting this!

    We are looking to develop an automatic fault detection algorithm that will autonomously control some of the degrees of freedom (i.e. rotation) in the event that the quad loses a propeller (or motor). Therefore, the algorithm will stabilize the quad to a neutral position for a safe landing under faulty conditions instead of crashing.

    Do you recommend any of these Flight Controllers that will allow customization of the flight software for this kind of emergency case scenarios? The OpenPilot REVO seems to be a good choice though.

    1. I have a similar use case (need to modify the flight controller to perform additional calculations to pick a landing site with high precision). Did you make a choice between OpenPilot and ArduPilot?

  14. Thanks Adam, a great thread,
    Does anyone have any experience with the Erle-Brain2 Flight Controller?. I am tempted after seeing Land Rover / Royal Geographic’s “Trail by Fire” team using it with to pilot a Turbo Ace matrix, packing gas spectrometers, to survey volcanoes in Chile. I want an autopilot but also keen to experiment with collecting data on my flights (urban heat and pollution). The Manifold and DJI Matrix set up looks great, but way above my budget.

    1. I think that mainly is based on the quality of the gyroscope or the digital compass, since you are building quite a big one.
      I personally favour the Pixhawk and the CC3D (CC3D really easy to set up with a GCS but only 6 channels), Pixhawk may offer better stability and a lot of ports but can be quite a pain in the butt to set up, and their GCS also a pain to navigate. Naza? Man suck that. You cannot use it unless you put it onto a Windows 7 Professional, and even that sometimes do not work. Total trash. (I threw my Naza lite away and picked CC3D for my small drone and Pixhawk /APM for the big ones.)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.