Developer

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

 

3689434962?profile=original


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):


3689435013?profile=original
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.

 

3689434985?profile=original




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.


3689434874?profile=original

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

 

3689435034?profile=original

APM 1.0 (back) vs APM 2.0 (front)


Price

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)

 

3689435056?profile=original

3689434887?profile=original

E-mail me when people leave their comments –

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

Join diydrones

Comments

  • @Ian: Arducopter in its current form is highly flyable.  The stability mode is great and has been stable for a long while now.  In my experience, altitude hole and loiter are less stable, but that doesn't mean they don't work well (I may well be an outlier).  I have had altitude hold working so well on my copter that it looked like it was hanging from a string.  I have also had it do a yo-yo impression.  However, this platform and the code is so good that, even with an unofficial frame, I am confident you will be able to fly it.

  • Stafford YOU HIT THE NAIL ON THE HEAD!  As a newb, that is my fear, at what point are the minimums there for me to ENJOY the learning process by reverse engineering a working system.   I am not that experienced a pilot, but years of ACTUAL flying taught me to learn quickly, and never panic. I will take it slow and steady and teach myself to fly. But I can't afford a paper wieght at this time.  The marketing IS a bit misleading, but it has not deterred me to find out it is a bit how should we say "fluffed up".  Thats marketing for you. 

    I started by getting a AR drone (don't laugh) proceed to to find some hack firmware, and thought about updating it to RC.  But it broke too often, control sytem SUCKS.   Hey if the piece of crap AR drone can "loiter" Uses a camera to lock position, then surely we can get this into a "real" drone that doesnt break when I fart to hard mid flight. Surprising that was the one feature the drone did differently. 

    I have to admit some of the RC guys I have met are so knowlegful, but frankly full of themselves that it can be a bit off putting.  The snobby attitude of wookongs board sent me running back to the DIY boards.  The fact that this conversation is going on at all makes me like DIY Drones Forum even more  than before.  If it isn't at least minimally functional then I will wait.  If it is flyable at a minimum I can learn and put up with the updates as they progress.  I have some crazy ideas for Hybrid/green and green applications, but if I can't get fly I won't care to learn.  I do feel after this thread that the marketing does need to be scaled down a bit, its oversold.  Still going to get an APM 2 :) Should read "features we are working to perfect",  or "features we are close to perfecting" or some such caveat...

  • I think there was a misundersanding in my term platform.  I meant the actual flying platform as in the copter, not the hardware as in the chipset. See like I said bad at the jargon.

     

     I intended on running the APM 2.0 board (taking out the old arduino board of course.  I wanted to use red VC- 450 frame. with 10" props, Advanced Quadrino flight controler with baro and Mag running 1.7 software TO BE REMOVED. 450MM motor to motor frame for great stably,Keda 1050Kv motors,18-20A 400Hz Brushless ESC’s, spektrum receiver with added satellite.

     

    I understand that certain releases will take time to work out, as long as there is a fairly stable release period so I can fly.  I vring crreativity and invention to the DIY side of the equation, I am afraid I won't be of much help with tweaking any code HAH. 

  • So ArduPilot will not run on a non ARDU platform. 

    Chris, is this true?  Say it isn't so Plucky....Gonna break my heart....

    Well, Chris might want to weigh in, but my reading of the AP_Rc.c code, the library containing the PWM routines, contain code that's specific to the APM multiplexer hardware.  So in order to begin supporting a regular Arduino to run Arducopter code, more generalized code needs to be added in that does PWM using Arduino only hardware. This would then cascade into time loop changes, a significant rewrite.  So from a controller platform perspective, Arducopter only support the ArdupilotMega(APM).

    From an airframe perspective, there's no reason why Arducopter firmware running on APM controller, cannot support almost any quad, up to octo airframe with some pid tuning for non-conventional configurations.

  • Also by latest and greatest I mean the bleeding edge, not considered stable yet code.

  • @Ian PID setting is the most complicated part.  Firmware updates are plug it in and click the picture of your airframe (very easy -> http://code.google.com/p/arducopter/wiki/AC2_Loading).  For anyone not running the latest and greatest, there will be no need to ever touch the "raw" code.  Everything can be done via the Mission Planner.  ArduPilot WILL run on a non-DIYdrones/"ardu" platform (I and Ellison both run it on those).  However, running on a non-diydrones/"ardu" requires more leg work in the form of PID tuning (these values dictate things like how the copters keep themselves stable).  Here is the wiki article for PID tuning: http://code.google.com/p/arducopter/wiki/AC2_Tweaks

  • I thought the pirates were running it on a guai?

     

  • So I keep the questions going hte right direction I wish to clarify my position.  I can do and mimick almost anything. I must admit I skippedd Ardu copter because,

    1) I was led to believe that the code for APM would be fairly straight forward in an installation other than an ardu specific copter.  Also I could not find a way to get an ardu copter with 2.0 board. 

    2) if her is a video tutorial on how to tweak these setting, point me to it so I may assess the difficulty.  PID setting, no problem, updating firmware files no problem, going in and changing a line with a setting, as long as there is a how to video no problem.  MY BIGGEST SHORT COMING IS JARGON...  So ArduPilot will not run on a non ARDU platform. 

    Chris, is this true?  Say it isn't so Plucky....Gonna break my heart....

    :,(

     

  • @Ian I also run custom frames.  It is entirely possible that the official frames fly just fine.  I was just speaking from my experience where say firmware 2.0.xx flew nearly perfectly but firmware 2.0.xy did not or introduced regressions in performance (for instance, I had a significant regression in altitude hold going from 2.0.55 to 2.1.0, even with tuning).  Oftentimes I believe these regressions are due to a dev changing how a certain feature works in the underlying code, believing the firmware to be stable, and releasing it as such.  I am in no way against these changes, the devs are doing their best to squeeze every ounce of performance these platforms are capable of.  Tools such as the simulator that have come out more recently have reduced performance regressions in my experience.

    @Chris While perhaps people have gotten a bit heated, I do believe there are some legitimate concerns being expressed.  For instance, how would a user like Ian know that 2.0.55 is considered the most stable firmware right now (per Ellison's comment), especially since the mission planner, which is the easiest way to load firmware for a beginner, does not install that firmware?  Again, while DIY implies some more leg work, the lack of a stable option for beginners is a bit of a problem. For example, 2.0.55 could be most stable, but it still has bugs (I know there were at least two patches to that firmware since 2.0.56 got turned into 2.1).  If Ian had flown 2.0.55 and had issues, he would have been told that they were being addressed in a later, alpha firmware.  He would have two choices: wait for the alpha firmware to go stable or attempt to fly the alpha.  Being a beginner, flying alpha firmware has its obvious issues.  So, he could get stuck in an infinite loop.  The current stable firmware has a bug he cannot overcome and the current alphas are too unstable for his skill level.  He cannot increase skill level due to the stable firmware being unflyable.  He then has a 4-bladed paper weight.  So he goes and buys a DJI or something, which while more expensive, works and is stable.  We could possibly lose a valuable asset to the community.

    Also, for the record, I very much prefer the DIYdrones project over any of the other ones.  The borderline absurd amount of money I have spent on this hobby is testament to that.  I am in no way criticizing out of spite or something like that.

  • Regarding your question, due to the PWM multiplexing chip onboard the APM that it uses to decode/encode PWM signals from the receiver, and output PWM to the ESCs, the motor code would have to be changed to support a generic Arduino MCU board.  So the answer is Ardupilot code will only run on APM hardware.  If you want a code that can work on generic Arduino boards, you may want to look more closely at Aeroquad code.  But, it's hasn't got all the features as Ardupilot, like GPS waypoints, groundstation software, no mavlink, etc.  Aeroquad is a basic code, which has alt hold, and stabilization.

This reply was deleted.