Hi @GarRov,
I’ve moved your post to this thread, because I believe it’s on the same topic.
Thanks for digging into this, and providing some extra information about your setup and what you’re experiencing
It won’t be overwriting it - data from separate sensors get sent via separate messages (or at least using separate IDs). Given you have two internal pressure sensors, the data for your external pressure sensor should be sent as SCALED_PRESSURE3
. That should happen automatically, as part of the same stream group as the other sensors, but that’s not appearing in the tlog you shared (despite the screenshot showing that the sensor is being detected as connected to the flight controller). It’s possible there’s an issue with your sensor that’s preventing that[1], or a bug in the firmware.
I just took a look at the code, and it seems like ArduSub re-allocates SCALED_PRESSURE3 for a temperature sensor, as a workaround to support our Celsius temperature sensor, which works well on flight controllers that typically only have a single internal pressure sensor (which we’re most familiar with, and have largely developed ArduSub using).
The MAVLink protocol only has support for 3 pressure sensor outputs at the moment, and no direct support for independent temperature sensors[2], so it’s useful for that data to be available somewhere. That being said, it should definitely be possible to pass through the pressure and temperature values of the third sensor, especially when a Celsius sensor isn’t detected, so not being able to is a bug, which I’ve created this potential fix for.
The DataFlash (
.bin
) log Tony asked for could help to determine whether the sensor’s temperature output is working, although it likely is if the depth estimates are accurate (since they involve temperature compensation). ↩︎Adding a message for this should be possible, it’s just time consuming, and was presumably considered unnecessary hassle when the functionality/support was originally being added. ↩︎