APM Flight Controller – Notes


Introduction

This started mid May-2016, as a place to make random notes, that may be better organized at a later date.

It looks like for on-going development that APM has been superseded (by Pixhawk ???).  IMO it’s all getting too complicated with 3DR, DIY-Drones etc.  I’m not interested in the companies and politics; these change over time.

As with all community and open source projects, information is spread about, confusing, conflicting, incomplete etc.  The following is not necessarily accurate but is here just to try and make some sense of it all for getting started.

Brief APM Summary

Operating APM using Linux is not really practical.  The available PC software is a problem and building APM firmware requires a modified version of Arduino. Therefore Windows is required.  IMO unless you run Windows and don’t mind staying up to date with the latest software and firmware, APM in its standard form is not a good choice for a long term supported (say 5 years) basic flight controller.

As a flight controller for FPV and camera machines, the APM hardware is more than capable.  It is functional, low-cost and apparently reliable when properly installed and set up.

I think it is unfortunate that APM has become too complex a project, requiring special tools to build and connection to web resources to be usable.

Brief GCS Summary

Unfortunately the APM is let down by the GCS and configuration software. The popular and most functional packages rely on on-line resources to operate. This is great when it’s all new and shiny but once it goes out of support or even out of sync. the whole package is broken.

In many ways I prefer the simplicity of Multi-Wii.  You edit a file, compile it, upload to the controller and fly. Minor changes are made using a simple Android App or self stand-alone GCS.

I am running Kubuntu Linux (32-bit), and have no intention of changing.  I will have to set up another 64-bit Kubuntu machine if I want to test the latest versions of these GCS programs.

Mission Planner

I prefer this UI. But installed using Mono, parts do not work and it is unreliable.  Uploading firmware to the APM works.  Relies on on-line resources to work.  Not Recommended.

APM Planner 2

The latest builds require 64-bit so I could only run to 2.0.18.  Installs and runs reliably.  But firmware uploads doesn’t work and configuration settings pages don’t work. A complete deal breaker.  Relies on on-line resources to work – apparently what is already causing the failures mentioned.  Not Recommended.

QGroundControl

Still to be tested.

What do I want it to do ?

  • What features do I need for FPV and a flying camera platform ?
  • Will APM achieve this feature list ?
  • Are there bugs that will “break” the required features ?

If the last version of APM (pre-Pixhawk) will satisfy the requirements, there is no need look further.  This simplifies installation and on-going support by not requiring to upgrade hardware or firmware.  It simplifies building and setting up additional machines.

For FPV and aerial photography, all I need is a basic flight controller that reliably maintains stability, supports a few basic flight modes and safety features; such as return to launch and possibly a graceful emergency landing.

This is not a big ask and is possible with Milti-Wii and APM. Although APM has a larger community, therefore more documentation etc. it is more capable and more complex.

What can go wrong ?

Assuming we have a version of APM and configuration / control software that works, there are still a couple of potential problems.

  • No longer being able to get APM hardware
  • OS changes that break the GCS and/or configuration-control software
  • behind the scenes support or back-end failure (on-lie resources)

Example: – problems with APM Planner 2 and Mission Planner

Although APM is a great system at a good price, it has a limited future due to its reliance on GCS-support software that requires web connection and access to files etc. to operate.  Mission Planer and APM Planner 2 (we’ll call them Apps) connect to resources on-line in order to load firmware into the APM controller and assist with configuration.  This keeps things simple and is great while it works, but as soon as the on-line resources change or disappear, or the App goes out of sync with these resources, the whole system becomes broken.  For anyone looking for a flight controller to use for a year or two and who doesn’t mind keeping everything updated this is OK.  But if like me you are interested in something simple that just works and will still be working in 5 years or more, it’s pretty much a dead end.   See below :  Update 17-6-2016.

I suggest that anyone intending to seriously use the APM flight controller, you will have to work around the support Apps reliance on on-line resources.  Get the source code and work out how to do everything locally.

Documentation

What is Version 2.8

2.8 is the version available on Ebay etc. as a reasonably priced complete kit.  2.6 may be the final version from DIY-Drones.

It seems that the main difference is that 2.8 moves the magnetometer off the main board and into the GPS module. There may also be minor changes/improvements with power distribution.

Ground Station

Firstly –  I use Linux and won’t be considering Windows here, at all.  I do use Android Apps occasionally, but nothing serious.  Android is handy when it works as a field tool, but generally I think it’s a P.O.S. due to updates, adverts, poor reliability and generally can’t be trusted.  If you don’t agree, that’s fine by me, I’m not trying to convert anyone.

  • Mission Planner : generally not for Linux but can be installed using Mono
  • APM Planner 2 : suggested elsewhere “Best for Linux”
  • QGroundControl : For Linux and Android. But not customised for Ardupilot firmware.
  • Tower : aka DroidPlanner 2 : For Android. Well featured. Best for Android ??
  • MAVProxy : For Linux. A command line interface with graphical modules.
  • AndroPilot : For Android.

The latest and greatest may not be the best choice if the additional features are not required.  There is also a danger that choosing a less popular or less maintained GCS, will incur problems in the future with OS compatibility etc.

APM Firmware

APM Firmware is the code that runs on the APM flight controller hardware module that goes in the model  All firmware is available Here.

Plane

It looks like Arduplane version 3.4.0 is the last version of firmware for the APM hardware for planes.  Dated Sept-2015.

Multi-Rotor

Apparently Arducopter version 3.2.1 is the last version of firmware for the APM hardware for multi-rotors, due to the later code builds not fitting.  Any higher version numbers are for Pixhawk hardware.

Building APM Firmware

It seems that this requires a version of Arduino 1.0.3 with modifications, available for Windows Here.

Installing GCS on Linux (Kubuntu 14.04, trusty 32-bit)

Download APM Planner 2 from Here. Installation instructions from Here.

  • Attempt install: sudo dpkg i apmplanner*.deb
  • If fails due to dependencies: sudo aptget f install
  • Then retry install: sudo dpkg i apmplanner*.deb
  • If fails to connect, try removing modemmanager: sudo aptget purge remove modemmanager

See below:  Update 17-6-2016.

Loading APM Firmware

Mission Planner and APM Planner 2 support loading of APM firmware.

A bootloader on the ATMega2560 chip supports loading of the APM firmware.

To reinstall the bootloader (if required) you will need the HEX file and a USBASP programmer. The APM2 2560-bootloader source is Here. This needs to be compiled to a HEX file for use. There are apparently others available already compiled.

CPPM or SBUS Input from the Receiver

I’m not a fan of specialist or additional formats if they add conversion steps, but if a SBUS receiver is available it may be a good way to get more than 8 channels.  The FrSky X8R SBUS receiver can output channels 9-16 on the receiver pins and 1-8 via SBUS.  A S.Bus-PPM-PWM or similar converter may be required to split the SBUS out to drive servos etc.

Note:  FrSky X8R : Set transmitter to D16 mode, 1-16 channel, bind the receiver with 1-2 and 3-4 shorted to set the receiver to output channels 9-16 and the SBUS port to channels 1-8.  I don’t think the channel blocks can be swapped.  Using Open-TX there is a bind function at the bottom of the model setup page: power the receiver with the jumpers in place and the bind button pressed, the activate the bind function in Open-TX.

lt may be possible to feed SBUS directly into the APM, but I wonder, is it a standard well-tested APM feature or a sort of one-off unofficial mod, and is it reliable ???

A CPPM signal is more universal and simpler so makes more sense to me, but cannot carry more than 8 channels.

Note : for CPPM to APM, feed CPPM to CH-1 and jumper signals on CH-2 and CH-3.

Update – 17-June-2016

Installing Mission Planner on Linux – not recommended

This was just an experiment based on some old instructions found on RC Groups.  As it turned out, the install was easy and it appeared to work.

Unfortunately, parts of Mission Planner didn’t work and parts were very unreliable.  As this is basically a way to get bits of Microsoft .net stuff running on Linux, it’s not surprising it didn’t really work.  I remember now why I don’t use Windows 🙂

I used Kubuntu 14.04 on a laptop using a slight variation on these instructions to try Mission Planner 1.3.38.  I didn’t have to do anything with user-rights; it found and connected to the APM with no problems.

# sudo apt-get install mono-complete festival
Download Mission Planner from : here. Unzip to a convenient folder.
# mono MissionPlanner.exe

With the APM plugged in via USB, clicking Connect (Auto) and it located the APM at /dev/ttyACM0 at 115Kbaud.

Painless360 has a series of setup videos beginning with this one.

Installing APM Planner 2 on Linux

This was quite simple. I downloaded the deb package for Ubuntu, double-clicked the deb file and the installer did the rest; including adding an item to the start menu.  I chose the 32-bit 2.0.18 as the latest 2.0.20 was only available for 64-bit.

Another install procedure:

From the folder containing the .deb file.  If problems, may be due to dependencies. Try the -f and then repeat the dpkg.

# sudo dpkg -i apmplanner*.deb
# sudo apt-get -f install
# sudo dpkg -i apmplanner*.deb

Using APM Planner 2

It seems to work although the Google Satellite map view does not display; street overlay but no base image.  It mentions tiles to download and seems to be doing something, but never gets there; possibly another Google api issue.  It is very similar to Mission Planner; possibly more function, but at first glance I preferred parts of the Mission Planner UI.

Problems with loading and configuration

Using APM Planner 2 the upload firmware function does not work; error message : “can’t find file……”.  Due to APM Planner 2 “simplifying the process” it’s not clear what is going wrong.

Using the older Mission Planner, I was able to choose a configuration and upload the APM firmware.  Then I thought, back to APM Planner 2 to continue with the essential configuration.  But the settings pages are empty, no settings shown.  This is a major problem, making APM Planner unusable.

It is possible that these problems are something to do with Planner 2 running on Linux and file locations or permissions. BUt I have read several forum comments of others having the same configuration pages problems.

Running on Windows 7 – update 9-August-2016

There were some gaps in Mission Planner when I tried it a couple of months back on Linux, so I decided to use a Windows 7 PC I recently got for a CNC machine,  It has a fresh install of Windows 7 Professional.

I thought the Windows version would install easily and just work.  Wrong again, still working on getting it going.

I started by installing APM Planner 2, which went without a hitch.  But it won’t run.  I had to set up a video camera to catch the high speed error message, but it didn’t help.  I then tried installing Mission Planner, but it won’t install, complaining about a .NET Framework problem.  I followed the Microsoft instructions to enable/install .NET, but that didn’t work either. The box was already shaded, it spent a few minutes doing something, but Mission Planner still won’t install.

This wasted time and failures just reinforces my opinion that the APM hardware and function is good, if you can only get past the dumb-ass configuration and ground-station software.

PIXHAWK – a few notes – update 25-March2017

I recently had a first time play with a clone PIXHAWK controller and Taranis Plus transmitter.

The Taranis is a lot like my 9X and 9XR-Pro regarding setup and programming, it just has more controls sliders and 3-position switches.  I fitted a 6-position rotary flight mode switch.

The Pixhawk is a lot like the APM but with a few extra features, indicators etc.  I like the safety switch.  Maybe a bit more complex than the APM but overall I like it.

The Mission Planner may be considered OK by anyone who uses it all the time, but for me, looking at it only occasionally, it’s user interface is still a piece of crap (my opinion) and could be much more user friendly.