As I’ve been testing my copter, in one of its most recent autopilot missions, using the onboard/built-in barometer (SpeedyBee F405 V4 SPL06 barometer), the drone began to suddenly ascend from about 30 feet in the air to above 100 feet in the air. This was not a one time issue and I have had multiple instances in which the onboard/built-in barometer does not reliably help maintain the drone’s altitude and sudden barometer spikes and dips occur. In fact, when sitting at my desk today doing some testing with the drone stationary, the altitude reading ranged from -20 ft to 55 ft! I’m not sure if it’s defective or not but I’d rather not use it.
This prompted me to try to use an external barometer, one integrated into the GEP-M10-DQ GPS module. I have seen a couple discussion on this forum talking about the compatibility of the DPS310 barometer with ArduPilot (ArduPilot only mentions probing of the DPS280 as an external barometer) but users/developers have stated that the DPS310 should still be supported. With this assumption, I have tried to have my FC properly show the DPS310 as one of the barometers detected but to no avail.
I am certain that my I2C connection is not an issue because the only compass in my copter, the one located in the external GPS, is also connected through I2C and functions properly. I’ve cleaned the area between the SDA and SCL connections and can confirm that there is no continuity between the two wires either.
Originally, I tried changing params such as BARO_EXT_BUS, BARO_PROB_EXT, and BARO_PRIMARY. With a lot of trial and error, I found that enabling probing for an MSP barometer seemed to have added a new barometer to the list of my sensors (I am using QGC):
I am unsure of what the “? (MSP0)” means as my barometer is connected through I2C and it is the DPS310 barometer. But, whenever I have this configuration, using either the onboard barometer or the “? (MSP0)” barometer results in a warning of “Baro: not healthy”. The “? (MSP0)” barometer shown also doesn’t seem to be linked to my GPS barometer because when I disconnect the GPS completely from the FC, it still shows up.
A staff member of GEPRC, the company that created this GPS module posted this issue on the iNav github repo: The barometer integrated on GEPRC's GPS is not working - the solution · Issue #10442 · iNavFlight/inav · GitHub. In short, there seems to be an I2C address conflict between the inbuilt barometer and the external barometer. The way to fix this is by removing a 10k resistor on the GPS which changes the I2C address of the barometer. I have done this and now, BARO_EXT_BUS shows a new option in the dropdown: Bus6 (my GPS is connected to UART6 which is probably why it is 6). Yet, the DPS310 does not show up in the list of sensors and the same “? (MSP0)” barometer is shown.
At this point, I am unsure how to proceed. I have seen some methods that mention manually modifying the firmware for changing the I2C bus used and others that remove the onboard barometer so there is no I2C address conflict. I’m wondering if there is a way to disable the onboard barometer? Any help would be greatly appreciated!