Barometer sinking into the ground when doing nothing

I’m running a Matek F405 CTR in an F550 hex frame on the latest nightly (as of today) which has the BMP280 barometer. I have it sitting on my floor with no airflow in the room. For whatever reason the barometer is just constantly reporting readings that just keep going down into the floor…
Is there any way I can fix this or any settings that could be the issue? Could it be a defective barometer?



My guess is that it is caused by the board warming up and that it will eventually stabilize. If it kept going forever then it’s more likely to be some kind of software or hardware issue.

The BM280 is not a great barometer for sure but I would expect it to be inaccurate but not keep falling forever.

After letting it sit for a while it does seem temperature related… much more stable now. Is there any way to compensate for this or do I have to just let it sit and warm up for 5 minutes?

The barometer seems to have a temperature sensor in it, but doesn’t look like it’s using that at all, or at least for the right amount of compensation (as far as I can tell). Could it have to do with the altitude I live at maybe?

@tenten8401, I think the baro drivers do compensate for temperature but it may not work particularly well because the components are all so close together that we end up reading the temperature of the board rather than the air.

I think a barometer calibration can be triggered from Mission Planner’s Flight Data >> Action tab (although I haven’t tested this recently) but it’s not very helpful because the best that might do is reset the barometer’s altitude to zero, it wouldn’t stop it’s descent during the warmup.

At this point I don’t think we have a solution sadly

1 Like

Ahh, makes sense. That sucks :confused:

Anything I could potentially do to the flight controller hardware-wise besides just disabling the barometer entirely? Would I be better off getting a different flight controller?

I’d raise an issue in GitHub. Temperature compensation is definitely something ArduPilot should do better.

I’ve followed up with @tridge and I was mistaken about the baro, it was the older BMP085 was terrible. The BMP280 is not so bad and we haven’t seen this issue on many of the other boards that also use this baro.

If you could provide a log that might also be good.

No idea if this contains anything useful but it was from my latest flight, I can probably get a better log tomorrow when it’s not pitch black outside…

Hi.the log shows that the temperature of the sensor in the first 5 minutes dropped from 23.5 to 18 degrees Celsius, for the next 5 minutes it has already reached 17 degrees. The height converted from baro changed from -50m to 160 meters and almost stabilized. It looks like the software did not compensates for the temperature of the sensor. The BMP 280 is as good a barometer as the MS5611. I used it in the kakuta f7 and arducopter 3.7.0 and it was great. In the latest 4.0 software, despite the possibility of connecting the BMP280 as an external barometer, this chip does not work. Because I wanted to place the baro in a more convenient location, I had to buy ms5611 which works as an external one. The solution is to connect an external ms5611 to i2c or improve the software. Good luck


Do you think this might be a potential fix to the issue? I might give it a go once batteries finish.

1 Like

As an example, I am sending a log with a f7 kakute having as a barometer BMP280. As you can see the temperature of the sensor changes in a large range but in copter 3.7.0 it is well compensated. In the model the baro sensor was not even well protected against blasts and it worked quite well. that your software has a problem or you have something wrong with the baro sensor. You can try what you wrote by putting the quad in the fridge and then into a warm room, but you do not know what the effects will be. You can try connecting the i2c external barometer ms5611. I as the second external will test it with copter 4.0 tomorrow. Maybe someone will also find a bag in the software for your board

So related to my post above, I’m not convinced TCAL_ENABLE 2 even works… I’ve let it sit for an hour at this point, letting it cool for a few minutes & rebooting it at the 30 minute mark thinking maybe it didn’t change enough or something. TCAL_BARO_EXP did not change from 0 at all in this process. Is there something I’m missing?


Thanks for testing the barometer temperature compensation feature. I have never personally tried this feature and I don’t think many other users have either so all feedback is greatly welcome.

Could you set LOG_DISARMED = 1 and then follow the “How to Use” instructions again and then post a log file here? Then we can have a look at the log and see if it’s worked as expected or not.


Thanks for the report that the external BMP280 barometer is not working. I see that on our wiki page we state that the BMP280 should be supported in Copter-4.0 but I guess you’ve hit some problems trying to get it working.

The first issue that comes to mind is that the KakuteF7 already has a BMP280 on it so if a second BMP280 is connected we will need to be very careful that it’s not attached to the same I2C bus or else the two sensors will conflict with each other.

Could you provide more details of your setup? I’ve added this as an issue to our Copter-4.0 issue list. We should also consider moving this to a new topic.

I enabled the LOG_DISARM, I’ll let it sit for a while and then upload a log.

1 Like

@rmackay9 Here are the logs, I let it sit for like 13 minutes disarmed on my desk, none of the TCAL variables got updated still. TCAL_ENABLED was still set to 2.

BMP280 tried to connect with pixhawk 2.4.8 on copter4.0 software for fMPUv3. It did not work. I bought ms5611 and as a second baro it works great. Thanks to placing on top under GPS the noise is much smaller. Included baro charts from today. Big wind 25-30km/h

Hi,maybe you will try to roll back the software to version 3.7 and check if the barometer is still floating. If not then the error is in copter 4.0.
if it is still bad, replace the baro sensor, or buy an external e.g. MS5611 and connect it to i2c .good look

It is an issue in iNav too it looks like, so I do not believe it’s ArduPilot’s fault. I would love if temperature calibration worked in ArduPilot though.

1 Like

So it follows that you have a broken barometer chip and not a bag in the arducopter software for your board. Inav controls the altitude quite well, I tested bmp280 on different boards. It remains to buy ms5611 or replace bmp280 on the board.p.s.obviously you have a barometer protected from light?