IMU failing to reach target temp

I keep getting prearm errors on a cube black, low imu temperature. My target is 45 and I can’t get past 38.8. Problem if I lower the target to 38c, during flight my imu temp continues to drop. On the attached graph, the temp doesn’t drop that much but it was 6c ambient. I have to work tomorrow (it’s going to be around -8c), so is an IMU temp calibration my solution? If I put another cube in tonight, I don’t think I can get the manual tuning, FFT analysis, and autotune done by morning lol!

What firmware version and related params have you got?
How is your +5volts from the power brick?

If you put another cube in the same aircraft, you should be able to copy all paramrters. Use the compare feature and you can write all parameters that you need.

But check the power brick first.

Do you have a lot of extra stuff cpnnected directly to the cube, like telemetery radio or lidar?

I’m running 4.3. As for external gear, a camera, Herelink and a Emlid M2 gnss. But they all have their own power supplies. I’ll check the voltage log on the board. Thanks for the suggestions!

That strange, I’m running a cube black with no issues. Flew here in sweden today, 2.5 degrees C outside. If there is nothing wrong with the voltage there are some parameters for the heater you can change. You should probably not change them but I could check mine so that we can see if there is any difference, shouldn’t be but just in case.

I’ve looked at those parameters, but the only thing I can see I could change would be the P and I terms of the heater. But that would be like guessing you P term for pitch or roll lol! I’m currently running a imu temp calibration. It will correct the imu’s response for temperature, but I doubt it will change the heater’s P and I values. May Prusa 3d printed has heater tuning : ) One odd thing in the parameters are the INS_ACCn_CALTEMP and INS_GYRn_CALTEMP, all 6 were set to -300 which is the default if the accels haven’t been calibrated. That’s pretty weird as it would be pretty hard to fly without that calibration. And all this started after 4.3 upgrade. Maybe the firmware update didn’t transfer the temperature calibration temps. I just did the calibration and I have all 6 values populated with the correct values.

Does is work now? The temperature should still reach 40 degrees, it wants to be at 45 but will let you arm at 40. I’ve noticed that on windy cold days the temp can drop below 40 while flying. This won’t affect the flight performance though. My FC is mounted on top of the frame exposed to wind so if yours is, maybe a little canopy to cover from wind would make it easier for it to keep temperature in flight.

I think you could set the target temperature to 20 and do a calibration. The 45 is probably just so that the imu can have the same temperature even when you fly in hot weathers. If you calibrate at 20, you might run into issues at ambient temperature over that.

It is always a good practice to save a backup of your parameter file before any update… anyway, you can validate if the FW update really afected this parameter by opening and old flight log and comparing the values for these CALTEMP params…

I took all the pointy long bits off the unit and stuffed it the freezer😂. Set the target temp to 70c, imu 1 & 2 to calibrate to 65 and imu 3 to 55. Pulled it from the freezer and started calibration at -10c. Put it into a small room with a few heaters so hitting 65 was easy. Reset the target temp to 40 with 15 for the heat margin so it will arm at 25.

Good idea. I checked the previous version to 4.3 and it shows cal temps in the 40’s. After firmware 4.3 pre calibration all three were -300. Post cal they’re 55 imu 3 and close to 65 on imu 1 & 2. Cool.

Just took it out and it works great at -5c. Funny thing, came up to 45 pretty quick. I know the imu temp calibration didn’t fix that. I wanted it done for cold temps if my heater couldn’t keep up. Though it doesn’t make any sense, the only change would have been the ins_acc/gyro_caltemp values of -300 from the firmware upgrade.

1 Like

I think this makes sense… it would be nice to investigate how this parameter was modified, it shouldn’t happen, specially with no notice or warning…