Unable to connect to external DPS310 Barometer

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!

I would disable that Flight Controller by throwing it in the trash but…

Try the Custom Firmware builder and enable what you need. Like DPS310 and External barometer.
Custom Firmware Builder

I appreciate the help. I hadn’t seen the custom firmware builder before and it’s quite fascinating! However, I am unable to get a successful build with disabling MSP and enabling DPS310 in a stable build. It was successful in creating a build with SPL06 enabled (seems like it has to as I get an error whenever I disable SPL06) but the sensor still doesn’t show up in QGC.

Disable more stuff! It’s an F4

So you are predicting that the reason it is not detecting the DPS310 is because the board simply cannot handle the memory/RAM requirements of ArduPilot’s features?

Not sure actually but its a common refrain here with F4’s. If you want all Ardupilot features to work use an H7 based FC.
So, try disabling features you don’t need.

Note-There has also been issues with Speedybee and the version of firmware to load.

I’ve removed almost all the features unnecessary to my build but the sensor still does not show up in QGC. Quite unfortunate.

You can use search here on the forum for “Speedybee barometer” for other struggles.

Update: In a last ditch effort, I again tried probing on all the buses and with bus0, I was able to detect the GPS barometer successfully! Thanks for the help Dave!

1 Like