I've flown a lot of different planes while working on ArduPlane, but it wasn't till yesterday that I first flew what is perhaps the most popular plane for new ArduPlane users - the Bixler2.

While setting it up on Saturday evening I had a bit of a look through some Bixler build logs in the forums, and I was surprised to find that none of the suggested ways of mounting the APM were really convenient. Some people put it in the bottom of the fuselage, which makes it difficult to get cables to, and hard to work on. Some used custom or commercial mounting systems for putting the APM on the top at the front, but that makes the Bixler less aerodynamic, and trying to cram all the accessories like telemetry radio and GPS in makes it a tricky fit.

The solution I came up with is to mount the APM upside down on the underside of the canopy. ArduPlane has supported the AHRS_ORIENTATION option for a few releases now, which allows you to have your APM mounted in a lot of different orientations. In this case it seemed perfect to use AHRS_ORIENTATION=8 and mount it upside down on the bottom of the canopy. The advantages are:

  • it is easy to get at the APM for programming it, or accessing the pins, as you just pull the canopy off, and the APM comes with it
  • when you remove the canopy it makes it easy to get to the battery space, as the APM is out of the way
  • it leaves plenty of room for the receiver and GPS on the top part of the canopy
  • it is clear of any wind effects, well shielded in the fuselage


I also used a pin through the plastic top of the canopy to hold the canopy on more firmly, as I don't really trust the magnets. You will also notice a couple of pins stopping the wings coming loose - those fuselage screws are rather loose and one came loose on the first flight.

This mounting system is also ideal for a PX4. I happened to use an APM2.5 for this build as I was doing bench tests on my PX4, but either one works with the AHRS_ORIENTATION option.

One thing to watch for with AHRS_ORIENTATION is that you need to reboot and then re-level your plane after setting it. It is best to use the CLI full accel calibration, so it can properly adjust for the slight pitch of the canopy bottom surface.

Cheers, Tridge

E-mail me when people leave their comments –

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

Join diydrones


  • I think the problem with this design would be powering it up. You'll need to set a delay before Gyro initializes, I guess.

  • It seems that when with an APM 2.6 board (external compass) upside down, you need to leave the COMPASS_ORIENT to 0 (ROTATION_NONE) instead of the recommended 8 (ROTATION_ROLL_180).

    A couple of levels of inversion here. 

    I assume that the external 3DR GPS uBlox LEA-6 with Compass must have the compass upside down so it would normally require COMPASS_ORIENT to be ROTATION_ROLL_180. Now that we're flipping the APM upside down, this is no longer required as the compass and IMU is this configuration are now in the same relative orientation as the original APM 2.5.

  • I see, that is dashed clever!

    Just to push ideas around, I note that the original Ardupilots used horizon sensors but they've been totally dropped in favour of the IMU (I think that's how it went, it was before I discovered DIYdrones).

    Well, the latest cameras and image processing soft/firmware is very compact and light and it would seem to be an easy thing to put horizon sensing back into the mix. It then looks to be a fairly short step to combine a horizon camera with a optical flow camera (pointing straight down) to determine the aircraft's height above the ground.

    You need both cameras because Oz drones generally fly at low altitude and you don't want to be looking just at the ground and then fly into a hill.

    Anyway, I'm rapidly catching up with the state of the drone art and I'm drawing a few diagrams and pushing some numbers around. Many thanks for your help.


  • Developer

    Hi Ned,

    The accelerometers are corrected for inertial forces using velocity changes from the GPS, allowing them to measure the direction of gravity. This is used to correct the attitude over a time period of around 5-10 seconds.

    Cheers, Tridge

  • Hello Andrew,

    A basic question on the IMU, if you don't mind.

    I can readily understand what the rate gyros on the IMU chip do, but I don't see what role the accelerometers play while a (fixed wing) aircraft is in flight.

    Certainly the accels are not measuring gravity because the aircraft undergoes various inertia forces while turning, banging around in turbulence, etc. Furthermore, a sensor that small would have a high level of drift and would surely have limited use as a dead reckoning system.

    So what do they actually do, and why is it important that they be calibrated for a particular airframe?

  • Hello, Neat idea but I have had a thought. How do you connect the battery / power up with the canopy / APM not fitted and probably not level.



  • Developer

    Hi Shane,

    It is in the CLI, under the setup menu.

    Randy and I have been working on making it more easily accessible today. We hope that it will be accessible over MAVLink for both planes and copters in the next MissionPlanner release.

    Cheers, Tridge

  • Sorry if this is a foolish question, but is the "CLI full accel calibration" documented anywhere?

    I have had a look and can't find reference to it in any of the documentation.

  • Developer

    Re: Levelling 

    In addition to what Tridge said, if you are using Andropilot there is a menu option to perform a manual level - which you can use while it is sitting on the bench.

  • > ...but for gyro cal it doesn't matter what angle the gyros are at...

    Ah! I understand now.

    Thank you for the comprehensive and very informative reply. It has really helped me out (The ability to put the APM upside-down solves some build problems I have been having).

    Kind regards,


This reply was deleted.