We have just completed a flight test program of our MK-II SurVoyeur UAV System after having fitted the new Autopilot/IMU. This autopilot replaces the 32bit AVR based autopilot in our preceding UAV's, with a view to giving a big boost in performance, shorten IMU cycle times ( from 200Hz), and eliminating all the component obsolescence issues of the AVR based modules.

The autopilot is again a single module, but now contained all the video switching for up to 4 video sources, switchable from the ground station, all the DC-DC convertors for up to eight Medium size Digital servos, all the power supplies for Datalink and video transmitter modules, as well as all power conditioning for the EO-IR stabilized gimbal fitted to the MK-II system.

There are now 6 serial channels ( RS422/RS232/TTL configurable) , 11 PWM outputs, Analogue inputs for Laser Rangefinder. Ultrasonic Rangefinder, ESC/Motor Amp measurement, and for a two cylinder Gas engine CHT measurement ( using thermocouples).  External Air temp is also measured to do Static Pressure compensation for Baro Alt.

The module is also fitted the Measurement Specialities 24bit Static and Dynamic pressure sensors. In addition, a further 6 (!) digital static pressure sensors are fitted. 

These are :

MS5611  ( two fitted in different locations)





The reason for this was really to test the performance of each of these sensors, and as they cost very little, we decided to include them all on the final modules.  Since most actually all work quite well, we are implementing a redundancy selection scheme to select working sensors from failed ones, just because they are there...

The sensor we are most unhappy with is the 24bit Measurement Specialities device the MS4525HDR. It is so complex to manage, each sensor serial number is supplied with a special set of coefficients that are used in a complex set of computations to do the pressure/temperature computation. These coefficients have to be stored on-board the autopilot which means each software load has a specific module particular to that board. A config management mess...since the coefficients are not stored within the sensor by the manufacturer, but on a piece of paper supplied with the sensor. Nuts!

And then the sensor performance over the range 0 to 60deg C is not great - it varies by more than 5millibar ( 40meters!). So, on top of its complexity, we still have to do a 2nd order polynomial temp correction to get better than 0.5millbar variation over that temp range. It does not end there - it is also very susceptible to vibration - in the plot below, you can see the wild oscillation  ( blue line) as soon as the wheels start to roll, and how the pressure reading goes smooth again as the wheels lift off the ground : From vertical lines 2 up to 4. The graph is in pressure, so the graph shows reducing pressure as the plane climbs from vertical line 4. The oscillation is a peak to peak value of 0.9millibar - nearly 8 meters! Certainly cannot use this sensor to know if you have lifted off the ground! We use the LRF...

Measurement Specialties just snubs us - we are to small for them to be concerned about our 'bad' report...


The IMU is fitted with two MPU6500, each running a full IMU at 400Hz, but with different filter coefficients within the Kalman filter - this helps tremendously in the elimination of IMU bias or drift during high vibration, such as during taxi on rough ground.  An HMC5883 Magnetometer is also fitted as a separate module, able to be located in a clean environment on the A/C.

ALL sensors are fully temperature compensated from 0deg C to 65deg C

The host processor is the STM32F427, running at 140MHz.

Failsafe is managed by a separate AVR processor on the module.

We also used large connectors so that cables are more easily crimped, more reliable, and fit securely.

( see my previous blogs for info on the previous autopilots)

The test aircraft was fitted with is full payload - an EO-IR stabilised gimbal ( Sony EX11 block cam, and FLIR QUARK IR CAM), and a 16Mpixel fixed down looking stills camera, snap and focus controlled by the autopilot.

The Laserman ( Lightware) SF10 laser rangefinder is also fitted as the main landing aid sensor, as visible in the above photographs. 

Here are some photos of the autopilot module:

Top view of full board:


These are the two module in the middle, containing the inertial sensors and all the pressure sensors. They are separate , small PCB's, so that they can be easily exchange for ones fitted with newer devices, etc.


The flight test were very successful, the new autopilot performs very well, and the IMU worked as designed...

The launch and landing plots below show the Height above ground from Baro Pressure sensor and the laser Rangefinder height to ground.

This is the auto-launch plot:

The image is not very clear, but resolution on the blog post does not really allow any better...

The green is the Rangefinder, which works to 60meters, but we limit it at 40meters, since we are not interested in range above that.

The red is pressure height AGL.

The vertical delimiters are 2.4seconds apart. Wheels up are at the 4th vertical.

The 'step' in the red line at middway between 9 and 10 is where we command a change in datalink TX power from 1milliwatt to 100milliwatts which results in a short link loss period.

A nice smooth climb of the A/C. The left scale is 4meters per horizontal line.

What is very evident is the lag in pressure altitude measurement during the climb - the lag is almost a half second. The air pressure measurement is not filtered or smoothed at all, so it is purely the digital sensor internal oversampling delay.


And the Auto-landings , below, are a thing of beauty!

Red again is pressure based height AGL, green is LRF.

And again, the step middway between the 1st and 2nd verticals is the switch from 100milliwate back to 1milliwatt on the datalink , because we land about 10meters away from the ground station, and 100milliwatts saturates the RX at that range - the Xbee 868MHz modem are VERY sensitive - we get nearly 30km range at 300milliwatts with 1/2 wave dipoles.

The landing is a circle, starting at 100meters height, and spiraling down, till about 20meters AGL ( vertical line 6 approx) and then unrolling, straightening out onto track to touch down at a GPS point ahead. It is seen that the LRF and Pressure height track reasonably well, but the pressure sensor lag is still evident.

At vertical 11, we are at approx 6 meters height, and we begin final landing control, at 4 meters we kill throttle, and start the flare maneuver, which completes at 0.4meters above ground, and a smooth gentle touchdown at just after vertical 16, at about 0.5m/s sink rate. After 14 such landings the min sink rate achieved was 0.3m/s at touchdown, and the max was 0.7m/s. Windspeeds during the 14 flights varied from 4m/s up to 13m/s.

We never managed this reliably at all with pressure only landings, and with the previously fitted ultrasound sensors we often had 'hard' landings, due to the fact that the switch from pressure height to actual ultrasound height would only occur at 5meters AGL or so - the typical range of ultrasound sensors over rough ground. With laser we switch to the LRF height at 30 meters already, and are able to compensate for any pressure sensor drift in good time.

The system is now totally hands off....Push the button and go..


The NamPilot...

E-mail me when people leave their comments –

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

Join diydrones


  • Moderator

    Jesus, that is an absolutely beautiful aircraft design. 

  • NamPilot, what you are building is truly state of the art, Hat Off.

    Would you treat us with a short video of an automated landing of your bird pretty please?

    Regards, Paul

  • Hi Pransh,

    Airframe is fibreglass, Wings and V tail are carbon fibre ( carbon Tow) and landing gear is Carbon fibre. No Slip rings used - with the gimbal in the nose you do not rotate more than 200degrees.



  • Very interesting work!

    What about after applying your custom temperature compensation, which of the barometers would you recommend?

    I ask because the LPS25HB has a less noise(0.03/0.01 mbar rms) and accuracy compared to the MS5611 (+-0.05mbar), on paper. In your constant pressure tests, which of the sensors had the lowest noise/variance after applying your temperature compensation?

    I'm currently working on a very similar project and am currently using a temperature calibrated MS5611 and was wondering if the LPS25HB was better.

  • what material have you used to make the whole structure ?

    also , have you used slip rings ? 

  • Moderator

    You welcome :)

  • Vladimir, 

    How odd, I have seen that so many times on the gliders, and I never thought of it in this application! Unreal how the mind can be in a groove and not see out! In fact, that is an excellent idea for the simple bungy launch and normal landing. We have downward pointing 'fins' on the wing tips - in case the wheels hit a deep hole, a rock or a bush, the plastic gear mounting bolt snaps off, leaving that gear half behind, and that action expends forward motion energy and then the plane turns on its axis, pivoting on the wing fin touching the ground - sounds awful but it works very well, and there is never any damage at all. So a single wheel, just rearwards of the gimbal, will let the plane land nicely, and if a side wind rolls it, we would still pivot on the wing fin. Some cutting and gluing tomorrow!


  • Moderator

    Look to sailplane-style single wheel. It's really small and light. You has a folding prop, instead of me and I think sailplane wheel probably good idea.

  • Hi Vladimir,

    I would love to have retractable landing gear, but the mechanism just adds weight and complexity while consuming payload volume. We have just done some bungy launch tests - basically a peg in the ground with a bungy and rope extension, walk back to stretch the bungy, hold the plane at the tail, horizontal, and let go - It works very well indeed, and then the idea is to see what we can do with a parachute, fitted by spacing the two wing halves apart with the parachute in a 100mm wide wing shaped section between them. This really more for use in areas where the bush is very dense, and landing area almost non-existent. My analysis, flawed as it probably is, seems to show that the possible increase in flight time by retracting the landing gear will be lost again due to the extra weight of the added mechanics, place and space for the wheel to go into, etc. The 1 hour flight times at 1500meters ASL, summer time, seems to meet most of the mission needs of our users. another 5 minutes from restracts does not make it worth while. But it would be nice, and it would look so good!

    The NamPilot.

  • Moderator

    Joe, you not thinking about retract?

This reply was deleted.