Temperature Changes Can Cause Uncontrolled Roll

Short Story:

As this video shows the APM gyro is sensitive to heat changes after it is powered on. Be careful that you allow your APM to acclimate to the flying conditions before powering it up for the first time. This doesn’t seem to take more than 5 minutes but this is only for my specific quad configuration. Since everyone’s quad is different yours might take shorter or longer. My startup cycle and preflight checks now have me removing the quad from the vehicle\building\shade and placing it in it’s takeoff point as the first step. I then proceed to unpack batteries, transmitter and other gear. This give the APM a good chance to warm up or cool down before it is powered on for the first time.

Long Version:

During my tenure with the APM I’ve had a few odd crashes. Once while flying outside of my office with a cell phone camera zip tied to the frame it started rolling to the side uncontrollably. I wrote this off the the cell phone shifting.

A few weeks later I was doing some testing just outside my house. I had another uncontrolled roll. This time I was much lower and it wasn’t too hard to land before it flipped.

Crash three was again just outside of my office. I was testing simple mode at lunch. Another uncontrolled roll. (By this time I’m getting good at landing it with minimal damage.)

Crash four was after my MuMetal testing. I had taken it just outside of my house again for some loiter testing. Again it rolled uncontrollably.

During the last crash I had all of the logging on. I was linked to my laptop and even got tLogs. This time when I carried my quad back into my house (without unplugging the battery) I was able to see that the quad thought it was rolling to one side continuously even though it was just sitting on my desk.

I powered off the APM and powered it on via the USB interface with the intent of viewing the raw INS data from the terminal. Unfortunately when I began streaming the raw data the gyros looked just fine.

The next morning I plugged in the APM and began streaming INS data. My intent was to check on it during my lunch and see if it failed after a certain amount of time. Unfortunately when I came home for lunch the mission planner was locked up and no new values were streaming. I clicked on my workbench light, rebooted my laptop and started the INS test command again.

I came home from work to check on my test but mission planner was again crashed. This time the last value displayed on screen was a bad gyro value! I had seen failure! (I didn’t know it at this point but my workbench light was the key.)


At this point I began to assume that my APM had failed but only slightly. I didn't want to trust it in flight but I could use it as a testbed for other projects. I took everything apart and decided to do some random testing.


I hope all of this information helps someone. I’m not sure if this is appropriate to add to the wiki as a preflight step.


E-mail me when people leave their comments –

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

Join diydrones


  • Just checking, has there been a code update on temp calibration regarding this?


  • Hy J B 


    Thx a lot for this post since I have the exact same problem discovered during today’s flight. I got my Quad in the car with an inside temperature of around 40°C.

    Then I took it outside to an ambient temperature of 28°C prepared the battery and took off.

    After 5 sec of hover the quad suddenly flipped to the right side, without any reason. 

    It might be the same problem as you got since before that the quad performed well for several hours of flight time. And had never experienced such a strong temperature drop…



  • It certainly could be a bad imu. It looked to me like it was affecting roll much much more than pitch or yaw.

  • Did you follow my test procedure exactly? This problem is actually hard to produce. 

    Allow APM to relax to ambient temperature. 

    Power on APM

    Connect to Apm with MP. 

    Arm APM

    Heat IMU. Mine only requires about a 10F difference. 

    It is entirely possible I have an Apm with a bad IMU. I certainly won't contest that possibility. 

  • I repeated the test on another APM 2.5 that does not have a suspect barometer, ARMED and my Artificial Horizon is perfectly steady and level with my Quad sitting on the desk, I raise sides and AH follows as it should, that is whit baromerter temp at about 80C

  • I'm sure I do somewhere. I will try and find it. It would be the tlog from the MP session recorded in the first youtube video shown at the start of the blog. I can reproduce it tomorrow easily if I need to. 

  • Developer

    Hi JB,

    Andrew Tridgell - I did the ultimate realistic experiment. I carried it outside. No heatgun required. The transition from indoors temperature to outdoors temperature was enough to overload the drift correction.

    That is a surprise, do you have a tlog of that experiment? It is possible that your MPU6000 is more sensitive than it should be.

    Cheers, Tridge

  • Deleted my own comment since autocorrect made it wrong! 

    @Andrew - Thanks for the full explanation. 

    @Joe - Can you give it a test while armed? 

    Just so I'm clear. I do not believe this to be a bug or anything wrong with the code. This is simply an operational parameter that I was unaware of and I believe caused my crashes. 

  • J.B mine was disarmed

  • @Eagle - I don't know how the Arduplane code responds to barometer drift due to temperature. It's not hard to set up and test. Give it a try and report back.

    @Andrew Tridgell - I did the ultimate realistic experiment. I carried it outside. No heatgun required. The transition from indoors temperature to outdoors temperature was enough to overload the drift correction.

    @Joe - Was your APM armed? The aforementioned drift correction is much stronger while the APM is disarmed.

This reply was deleted.