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


  • Yes I am aware of the early adapter issues. But when you read this thread it looks like diy is on par with dji and even better beceause of it open sourceness. So new people think this is a great and super functioning system. What you don't read in this thread is that it isn't stable yet. And that with all then new functions we often do a step back instead of forward. I think we should first make a stable release and bugfix it thouroughly so that the basic functions work. We are already working on autolanding while loiter isn't working okay. Even alt-hold is not great yet. I for one was under the assumption that the apm2 had already been tested last year so there would be start pid settings. And the leaning problem would have been known. Somewhere it has been stated that the apm2 has been heavily tested last year by the devs. Like I said that is just my opinion and I am just dissapointed a bit.

  • Ellison Chan:
    This is a hobby for me.

    Precisely. DIYDrones or 3D Robotics are not to blame if anyone pins unreasonably high, short term expectations on the least expensive option.

    If someone has "Immediate requirements" that require a "solution", I don't quite get why they would be looking for the answers in an open-source, Do It Yourself, hobbyist project... I'm not saying you should leave, but I've seen a lot of posts in recent weeks talking about the comparison of the hardware here vs. proprietary turnkey solutions, price differences and such. For 200$, do you really think you are going to get the same results out of the box with no effort as you are with a solution that costs 10x the price? Of course not. But it is possible, and it does work. If it didn't, there wouldn't be dozens of devs on the dev team, thousands of APMs in use, and new generations of hardware being created.

    As to comparing APM1 to APM2... APM2 hasn't even gone to full production yet. The hardware is superior in every way (including the color! :P  ). But instability at the start is a chance you take and the price you pay for early adoption. It's one of the few absolute certainties in the world of tech.

  • Just wanted to add, that I think the cost of the DiYDrones solution is a major factor.  There's a lot of push to integrate more expensive ESCs, sensors, and other hardware.  I have no doubt that, if more expensive hardware is used we would have an even more stable platform.  But, that defeats the whole premise of DiY.  I can't DiY, if I can't afford it.  This is a hobby for me, and if it ever becomes a profession, I would definitely take what I've learned here, and improve it with more expensive hardware.

  • Moderator

    Don't forget DJI and a few others have leant heavily on the work undertaken here and at other opensource projects.

    The crunch will come around the world when regulations have to be adhered to. I have a feeling the manuals will be written quickly by large communities and never by small companies.

    It will come for commercial and private UAS, everywhere.

  • Allen, I think you assessment of the status of Arducopter code a little unfair, and must come in defence of DiYDrones.   There is a fundamental difference between DJI and DiY.  The fact is that DJI is proprietary hardware and software, whereas DiY is open hardware and software.  The DiY stands for Do It Yourself, which implies that people who are on that platform are going to be tweaking both the software and hardware themselves.  It also implies that the Ardupilot hardware and software needs to be sufficiently generalized and flexible to accommodate many different airframes, and in fact, even helicopters, and planes.  My understanding of DJI is that it is only for multicopters.

    Because Arducopter needs to support non-3DR airframes, it cannot and should not come pre-tuned only for 3DR airframes.  I not sure, but I believe when 3DR sends out pre-built ready to fly airframes, they have tuned it in the factory.  Maybe they could provide the parameter files in the depository that can be loaded for various other popular airframes too.  I believe they do have a few for airplanes.

    Bottom line is, DJI, being proprietary, will have limited configurability, and flexibility, while DiY will be more suited for those who want the flexibility, and customizability.  Judging from the volume of airframes you have bought, I would say you fall in the category for users who need less customization, and more of a turnkey system. DiYDrones may not be suitable for your needs.

  • Now I am confused, any one else out there please chime in on experience using APM.  Allen, thank you for your insight and experience with DJI.  Unfortunately I can't afford DJI's setup.  Allen, seems like PID would need to be tweaked on any system, having a hard time understanding how PID could be that much better.  Every AP says they are the best.  Please group enlighten me!  I would like to hear pros and cons.


    I will say DJI has a post in the forums where a newb asked for some clarification, and the DJI answer was "no comparison" but then they gave no backing to the statement. 

  • To all honesty I have to agree with Allen. I have spend a lot of time into getting my quad work. I even upgraded to APM2 beceause i hoped that it would solve some issue. But I now even have more issues. My quad drifts teribly and if you look in the forum you see that more apm2 useres are reporting this problem. Good pids are also promissed for a couple of weeks now. For me upgrading to APM 2 has been aan downgrade for now. As I don't have a flyable quad now. I would really want that we would first make the sofware stable. So good alt-hold and good stabalize mode. I think we haven't even achieved those basic things to be good. I hope I a seeing this wrongly and that in the next 2 months it will apear I am wrong. But for now I am verry disapointed.

  • Chris:  I have ordered several DJI multicopter units and it was with the understanding that they would offer waypoints and they committed to that several weeks ago.  The release has just occured and now DJI is well ahead of DIY in delivering reliable UAV functionality.  It is a rock solid platform in Alt Hold, Loiter, FailSafe with Auto Land and now waypoints.  The fact that it is only 20 waypoints is fine for airframes that only get 20 to 40 minutes of flight time.  I have invested in 5 DIYDrones APMs and still cannot fly with any level of reliability or stability and that includes the DIYDrones Quad with all standard hardware.  I still wich for sucess with the DIY solution but my immediate requirements demand a flyable solution and while the DJI is more expensive - it does work and I have not crased once in 50+ flights.  I can fly my hex and quad in my livingroom without the risk of chewing up walls.  I think there are some fundamental design differences between what is being implemented in DIY and what has been implemented in DJI.  I would encourage DIY to take a look at the hardware implementation in DJI as well as an Inertial nav function.  If the new APM2 board has the needed hardware components to equal DJI functionality then DIY participants need to be told that their earlier hardware will not work to that level. I think that the majority of DIY users do not want to have to tailor PID settings every time there  is a flight environment change such as wind. I get the feeling that a fully automatic plug-and-fly solution is not going to come to fruition on the APM1 product.  Please tell me if this is not true.


  • Chris, thank you for your answer. I'll take a look at the telemetry kit.

  • 3D Robotics

    Ardobeginner: You don't need anything else for what you want, although you may eventually want to add a telemetry kit for two-way wireless comms.

This reply was deleted.