Baro drift, and how I got round it.

As some of you know, I've been having some issues with altitude drift:

Various alt loss scenarios on alt hold, auto and loiter

Well, tonight I have a video showing it, and I think I've got a repeatable working solution to this. I run the test 3x for 2 hours (over 3 nights basically), and the last hour the baro is rock solid (+/- 0.05m).

It's not ideal - you need to get the APM booted up *one hour* before flight - but it does at least work. It should mean more accurate flight and less severe auto landings for those of us suffering from this. Power source is irrelevant, so I recommend power up from USB to save flight pack volts, then swapping to the pack when ready to fly.

As well as using this method, I highly recommend using black tape over the baro. It fluctuates by up to 10m if you flash a light over it! (I did have it on video, but managed to delete it!) It does re-settle, but why expose yourself to this problem. It will mostly affect you if you flying on on/off cloudy days.

To see this for yourself, dim the lights in your room, then flash a 60W bulb over the baro from about 10cm, which you have telemetry running. You see an immediate change in altitude and around a 15 second correction. Take the light away, and it will do the same.

Hope this helps someone.

E-mail me when people leave their comments –

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

Join diydrones

Comments

  • @Euan Ramsay

    Would it mean that internal temperature takes a long time to stabilize?

    How did you reset the zero altitude after your two running hours?

  • Not yet - been on holiday to Geneva and the inlaws. Will attempt on Sunday.
  • @Euan: Did you do your experiment?

  • Thanks Euan!

    I did another test on my platform with an altered driver. My assumption was that the (a few cents) cheaper part the MS5607 is perhaps more resiliant to thermal influence than it's more precise brother the MS5611. The MS5607 has 20cm and the MS5611 has 10cm resolution. The drivers differ slightly in the calculation and so I altered the MS5611 drivers "off" and "sens" calculation pretending that it is a 5607. The reported hight still rises but def. less than before (I think it could be half as well). During the testflight a difference was hard to tell but I think the 5611 driver was a little better. So just a short test note of something that seems stupid. That is def. no solution to the problem but perhaps something to try out by arducopter devs. Perhaps that could be a "dirty patch" to diminish the problem. I don't know and just want to report back a finding that might be useful.

    Greetings Rob

  • Brilliant work Crash. I might do an experiment - will remove the 2.5 top cover and the foam and see what that does.
  • Hi! I did a test on the ms baro and temperature. During operation the MS baro seems to heat itself up by +2,7 degree after 230sec.

    EEPROM Calibration data from both tested parts.
    Both are advertised to be MS5611.
    The Prom 0 differs! Freeimu Baro has plastic cap. Naze32 has metal cap.

                NAZE32   FREEIMUv035_MS
    Promword 0:     4        0           16 bit reserved for manufacturer
    Promword 1: 49495    49332           Pressure sensitivity
    Promword 2: 49581    48279           Pressure offset
    Promword 3: 30345    30707           Temperature coefficient of pressure sensitivity
    Promword 4: 26329    26621           Temperature coefficient of pressure offset
    Promword 5: 32904    31744           Reference temperature
    Promword 6: 28273    28331           Temperature coefficient of the temperature |

    Note: Promword 7 contains checksum data and is omitted here.


    Test condition:
    Ventilated room with about +24 Degree celsius.
    Freeimu was not covered by foam or anything.
    Naze32 was covered by much foam that most probably transduces heat of the surrounding chips.
    Both parts were started at the same roomtemperature. The delta temperature from "cold start"
    was measured over time.


    Result:
    The MS Baro on freeimu maxed out at +2,7 degree celsius after ca. 230 seconds

    The MS Baro on Naze32 reached +6,2 degree after those 230sec and maxed out after
    ca 600sec with +7,9 degree celsius.

    Discussion:
    The freeimuresult can be taken as normal Baro heating up during operation.
    The other result shows a significant heat up from surrounding chips most likely
    amplified by the attached foam.

    According to this: http://de.wikipedia.org/wiki/Lufttemperatur#Abh.C3.A4ngigkeit_von_d...

    the temperature/hight is almost linear on the first 2KM. A temperature of 10 deg. on the ground will be 0 deg in 2Km hight. So one degree difference would be 200m. That is without compensation mechanisms and airpressure compensation but shows the important role of the baro measured temperature. This test also shows that there is a significant difference in measured temperature and the surrounding chips on a pcb.

    Cheers

    Kraut Rob

  • They should have sensor add on ports on the usb 3dr radio. That way you could add on things like gps, baro, and imu. It would allow for a better and more advanced ground station interface and overall better control.
  • Differential baro for something with very limited flight time is normally not necessary - except you are living in a place with frequent and severe airpressure changes. GPS will not solve for that as well because it has poor vertical resolution and produces 10m jumps quiet happily - I would choose a baro over gps any time in this regard. I don't know if it is supported in apm but maybe it is possible to connect a different baro over I2C, because the onboard ms5611 is connected with spi it could be disabled by software.

  • Developer

    @c_j_g, Great idea! Differential barometers are the way to go and that gives a great reference. Solid altitude fro sure

  • @ Weather changes ambient air pressure

    This could be a nice extension for andropilot and/or droidplanner sending correction data to the UAV. Some Tablets (motorola xoom e.g) or smarthones (galaxy s4 e.g) have buildin baro-sensors (using on the ground 99% of the changes should be the reason of weather changes).

    What do you think, is such a thing is possible (MAVLINK, virtual RC Channel)?

This reply was deleted.