My Opinion of the ArduPilot Platform and APM 2.x HW

Since this is a blog post, it is mostly my opinion.

That being said, I wish the development of the APM platform would’ve continued instead of being abandoned. It remains, in my opinion the pinnacle of autonomous controllers - simple, well documented, stable, and reliable. Under 3DR this open source project went the route of stuffing the proverbial 10lbs of crap in a 5lb bag (aka Pixhawk). And subsequently the code forked because later builds would no longer run on what is perfectly viable (and economical) and power efficient hardware.

I wish someone would’ve had the foresight to see the writing on the wall with 3DR driving the project to develop a commercial product. And continued development for the Arduino chipsets and platform instead of abandoning it and declaring it “end of life”. There’s something to be said for sticking with something that is proven and simple, and expanding it with modules for purpose-built applications instead of just abandoning it. As it is, the Chinese manufacturers have continued to build the APM boards with improvements like simply removing an external jumper to disable the onboard compass (APM2.8) instead of cutting a solder trace. And I have found these clone boards to be very good hardware. It’s a shame the software end had to fork and abandon it at AC3.2.1.

For me, the beauty of running a clone APM board today is that I can load AC3.2.1 in it and never have to worry about a new firmware update introducing more bugs. I’ve been a Debian Linux user since Ian Murdock founded it and that legendary Debian stability and reliability did not come from “cutting edge”. Instead it became the standard on which many others are based. I consider the APM2.x platform, and the software that runs on it, to be similar to Debian. For those that want to play with cutting edge, then run Testing or Unstable and expect to have problems. But don’t abandon the Stable branch.

1 Like

Since this blog post is an opinion it’s been renamed. Please keep responses civil or they will be moderated. Thx.

I wish the development of the APM platform would’ve continued instead of being abandoned.

Where do you get that idea? I think you’re confusing a single vendor halting sales of hardware with the open-source project stopping. Those are unrelated. The open-source project was mostly consisting of non-3DR people and 3DR pulling out has not stopped development whatsoever. There’s plenty of activity all year long, very consistent. Check the stats:
This is activity in the past month.
This is number of commits per week over the last year. As you can see, it’s goes up and down but the trend is constant.

We are extremely active! Plane has come out with 2 versions this year and Copter just released v3.4-rc2 so the official is very soon. Rover and Tracker have been doing releases too. There’s a facebook page with updates and the wiki is continually being improved.

And continued development for the Arduino chipsets and platform instead of abandoning it and declaring it “end of life”

An 8bit cpu can only do so much, moving on was required for the project to continue. It’s an extremely cramped environment with limited program memory and RAM. The new ARM based STM32 Pixhawk replaced it and we supported both platforms for a while but it became a burden on further development to retain support for the older hardware so a decision was made to drop further of the old hardware and think of the future. We are run as a Linux app on Linux class cpus.

I can load AC3.2.1 in it and never have to worry about a new firmware update introducing more bugs

Yup, that’s great. However, there are lots of new features that you’re missing out on. To each their own. It’s like saying you prefer MacOS 9 because 10 keeps needing updates. Sure, 9 works great if all you ever want from it is the limited things it does. However, development was stopped because hardware was hard to find for iterative testing and it held back development of new features.


I guess that you are not interested in running EKF1/2 or don’t need it?

I competed with a Traxxas Slash Rover in the Sparkfun 2013 using an APM2.6 with DCM and the 2014 AVC using a Pixhawk with EKF enabled and twin GPSs. The Pixhawk equipped Rover ran the Rover AVC course much faster and more accurately than the APM equipped Rover ever did.

I also competed in the DIYD Rover 2015 T3 competition over the 100 meter x 100 meter Bow Tie course using a Pixhawk equipped Traxxas E-Maxx with dual GPSs and had the fastest single lap time of 48.1 sec.


1 Like

Because APM is not capable of doing this:

1 Like

Yes I agree fully,The APM is a great unit,I wish it would have kept going on with the firmware,I am a Quadcopter pilot,gave up heli’s days ago,

I was referring to the APM hardware platform, and not the software development. I have a couple Arduino boards here with 32-bit processors and they are expandable with add-on shields to do virtually anything you want to do with them. I run linux on them with WiFi networking. I consider the Arduino to be a better documented and more easily expandable DIY hardware platform than Pixhawk.

Rob, I may have missed something there, but what exactly were you doing that a APM cannot do? The fact that’s it’s a single rotor heli and not a multi? If you think an Arduino based controller cannot fly a heli, you are sadly mistaken. Maybe not with the Mega 2560, but that’s not the only CPU used on Arduino boards.

You lost me there. What are you expecting to be developed when there was no memory and no processing power left use?.

As for foresight, I don’t know how long you have been around this project but this is what we had for foresight back in 2012. At that time we had already outgrown the original APM 1 board and some people were complaining that the features we were creating would only run on the new APM 2 boards. But even back then we could see we were outgrowing the 8 bit Arduino and we started looking at 32 bit options.
The first option was the Arduino Due. Then along came the VRBrain and eventually the PX4. For awhile we had developers working on all three boards. The VR BRain was the first 32 bit port of ArduPilot and then about a year later PX4. At that time the Arduino Due was still not viable and the PX4 was looking the most promising so we put most of our efforts behind porting to the PX4 and developing the Pixhawk hardware while Virtual Robotics continued developing the VR Brain.

The Arduino Due system would be viable today if you are interested in porting the code to run on that particular 32bit platform.

As for commercial products, the Pixhawk 2 was developed specifically for commercial users. In fact it was so good that 3DR wanted it exclusively so it has taken some time for other companies to step up and make it available to others.
We’re also seeing the emergence of Linux boards and SOCs (even today and a broad proliferation of options for hardware

ArduPilot development is very much alive and well because we have moved on from the limitations of the hardware we started on.

Yes, I understand that. How do I put this without stepping on too many toes? You jumped from one hardware platform to another under the influence of a company that was heavily funding the project and development of the software for commercial use. That company is no longer in the picture. So now what?

The APM was declared end-of-life when in reality the Chinese vendors on Amazon and eBay, including Hobby King, are selling way more of them for less than $100 for multi-rotor projects than Pixhawk is. It was far from end-of-life because 8-bit is all you need for most DIY projects. And at the end of the day, DIY is what this all about. It’s where it started. Most of us here have built our own stuff and have no interest in RTF products.

Arduino continues in the DIY spirit, where Pixhawk doesn’t. I got a dual-core 4GB Arduino project board in a box here, that I got for 60 bucks. I’m going to run Debian on it when I get it put together. I may build and run the APM Flight Stack on it “just because”.

You seem to be oriented towards high powered project boards (dual-core 4GB Arduino project board) so why are you sticking with the APM2.x configuration?

Because it is proven, stable and reliable, readily available replacement parts and hardware, reasonable cost, and has all the bells and whistles I need to fly a quad-rotor. And I see scores of them being sold by Hobby King and the other vendors. It is probably the most popular DIY FC of all recorded time in the form of the HK2.7 Mega and many other clones out there.

Like another fellow mentioned, Pixhawk was developed for one reason only - for a company to develop a RTF commercial product in an attempt to beat DJI at their own game in the consumer space. That failed miserably, and it lost it’s DIY roots in the process. So they took a different road. It remains to be seen whether or not this new road leads to a dead end.

Pixhawk running Nuttx is a pretty much a one-off. Arduino is THE most popular, most widely manufactured, and best documented, of any DIY microcontroller on earth.

And like the title says, this is my opinion. But I don’t usually jump on stuff that appears to be on a dead end street with no cul-de-sac at the end of it.

I got an email with a request from Tom as to where I got my dual-core Arduino project board. I don’t know what happened to that reply, but I’ll post the link here to it. If it’s not appropriate I trust the mods will just remove it.

These things are actually quite fun to fiddle with and I’ve build 4 other Arduino kit boards that I’ve bought online. This one is really cool - it’s about the size of my APM FC and it can be interfaced with various Arduino shields. Just haven’t had time to mess with it yet:

In case people are wondering why? Besides everything I do, I’m also a ham radio operator, Extra Class, call sign AC9KH. I mess with a lot of this stuff, including building radios, as winter projects.

And since this is a blog post and it says in the instructions to maybe include a photo, this is the all-aluminum (except for the hood) quadcopter I built to replace my totally worn out DJI Phantom 3 that had a little over 200 flight hours on it:

It has a APM2.8 revision clone controller, running AC3.2.1. It flew it’s very first fully autonomous flight last Saturday. Total flight distance 7.62 miles, maximum range from home 3.14 miles. 59 waypoints and misc commands for changing altitude and flight speed. It performed utterly flawless with a ground track precision of +/- 6-7 feet, and nailed the Auto Land at the end of the mission within 14 inches of the takeoff point. It can fly for 31 minutes and has enough reserve to still fly for another 5 minutes after that if I want to come in with the battery at 3.3 VPC.

The flight was flown with APM Planner2 on a Dell XPS running Ubuntu 16. And using a homemade yagi antenna on my ground telemetry radio.

1 Like

I do agree that the complete stoppage for the development of the APM was not all that great. Consider bug fixes that could have kept coming. The fact you can pick up a pixhawk lite for something like 20$ more then an APM 3.1 it’s really a no brainer.

I think the real problem is that ardupilot had been so interlocked with 3dr. You think ardupilot and you think 3dr. Now that 3dr has thrown in the towel and totally given up on the community is the real problem. It really rubs me the wrong way that they forked the project for solo just so they can keep it to themselves. Yeah the devs said they would merge it back but could they not have just kept it as one project?

Now the question is are you still going to call it a “clone” board. I feel bad for the people who paid $300 to 3dr for a pixhawk just to find out a week later that they no longer sell or support the product. In the true sense of it your going to have to call the pixhawk 2 a clone because it’s not a “genuine” 3dr board. It’s the mentality that 3dr built around the project. It was like 3dr was king of the castle and everyone else was a dirty rascal. I have read topics online about how people have viciously attacked each other on the topic of clone vs genuine boards. Most people dont understand that its an open hardware platform. Its like going around saying ubuntu its just a clone, its not as good as debain and your stupid for using it. Its like I can get pick and place machine and pump out some APM’s and you know what they are going to be genuine because I made them and they are genuine to me. I still call them APM and that still references to the “ardupilot mega” and who ever originally made the hardware. So what your going to have to call its APM-ng like its what the “NEXT GENERATION!!” or something? Its the mentality that 3dr built around the project. That every other person who wanted to make the hardware where a bunch of lying cheating thieves.

I dont know why 3dr picked the path they are taking(I suspect its the 100 million odd they need to repay the investors). It was not just a brand they where building but was a community. This was not just a “we need to make more money” so screw you guys I’m going home deal.

This community will live on long after 3dr is gone and forgotten, but not without them throwing dirt in out eyes before they leave.

APM was only abandon by 3DR and the developers. It is alive and well beyond that and according to the guys at HK still outsells the HKPilot 32 by a substantial margin. Coming up with a winner and then declaring it end of life while somebody else picks it up and sells them faster than hotcakes at a fly-in breakfast is what is called a “critical mistake”.

As many years as I’ve been around open-source stuff, which is over 30 years, I have never seen anything developed by the community ever be declared “end of life”. It is put into the archives to be called upon when needed. Even the first versions of the linux kernel are still used today in embedded linux projects where the later codebase with built-in modules for hardware support are not needed for a particular project. As an example, virtually every consumer network router built is running a stripped down 2.x linux kernel version with ip_tables and not the latest 4.x. That 2.x kernel may not be actively developed anymore, but it’s there for ANYBODY to take, modify it for their own use, and even sell it commercially as long as they adhere to the license and make their changes available to the community. They can take it as-is and use it and don’t have to contribute anything.

It becomes obvious that 3D Robotics did not have a single clue about how open source projects work going into it. They learned fast and then go with a Nuttx OS under a BSD license that can be taken as their own code and made proprietary on a closed hardware platform after they get what they want from volunteers to develop a product for them. And all they have to do is provide the credits in the copyrights.

The whole thing going from a DIY community, which is what open source is all about, to tunnel-vision commercial development under open source licenses is not really a good influence for the volunteers that develop the codebase. Things weren’t happening fast enough for 3DR so they put paid developers on their staff which tend to push an entire community in a direction that may or may not be good. In the case of the APM and just abandoning it they made a critical mistake in the marketplace for a commercial product. Now they’re going to do the same thing with Pixhawk1. Let’s change all the connectors and go with a modular “shield” type setup that Arduino has in the first place. The Pixhawk1 is already dead - it says on their website that it’s out of stock and you can sign up to get “news” on the new “Pixhawk mini” when it becomes available.

The beauty of open source projects like linux has always been that it runs on, and is developed for, a VARIETY of different hardware. Linux would’ve never gotten to where it now has the largest installed base on earth (in the form of Android), and powers all the top supercomputers in existence, if it was developed under the influence of Intel and only ran on x86 processors with 32-bit instruction set.

How is that different to the ArduPilot situation? You can take it, modify for your use and even sell it commercially as long as you adhere to the license and make your changes available to the community.

ArduPilot is GPL, so no, you can’t make it proprietary, no matter what license NuttX has.

Right now we support 17 boards and with the VRBRAIN boards back in master we are aiming at 23 boards. If that isn’t enough variety for you, we always welcome PRs to add new boards.

I was referring to the APM hardware. APM continued to be developed after being declared “end of life” by 3DR and the community. In the 2.8 version the onboard compass came back, which is handy for smaller builds where you don’t want a GPS/compass module sticking out on a stalk. And to disable the onboard compass you no longer have to cut a solder trace on the board like with APM2.5. There’s a removable jumper right by the GPS port. With the 2.7 version they had already changed the redundant I2c so the external compass can be plugged in right under the GPS port.

Somebody did exactly what open source stuff is all about. But since the community didn’t care about it anymore, none of these further changes to that hardware platform got documented by the community it came from. Instead, only complaining because somebody took their abandoned stuff, improved it, and maybe made some money on it. When you have a chance and you throw it out the window, guess what you get? The community dropped the ball where APM was concerned, and declared it DOA. When it was anything but.

Wow, there’s a lot of strange ideas in this thread that I would like to correct, but I’m not sure it’s worth the effort. So I’ll just say this:

Rob, I may have missed something there, but what exactly were you doing that a APM cannot do? The fact that’s it’s a single rotor heli and not a multi? If you think an Arduino based controller cannot fly a heli, you are sadly mistaken. Maybe not with the Mega 2560, but that’s not the only CPU used on Arduino boards.

I know very well that an ATMEGA based controller can fly a heli. Because I wrote most of the code to do it.

However, what the 8-bit controller cannot do, is run EKF, Accel damping, and Spline Nav, all of which are necessary to make a helicopter perform at that level.

Here’s Ardupilot 3.0 running on an APM 2.5.

Rob, while EKF is definitely not supported on the 8-bit Atmel, and I don’t know about accel damping yet, but spline nav seems to work fine on my APM2.8 clone board with AC3.2.1. On my first autonomous test mission my new quad flew absolutely perfect spline waypoints on pretty much the entire 7.62 mile test flight. I used a few regular waypoints, but about half of the 59 waypoints were spline and not a single problem with it.

I made three comments of which you answered, maybe, one. And I say maybe because when you talk about NuttX and Linux kernel you are talking about software, not hardware.

But even then, my comment still applies (and you are actually contradicting yourself): how is the kernel situation different from the APM boards situation? As you’ve said yourself, people can still take it, modify it for their own use and even sell it commercially as long as they adhere to the license and make their changes available to the community.
And that last part is what hasn’t happened a lot of times.

Nobody has forbidden you from using 8-bit boards, it’s just that the developers that made APM boards and the developers of ArduPilot think they aren’t enough anymore.

MS-DOS works for me, upgrading seems like a hassle that requires a new CPU and only offers me features that I’ll never use.