What is ArduPilotOne?

An object oriented fork of the APM autopilot code supporting multiple vehicle types and with the goal of supporting multiple ArduPilot boards in the future (currently only ArduPilotMega).


Some clarification:

It started as an object oriented (C++) branch of ArduPilotMega. It provides an abstraction layer between the different modules of the autopilot so that they can be shared among different vehicle types. After several discussions, we on the development team choose not to use it as a base for ArduPilotMega and ArduCopter. Think of it more as ArduPilotMega++ if you like.


Currently ArduPilotOne supports: rover(full autopilot), quad (manual flight), boat(full autopilot, not yet tested), plane(full autopilot, not yet tested)


The quad full auto support will be online in a month or so when I have time to sit down with my arducopter again and get the rest of the gains. This isn't meant to compete with ArduCopter, ArduPilotMega, it is simply a different option if you want something that you can have the same code base and is object oriented. The quad/plane code doesn't have nearly as many options as ArduCopter/ ArduPilotMega, but for my research with multiple vehicle cooperation I want a platform where all vehicles run the same c++ code using different modules for unique vehicle differences. It is fairly extensible so it will be easy to add more options as needed.



1. There is no command line mode.

2. You must run it with a ground station talking mavlink. If a mavlink packet is not received by the vehicle from the ground station it will go into a failsafe mode.

3. The main ardupilotone.pde sketch is meant as a template. You can easily copy it and modify it to your liking in a different sketch.

4. In ardupilotone.pde the vehicle configuration file is included. Make sure you include CarStampede.h if you want to test the ArduRover functionality. PlaneEasystar.h if you want to test the plane, BoatGeneric.h if you want to test the boat, QuadArducopter.h for the quad etc.

5. Feel free to make your own vehicle config file for your specific vehicle, you can use the others as a template.


Tech Specs:

memory: only 80k

speed: 150 Hz attitude loop, 100 Hz control loop @ 60% load


Hosting site:

E-mail me when people leave their comments –

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

Join diydrones


  • Hello, I am a new member here. I want to add inertial navigation system on my ground vehicle, and have almost no idea on Ardupilot. Is ArduRover feasible, and is it more suitable than Ardupilot? I appreciate your advice. Thank you.

  • 3D Robotics

    Yes, I'll update the link in the post.

  • Yeah, doesn't work for me either. Is this the same project then moved to new hosting?

    A universal autopilot system for ArduPilotMega. Contribute to arktools/ardupilotone development by creating an account on GitHub.
  • Hey buddy that's a dead link

  • Developer

    I have added the RC_MODE information to the wiki. If you guys would like to help out with the documentation, just let me know and I'll add you to the project.

  • Developer

    @ Richard: The rover currently uses the magnetometer, gyros/accels from the imu board, and a gps. All of these should work for the boat. The obstacle avoidance ultrasonic sensors are optional but should work for obstacle avoidance if you go slow enough with the boat. I have not done any camera work yet. This will require using the Mavlink ROS bridge and a computer onboard running ubuntu/ debian linux or something similar to do the vision processing.


    @ Adrian:

    RC_MODE_IN:The user can send signals with the remote controller (i.e. bank angle for a quad)

    RC_MODE_OUT: The user cannot directly control this signal, it goes directly to a servo (i.e. motor pwm for a quad)

    RC_MODE_INOUT: The user can send the signal directly. It is also directly output to a servo.

  • Hi James, what do the different RC Modes do? RC_MODE_IN, RC_MODE_OUT, RC_MODE_INOUT

  • James, I am interested in starting a project with a boat... I also plan to make my project fully auto in the end...  Would this version of software be best to start my project with? also would most of your sensors you have on your rover work with a boat? meaning, I am going to need sonar and a camera, and gps but for no altitude... Also I am interested in getting object avoidance and detection with this project... Does this sound feasible?


    I will say, that if most of your code though not tested for a boat will work with a boat, I will be interested in helping with the documentation or any other area of your project if needed...

  • It would be nice to have an ArduPilotOne category in the forums. I had so many questions about APO but no one knew what it was at the time :S so I had to figure it out on my own :)

  • Developer
    James, Thanks for sharing, I like your Object Oriented approach,
    this is cool stuff, I will check it out!
This reply was deleted.