Hi, I’m using two mRo I2C Digital Airspeed Sensor MS4525DO on a quadplane.
If I connect only one of these two sensors, on each sensor, I read 10-11m/s on a constant air flow, so both sensor a giving the same speed.
The problem: If I connect the two sensors, I read 10-11m/s on one sensor and 2-4m/s on the other
If I disconnect the one which read 10-11m/s, I get a lower value from the other sensor: 5-6m/s
Very strange:
The sensor which read 10-11m/s is always the same one even if I change the ARSPD_PRIMARY value or if I change the ARSPDx_BUS, ARSPDx_TUBE_ORDER, change the position of the I2C plug on the I2C hub
when I set ARSPD2_USE and ARSPD2_TYPE to 0, I still read more than 20m/s if I blew in the pitot tube of the both sensors
Might you need to put the second 4525DSO on a second I2C bus?
I don’t believe the system is able to automatically assign I2C addresses, and unless you got a sensor with an alternate address, I’d foresee interference of some sort.
Okay, so Port I2C2 corresponds to bus 0 (This was once the internal bus of the Pixhawk 1).
So you should have ARSPD_BUS = 0 (This should be your primary, connected to I2C2, so set ARSPD_PRIMARY = 0)
and ARSPD2_BUS = 1 (This will be your secondary, connected to GPS1 I2C pins).
When you’ve a chance to try that, let me know what happens.
The UAVCAN sensor is one I’m working on (well, testing) with @olliw42 as part of his UC4H project.
I’ve tried these settings, mission planner is reading the one connected on GPS1, if I disconnect this one, MP is reading zero even if I blew into the pitot connected to I2C2
I’m beginning to run out of things to try - nonetheless, I would finally try swapping the two sensors and retesting the same behavior.
At last, enable Log_disarmed ( = 1) and provide the DataFlash log resulting from the above test. If it’s something wrong with the background logic, that should show it.
EDIT: Here are some instructions if you’ve not used DataFlash logs before.
Thanks for your help, here is the dataflash https://www.dropbox.com/s/dawpy1id63ta7x5/00000003.BIN?dl=0
, I blew 5 second (20-25m/s) into the one connected to GPS1 then wait 10s and disconnect the GPS1 plug and blew into the second sensor during 5s
It is difficult to tell whether it is seeing the two separate sensors or not, as the differences in traces may be due to offset sampling times . . . Regardless, it seems that the data from one is being applied to both ARSPD and ARSPD2, as both respond to the first impulse, and fail with removal of GPS1.
I did a quick test on a Pixhawk 2.1 . . . . And setting ARSPD_BUS to any value resulted in seeing the sensor data.
In other words, the “Bus to search for the sensor on” is soft at the most generous definition, and perhaps entirely false. I wonder if ignoring this is how they got around the I2C2 confusion . . .
Either way, it would appear this is a genuine issue. I’ll poke around the code to see if there’s an obvious cause.
Hi Evan,
Do you know if this issue has been solved on 3.9.8 ?
What sensors can you suggest me to have dual airspeed sensors working reliably on Arduplane ?