Issues connecting I2C sensor to H743-WING-V3


I am using an array of 6 ELVH-L02D HAAH-C N5A4 pressure sensors connected together to send pressure data over a single I2C connection.

When I connect it to a Cubepilot Cube Orange (running ArduPlane 4.4.0), I have no issues and the sensors connect and report values as expected.

However, when I connect the sensors to a Mateksys H743-WING-V3 (trying on both ArduPlane V4.4.0 and V4.5.1), they are not detected at all. But, if I connect a different I2C sensor to the Wing-V3, a mRo I2C Airspeed Sensor (JST-GH - MS4525DO), it is detected without any issues.

I have linked a log file with the H743-WING-V3 running ArduPlane V4.4.0 with the pressure sensor array connected.

Any help would be greatly appreciated.

Can you post a log file of the Cube orange where the baros are working?

I apologize for my late response.

Here is the log file from the Cube orange with the sensor array running.

No worries. Hm, I had hoped for a config issue or I2C DevID collision. Alas.

Can you try setting BARO_PROBE_EXT to 1?

I wonder if this is related to the i2c issues I was having with sensors on the H743.

try changing one of the sensors to i2c address to 0x09 to see if it starts working.

does the compass work with the other sensors attached to the same i2c bus?

1 Like

Setting BARO_PROBE_EXT to 1 doesn’t seem to change anything.

I’ve also tried setting ARSPD_BUS to 0 as it says in the I/O Mapping section of the quick start guide. Doesn’t seem to effect anything either.

We order the ELVH-L02D HAAH-C N5A4 pressure sensors with a fixed address. So I can’t change any of their addresses unfortunately.

The compass does work with sensors attached as well.

have you used the i2c scan script to see if they are detected?

Yeah I’ve been using it to see if the sensors have been picked up. It’ll report the mRo I2C Airspeed Sensor (JST-GH - MS4525DO) with address 0x28 but it doesn’t report any of the other pressure sensors when I connect the sensor array.

Is it possible there is a voltage issue on the I2C2 port on the H742-Wing-V3 H743-Wing-V3?

Do you have a single one of the baros that you could try instead of the array or are they all fixed together?

Yeah I’ve tried using a single one before and it is picked up on the Cube Orange but still not detected on the H743.

I tried powering the sensor array with power from the one of the 9V pins (even though its 5 volts) then through an external 5V regulator and I’ll pick up 2-4 of them but the rest don’t show up. Seems like a power issue of kind.

Are you using the pre built binaries of AP or did you use the online builder or build it yourself?

Did you look into the I2C bug mentioned?

Yeah I am using pre-built binaries loaded from Mission Planner.

The bug doesn’t seem related as I still can get all of the sensors to show up (or more often a combination of the sensors) when using power that is not from the I2C line, but very inconsistently. It seems to be a noise issue since moving my hand over the circuit sometimes effects whether all of the sensors are picked up or not.

have you tried adding some pull up resistors?

When we’re getting into the electrics… can you measure the voltage of SCL and SDA on both the Matek and the Cube and let us know if the results differ?

Here are the voltages I measured on both the H743 and the Cube Orange. I also included measurements from the mRo I2C airspeed sensor for a reference for a working I2C sensor on the H743.

I also did double check and I am in fact getting negative voltages from the SCL and SDA lines when using the power from the I2C for the sensor array.

H743 - I2C Power

Pin Measured Voltages
4v5 0.9V
SCL -0.4V
SDA -0.4V

H743 - mRo I2C Airspeed Sensor

Pin Measured Voltages
5v 4.85V
SCL 3.16V
SDA 3.17V

H743 - 5V regulator power

Pin Measured Voltages
SCL 2.96V
SDA 2.98V

Cube Orange

Pin Measured Voltages
SCL 3.17V
SDA 3.05V

In that case I believe that @geofrancis suggestion to add pull up resistors might help, see Internal pull-up resistors are insufficient for I2C for a start.

I tried using some 2K Ohm resistors and that seemed to cause them to show up, but was never able to read data off of them.

Unfortunately all of the sensors have stopped working so we have to wait for new sensors to arrive before I can continue working on this.

do you have an arduino board like an esp32 or RP2040 you can use to test them?