3D Robotics

ArduPlane home page




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!3689354440?profile=original (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.



E-mail me when people leave their comments –

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

Join diydrones


  • I have a question, but forgive me if it's spelled out somewhere as I have been unable to find it.

    I am confused about how to control the Flight Modes. I see the section in the wiki ( http://code.google.com/p/ardupilot-mega/wiki/FlightModes ) In the wiki it discusses toggling the switch to control the flight modes, but in the software I see this::

    If you are using channel 8 for mode switching then POSITION_5 and POSITION_6 should be MANUAL
    The hardware failsafe MUX is set to go manual at 1750 milliseconds
    Set your switch(es) to produce 1165, 1295, 1425, 1555, 1685, and 1815 milliseconds

    Can someone please explain what the last line means? Set your switches? Is this a special type of radio that can alter the pwm times?
  • You were right Chris, as soon as I upgraded to Arduino19, it works fine...

    Thanks alot!
  • Developer
    You should read the manual; it explains this.
  • Just a simple question. I'm using epo Cloud Fly, It require Aileron, Elevator and Rudder. The alpha Code is able to move Aileron and Elevator. How do i change it to be able to use Rudder.
  • OK, Upgrading to Arduino-0019 did it.

    After checking out a fresh copy of the code i had to run an update before it downloaded all libraries, but now it compiles fine.

  • 3D Robotics
    I just tried it and it compiles fine for me. That file is in your Arduino distro--mine is here: C:\Users\Chris\Documents\arduino-0019\arduino-0019\hardware\arduino\cores\arduino\stream.h

    Are you using Arduino 19? (you should be)
  • Same here
  • I can report the same problem. Checked out the sketchbook and when trying to compile i get the following error:

    D:\utveckling\Projekt\Ardupilot UAV\APM Software\ardupilot-mega\Sketchbook\trunk\libraries\FastSerial\/FastSerial.h:53:20: error: Stream.h: No such file or directory

    D:\utveckling\Projekt\Ardupilot UAV\APM Software\ardupilot-mega\Sketchbook\trunk\libraries\FastSerial\/FastSerial.h:86: error: expected class-name before '{' token

    D:\utveckling\Projekt\Ardupilot UAV\APM Software\ardupilot-mega\Sketchbook\trunk\libraries\FastSerial\/FastSerial.h:106: error: 'Stream' has not been declared


  • @Chris and Michael
    I got the libraries via svn checkout of the arducopter trunk you gave. Now I get a compilation error of a missing file called stream.h. I searched through the libraries and the file is nowhere to be found. Do you have any suggestions on where I can get the stream.h?
  • Chris and Michael,

    Thank you for the info. I will check those places. I really appreciate it.
This reply was deleted.