Convert any RC airplane into a fully-autonomous UAV!
Just add the APM 2 autopilot to any RC aircraft and it becomes a fully-programmable flying robot with a powerful ground station and Mission Planner.  


Features include:

  • Return to Launch with a flick of your RC toggle switch or a mouse click in the graphical Ground Station
  • Unlimited 3D GPS waypoints
  • Built-in camera control
  • Fully-scriptable missions
  • One-click software load, and easy point-and-click configuration in the powerful Mission Planner. NO programming required!
  • Replay recorded missions and analyze all the data with a graphing interface
  • Supports two-way telemetry with Xbee wireless modules. 
  • Point-and-click waypoint entry or real-time mission commands while the UAV is in the air
  • Fly with a joystick or gamepad via your PC--no need for RC control!
  • Built-in failsafe will bring your aircraft home in the case of radio loss


All instructions and software are here.




APM 2 is an open source, Arduino-compatible, pro-quality autopilot. It is the most advanced IMU-based open source autopilot available today, and provides an entire UAV control system with scriptable missions with 3D waypoints, in-flight uploading of commands and powerful ground station software. 


APM 2 supports any kind of of vehicle with a one-click change of code. Available code include ArduPlane (fixed wing), ArduCopter (rotary wing), ArduRover (ground vehicles) and more.


Everything you need to create an ArduPlane UAV:


APM 2.5 autopilot with GPS ($179)

[Optional] Telemetry kit ($75).


You'll also need a at least a five-channel RC radio setup, a soldering iron, a mini USB cable and of course something that flies! (We're partial to the SkyFun delta wing (right) and
Bixlee 2   powered glider (left) or its equivalents ourselves).






Source code/firmware

Note: ArduPilot Mega requires no programming, but it's open source and you're welcome to modify it if you'd like. If you are going to play with the code, you can use the free Arduino IDE to edit and upload the code to the ArduPilot board.



Views: 558876

Comment by Jeff Zika on July 10, 2012 at 11:45pm

Thank you for all the quick responses...

Like I said, I am evaluating several different systems APM just being one of them. The open source model is preferred so we have access to the source code for changes, at least at this point. 

Comments on comments:

1. PID reaction does not react fast enough to handle the trim changes required. For example, landing gear extension results in a strong pitch down motion, and generally at low altitude. By the time it is compensated for, the aircraft crashes. When the gear is retracted, opposite occurs resulting in an uncommanded 2-3000ft climb. Any settings that compensate for this are two sensitive for maintaining level flight...Also, as fuel burns off trim changes which is not compensated for. What I need is for the trim settings to be updated periodically based on flight parameters. My main concern here is when the aircraft picks up the target tow there is a massive increase in weight, drag, and a strong pitch up moment. These need to be compensated for. I am working on a customization of xPlane to simulate the tow and cat launch. 

2. Might be a factor of the aircraft speed when it crosses the waypoint. Cruise speed on this is 80m/s. 

5. Need to have a way from the GCS to flush the APM waypoint memory that works. 

6. So what settings are required to get this working? Need to maintain constant airspeed at all pitch angles.

7. Understood. Will try.

8. What I was getting at is why not use the calculated wind speed and direction, derived from heading required to hold course and airspeed required to hold track speed (over ground) recursively to calculate heading and airspeed required to track course and maintain speed? This is how airborne GPSs do these calculations.

10. Understood. reason for looking at opensource.

11. Will try tuning yaw for takeoff and see what happens in flight. Note that in operation all takeoffs will be catapult so this shouldn't be as great an issue.


 Thanks again. 


Comment by Jonathan Challinger on July 11, 2012 at 12:38am

Comments on comments on comments:

1. This is why we need better roll and pitch controllers, but additionally you probably need to build in a feedforward from landing gear extension to pitch.

6. There currently is no settings that will make this work. It is part of the controller design. This is something that I am personally trying to dig into and fix.

8. In order to do this, we need an on-board wind estimate that is reliable and stable. We should be able to implement Bill Premerlani's wind estimation soon, which allows us to get true airspeed and wind without using an airspeed sensor.

Comment by Jeff Zika on July 16, 2012 at 1:29pm

Ok here is a weird one. On long tracks between waypoints greater than 64km apart, approx every 5 minutes the autopilot goes offline resulting in a hard dive, random roll, and throttle to idle. It recovers in 1-2 seconds, stabilizes the aircraft, and continues on course. Why?

Also, is there any way to raise the limit of 127 for loiter radius and waypoint detection radius. At 65m/s with 45 deg bank maximum turn rate the minimum radius is 450m. This is way above the maximum setting of 127. 

Also, is there any way to add a divide factor based on air (or ground) speed to the roll and pitch PIDs, particularly P? Settings that work at 50m/s are to sensitive at 100m/s, etc. 


Comment by Shyam Balasubramanian on August 25, 2012 at 10:26am

Is there a document that explains the ARDUPLANE source code. If you have any, I would appreciate it. Thank you !

Comment by Joe on October 4, 2012 at 12:37am

Why the need of a 5 channel controller?

Comment by james sowell on October 4, 2012 at 4:00am

joe 4 channels plane ail. rud. thr. elv. 1 channel flight modes hope that helps

Comment by Ife O Ogunleye on October 8, 2012 at 5:45pm

When i click on the "Telemetry kit" link, I get the follow error message.


You do not have access to this page. Please contact customer service for further details on accessing this password protected section."

3D Robotics
Comment by Chris Anderson on October 8, 2012 at 5:53pm

Ife: Good catch. Fixed!

Comment by Kurt Kreiger on October 21, 2012 at 3:08pm

Is it possible to alter the channel assignments for the APM 2.5 output.

I am using PPM sum from a DragonLink and the channel assignment is JR versus the Futaba style the APM uses.

I could bypass the PPM sum and directly connect them but I was hoping for less wires. :-)

Comment by Calle on January 5, 2013 at 4:14pm

Hey all!

Does anyone have a param file for a Twinstar 2 airframe or have any pointers for PID adjustment, its not in the air yet with the new APM 2.5.




You need to be a member of DIY Drones to add comments!

Join DIY Drones

DIY Drones Monthly


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Pylon Race, is here

© 2015   Created by Chris Anderson.

Badges  |  Report an Issue  |  Terms of Service