Please welcome ArduPilotMega 2.0!

3689434949?profile=original APM 2.0 is the culmination of almost a year of hard work. We wanted to make it perfect and we finally have it, we are pushing the limits of AVR and Arduino. I’m sure you will love it, and it’s designed to cover all the DIY community expectations (including those that are not so DIY and are only interested for something that doesn’t require soldering skills). 

Check the product listing for availability status!

Main Features

  • Three processors--a triple-core autopilot!
  • All new state-of-the-art sensors; the first autopilot to use the Invensense 6DoF MPU-6000
  • Smaller, lighter, cheaper than APM 1.0--just $199 ready to fly, with GPS, magnetometer and dataflash included.
  • Like APM 1.0, this is the world's only Universal Autopilot. The same hardware can autonomously control planes, multicopters, regular helicopters, rovers, even boats, with just a one-click firmware change--no programming required! Best-of-breed mission planning and two-way telemetry, and soon with advanced scripting with Python for robot acrobatics and more.
  • Twice as much dataflash memory, with SD card slot
  • No soldering required
  • When using the internal sensor fusion processor of the MPU-6000, more than half of the Atmega2560 processing capacity is free for new advanced features.
  • Native USB, with all new PPM encoder software



New sensors

The big advance in APM 2.0 is the introduction of the Invensense MPU-6000 sensors, which have an internal Digital Motion Processor (DMP) that does advanced sensor fusion. We’ve tested it for months, including lots of flying, and it significantly outperforms the DCM used in APM 1.0. It’s your choice whether you want to  use the MPU-6000 internal sensor fusion or do it yourself in the main processor, but if you choose the DMP it frees up nearly 40% of the processing power in the Atmega 2560. This is a digital chip, so we were able to eliminate the ADC chip used in APM 1.0, lowering chip count along with cost and size.

We’ve also upgraded the barometric pressure sensor to the MEAS MS5011, which has a resolution of 10cm! This is at least twice as accurate as the pressure sensor on APM 1.0 and should give ArduCopter best-of-class altitude hold capability. Here are some of our side by side tests conducted by Jose Julio (Spain):

We joke about the color of APM 2.0, we say that is the fusion of ArduPilotMega V1.x (Red board) and the Oilpan/Sensor Shield (Blue board) and resulted to be a purple board. Well this might not be the real reason of the purple color, in fact the APM 2.0 fuses the APM 1.0 and the Oilpan/Sensor board into one, in order to save space and make it cheaper.

Micro daughterboard

But why does it have a small daughterboard with an SD slot, GPS and the magnetometer on top? Aha! The big dilemma I had for months! I was very concerned about leaving the GPS and the Compass stacked on the main board. What will happen to the compass if the board is placed near to big electromagnetic fields like a brushless motor? What will happen if the board is inside a carbon fiber frame and GPS reception is blocked? But what happen if none of those issues matters to you and you want a small board with everything on it? What can I do to solve the necessities of everybody?

So I developed a small shield that can be mounted inside the boundaries of the pins and has special connectors to keep a very low profile of the system, so if you want a small board then you have it! But this shield is optional, so you can still attach your old GPS by using the standard APM V1.0 GPS connector or the classic compass port. But because I promised no soldering I have created a special I2C port (similar to the GPS) that allows you to attach an official APM 2.0 Compass board by just plugging it (yeah just plug and play). The SD slot is there because I had no other place with easy access (underneath the main board was messy and you will be obligated to dismount and flip the entire board to remove the card, you don’t want that right?). In the other hand the daughter board will come in four flavors: GPS+MAG+SD, GPS+SD, MAG+SD and SD. For example if you want to attach only the magnetometer (Compass) externally you just buy the option GPS+SD.

SD card dataflash

The SD slot can read regular SD cards. But for the moment we don’t use them in ArduPlane or Arducopter code because writing regular FAT tables is very slow and can screw up the main loop refresh rate (We’re not using a RTOS yet, and won’t until we migrate to ARM in Q1 next year). There’s why I have created a custom SD card with dataflash on it (twice the capacity of the one in APM 1.0), plus it has the advantage of being removable so you can have multiple logs or you can easily replace it when you exceed the life of the chip. But in case you are planning to use APM 2.0 in something that doesn’t require a 200Hz loops (like a very powerful data logger or weather station) you can interface with a regular SD cards and write text files on them. The possibilities are endless!

The board itself is our first four-layer design and is smaller than APM 1.0 (believe it or not it’s just 2.6 x 1.6 inches, even smaller than the UDB) and this includes four mounting holes and rounded edges to give a nicer look and feel! Of course it’s lead free and ROHS complaint.

New PPM encoder and USB interface

Along with the Atmega2560, there is an Atmega32-U2 that works as the USB (FTDI) serial programmer (Arduino Compatible) and PPM Encoder. This setup allowed us to save even more space and reduce prices by eliminating the FTDI chip in the APM 1.0 board. Best of all, you can update the Atmega32-U2 firmware without buying a SPI programmer; you can easily update via USB!

The Atmega32-U2 also features something called “Serial0 Auto Switch”. This function automatically toggles the serial port 0 from the Atmega2560 from the USB Serial programmer and the modem/OSD port. When you are about to upload a new code through the mission planner or Arduino the Atmega32-U2 will auto-route the Serial0 to the USB Com port and load the code, when is done it will automatically switch it back to the Modem or OSD port. This maximize the usage of this serial port that before was wasted the average of the time (not used while flying). On the APM 1.0 the modem won’t work when is programming and you don’t program anything while you are flying so theirs is virtually no downsides in normal operations. Anyway in case you want a dedicated UART for each you can still switch back to the old APM 1.0 configuration with some solder jumpers.



More I/O

APM 2.0 is also packed with 12 analog pins that can be used as digital I/O pins and three of them can be “solder jumpered” to add extra PWM output channels (for gimbal operations). Each analog/digital pins can be used to read or control special devices like current, RPM, voltage and ultrasonic sensors and output devices like cameras and relay’s. The mission planner will allow you to define in which pins you have connected a device and a drop box will give you the options to select pre-defined sensors or declare a new one (Something similar to Remzibi OSD). This sensors or output devices can be later used in missions and do actions when certain conditions are met (Not implemented yet).

APM 2.0 features 8 PWM outputs (and can be increased to 11 if you give up 3 of your 12 analogs) and 8 PWM inputs. You can also bypass one of the pins with a solder jumper to insert your own PPM signal, still you can use the other PWM inputs left to control something else (so you can have more than 8 inputs).

The +5V servo power is optionally separated from the rest of the board, you can join both powers by insert a regular jumpers. This saves us a lot of problem in some setups. It also features a protection diode to protect the board from reverse polarities.  Reset pins are left exposed with ground, so you can add an external reset switch if you wish.


Thanks to the incredible work of the DIY Drones Dev Team, the ArduPlane and ArduCopter code will support the APM 2.0 board when it ships. Special thanks to Pat Hickey, an embedded programmer rock-star, who led the team who ported the code to the new board. Others who worked tirelessly on this include Jose Julio, Andrew Tridgell, Doug Weibel., Randy MacKay, Jason Short, John Arne Birkeland, Olivier Adler, Sandro Benigno, Max Levine the 3DRobotics team and scores of others. It was a huge job!

Special thanks to Chris Anderson for making this possible.

The new code is already in the repository and supports both APM 1.0 and APM 2.0.  The Mission Planner will autodetect your board and load the appropriate code (Note: the official 3D Robotics APM 2.0 board has a unique signature and the MP will look for that. Other people can make their own APM 2.0 boards, but the official MP will probably not support them). But if you want to do it manually in Arduino just change this line in Config.h from APM1 to APM2: # define CONFIG_APM_HARDWARE APM_HARDWARE_APM1



APM 1.0 (back) vs APM 2.0 (front)


As you can see the board is more than great! But when you discover the prices you will be double amazed:

APM 2.0 + Daughter board (with all sensors) + 1 x dataflash Card for datalogging + USB micro cable + All pre-soldered and tested for just $399… But we have a special DIYDrones promotion; if you buy it within the next 100 years you only will pay $199.95 (yeah you read it right $199 US Dollars). =P

Seriously. $199 for everything, for everyone, always.

Important note: The board is already available and tested, but with this incredible price you can expect a very high demand (even before formal announcement) so the only way you will be able to get one board soon is by pre-order at the link below. The expected waiting time is from 1 to 6 weeks. First come, first served. We expect to end this delay by February when the shortage of some sensors is over. (We’re going to limit the first batches of board to users; unfortunately we can’t allow distributor sales until customer pre-orders are filled)




E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • I'm not a lawyer. Just a person that owned his own high-tech company for over 15 years (now retired), so this is only my opinion based off past contracts I've done..

    So it depends on some variables. Functionally you can. However if DIYD or 3DR in some way could or did trademark say the 'Purple', then you can't use the same colour wnen making a functionally identical product, nor something that has been strictly designed to infringe by making a small change in order to fool people. For instance almost the same 'Purple', then no. But here is my but... But this get's into trademark law and enforceability of those trademarks via how strong they are. Similar things would or could apply to any copyrights that maybe possible.The idea here is to prevent forgeries and other things that could do damage to the company and it's business interests. I just don't like anyone trying to commit a fraud where the origin company and the customers stand to lose. So it is all about harm and what the knockoff company's intent is. I care less about weasel words to excuse a behaviour over what is an obvious intent to defraud or misrepresent themselves or their product to others. So in my opinion, no matter what protection is there or not. Making something look exactly like someone else's work, just so they can profit and trick someone into thinking they are buying a DIYD/3DR product is pretty low. I wouldn't trust a company that did that. It's obvious that have no faith in their own product if they stoop so far as to do that. Riding on someone else's reputation to profit is bad form and as I said even if not technically illegal. It's immoral.

    That being said. I have no problem with closed source hardware that uses open source software and vice versa. I just chose to try and use something that has both.

    However, If I make one for just myself and there is no profit or misrepresentation, then it is a compliment to DIYD/3DR. Just as copying a painting would be. It's my interpretation of the painter's work. This is also where I part ways with some copyright and trademark laws the US is pushing.. I do them no harm in any way by having it in my possession. It's another reason I like open source. But then I'm not re-selling Mona Lisa's or Excel knockoffs either.

  • Ps, forget "forking" im talking about a 100% identical purpleboard APM 2. Not my own variant.
  • @Terry

    Assuming you are aware of the differences between DIYD and 3DR, the concern Ellison and I expressed was based on the above statement "Other people can make their own APM 2.0 boards, but the official MP will probably not support them). But if you want to do it manually in Arduino just change this line in Config.h from APM1 to APM2: # define CONFIG_APM_HARDWARE APM_HARDWARE_APM1".

    Ignoring support (which the vendor, whoever that is should be responsible for), this indicates to me that a third party, for profit, no profit, whatever, cannot make a device themselves with all the functionality of a 3DR built board. That seems to fly in the face of Open Soure because it offers a subset of functionality only.

    It's not about support (which is a seperate but big point and I agree with you) it's the question that can I myself create an equal board using the freely available BOM, gerbers ,
    etc and enjoy the same functionality. If not, is it really open source hardware?
  • I second that! :-)

  • Ellison. Ya think of it this way. You buy an APM2 but someone else is using the APM2 but has forked off the software and added things you like to it. You are quite free to go use the board with that software. Same goes in reverse if someone makes a variant of an APM2 but it uses this software here. But in both cases support now resides with those other groups. Same as if I did it myself I now should expect to support my own stuff. :) but don't forget. With open source you must credit and make available the original source code you based your work on. It's up to you whether you release your own code changes though, it's just encouraged for the good of all. But then if you do you get credit if some others use it.

    this is what makes this great. A company based on open sourcing their hardware/software plus all the written history back to the day everything was first envisioned until now. They may make nothing off people that have the resources to copy it all and build their own. But for the rest of us there is value in buying their board, other products and getting support. I've noticed that DIYD often even links to other forks and groups in their pages and manuals. Very respectable if you ask me.

  • Hi Guys, any chance we can get an update on which order number will be the last to ship as part of this batch....?.....pretty please?

  • Hey Chris, my apologies.  I misinterpreted your comment about the board ID.  Now I realized that you're not planning to lock out clone boards.

    I agree that any clone manufacturers, need to support their own boards, and not expect the community to support them.  But, on the same token, if the community decides to keep the software compatible with the clone board it's also they're prerogative.  That's what open means, I think.

    If I were Chris, I'd get CUAV to stop using the graphic of the purple APM2 in their web site.  I not sure they should even be allowed to use the purple colour for their board.  As, I said before it's misleading.

  • oh and one last thing. I enjoy open source and often make my own hardware/software from these designs. I really appreciate other efforts. I have even given money to some projects out there. At the same time I understand what DIYD and others are doing and have no gripe. But I decide if I build one for myself or purchase theirs and that is a beautiful choice.

  • Well Ellison, Chris never said anything about locking anyone out. All he refereed to is that their fork of the software is designed to work with their board design. That is a pretty standard phrase used in all open source projects the minute someone else forks off their own hardware or software. It is only common sense. It also very much extends to the board ID aspect, once again quite normal to protect their support channels. Just as important is that an ID allows a consumer to be aware if they got ripped off or not by an unscrupulous business just as it also can make them aware DIYD doesn't do support on those boards. In this next part. I'm not being insulting to you, but I don't think you quite grasp the business concepts behind open source projects, nor understanding of the licences behind them. I think DIYDrones is acting ethically and intelligently to deal with those issues that may come up. This isn't the same as a group with a non monetized open source project.

    So far if any blame or underhanded practices are to be levelled, it would be on how anyone else follows the concepts, when they open and sell open source based products. I for one have much disdain toward anyone/business that would use intentionally misleading information about what they are selling. Or expanding out to even breaking any legally protected trademarks, patents, or copy writes just isn't on with me. Even to the point where someone purposely picks names or terms specifically to mislead. Even if perhaps technically not in breach but ethically are questionable, then we all should take a page from buyer beware and boycott a company doing it with malice or for the fast buck. As a consumer this is our best practice against bad businesses springing up or even other competitors from opening online stores with bad knockoffs in hopes to discredit another company's products. Unfortunately the real world is an ugly reality.

  • @Chris

    Depending on where the ID is stored, actually selling chips with IDs preprogrammed may be one way. That way clone boards can enjoy full MP functionality, but the ID can identify it as an unsupported board. Ive seen similar done a few times.
This reply was deleted.