Connecting two SDP31 pressure sensors for dual airspeed not working

Hi all,

I would like to connect two SDP31 differential pressure sensors to my Pixhawk Cube.

I have a self-made SDP31 board with two SDP31 and each has its own I2C address (accomplished with the external resistor). Both sensors are working independently on I2C bus 0.

The problem is, that when I set ARSPD_TYPE and ARSPD2_TYPE both to “6” (SDP3X) then the first SDP31 is initialized two times (with address 0x22) and the logged value for ARSPD1 and 2 are the same.

When I uncomment the continue instruction from the SDP3X initialization (inside the "stop continuous average mode" if-instruction; line 77 of AP_Airspeed_SDP3X.cpp) in the source code, both sensors (with addresses 0x22 and 0x23) are recognized but only the second sensor is logged. (so it seems that only one sensor is supported of the same type)

Therefore, in conclusion it is not possible to use two SDP31 sensors (with different addresses) for airspeed 1 and 2.

Is this a bug?
In addition, what can I do to use both SDP31 sensors for airspeed measurement?

Thank you for answers in advance,
best regards,


I think your issue with the code should be elevated to an issue on the ardupilot github repository issue list. Please post this information there or consider contributing a pull request if you know where the code needs a change.

Hi Nathan,

thank you for your answer and the hint, I will do that!

Bugreport is at:

1 Like