Digital Air Speed Sensor connection to Pixhawk

Hi all,

We would like to connect the Holybro Digital Air Speed Sensor to the Holybro Pixhawk 4 I2C port (I2C A). In addition we have two RPM sensors connected to the same port (address 0x50 and 0x51). Does someone knows the Air Speed Sensor address and if it will work together with the RPM sensors on the same I2C port?

Holybro Digital Air Speed Sensor

ThunderFly TFRPM01 PRM Sensor

Holybro Pixhawk 4
https://docs.px4.io/master/en/flight_controller/pixhawk4.html

Thanks

Hi,
we have tested the TFRPM01C sensor in parallel with the TFSLOT sensor in the same I2C port. TFSLOT Is a sensor based on Senserion SDP3x airspeed sensor.

Do you already have a modification of the RPM sensor driver that supports I2C address change? And does your driver supports multiple RPM sensors at the same time? For more details about the driver, feel free to contact us.

Hello,

we currently have one unpublished change to the RPM driver that makes it possible to connect more RPM sensors at the same time. A maximum number is presently a number of external i2C buses times two possible sensor addresses. Driver launches itself (after setting a correct parameter) and searches for devices on all external buses - it is not necessary to launch the driver manually or via a configuration file on an SD card.

If there was a need for multiple sensors with the same address (this could be applicable to any different IIC sensor e.g. no TFRPM01C only). In that situation, a new I2C multiplexing module (MUX) will be necessary. A suitable one seems to be PCA9547, which allows connecting one driver only. However, it will be necessary to create a driver for it - unfortunately I don’t have an idea of how exactly such a driver can be implemented. Maybe @dagar or someone else managing drivers in PX4 could help to design that structure. The problem with the whole thing is that this MUX must be connected to any external bus and its driver must always work.

One of the possible solutions is to expand classes for device with I2C and the drivers will run with another parameter, something like:


pcf8583 start -X -a 0x51 -b 1 -ma 0x10 -mb 8

-a device address

-b FMU I2c BUS

-ma MUX address

-mb MUX port

This topic certainly deserves a bigger discussion as it is quite important also for using more redundant sensors.

Here are attached screenshots documenting the improved TFRPM driver to readout multiple RPM tachometer sensors.
270322724_635652097748397_884379401137010536_n

270434381_3093159141003220_6033521154500183273_n

Hi,
we have found a simpler solution to multi-sensor connections on the same I2C bus. The idea is to use I2C address translator LTC4316 chip in a new hardware module.
That module, therefore, allows the connection of 4 (translated sensors’ addresses) + 2 (original sensor’s address) on the same I2C bus. That means you had to use two I2C buses to connect all eight TFRPM sensors to your autopilot. That solution works without any complicated driver modification in addition to the ability of multiple RPM sensor readouts described and tested in my previous post.

We have designed the LTC4317 translator module TFI2CADT01A recently. In addition to the proposed LTC4316, it allows you to connect four RPM sensors to one translator module TFI2CADT01A. I would recommend splitting I2C devices into as many buses as possible because you would get a problem with the reliability of the large I2C bus on one autopilot port. It could be caused by a large cabling capacity. See the PX4 cable wiring user guide for more details.

If you need to use very long I2C cables in your airframe (about over 40 cm) I would recommend using some I2C buffer. For example TFI2CEXT.

Regarding the airspeed sensor, you proposed there may be an issue in that the used pressure sensor has a problem with temperature stability. The temperature change will cause a pressure offset which complicates pre-arm check. That results, you will need to recalibrate airspeed before each flight.

For this reason, it is better to use a sensor that does not have this property. Sensors based on Sensirion SDP3x are better. Based on bad experiences with the pitot-tube-based Holybro airspeed sensor (4525DO) (which we used in old Auto-G2 design) sensor we have developed our own airspeed sensor TFSLOT01A with the TFASPDIMU02A sensor-board which contains SDP3x diff-pressure sensor. TFSLOT is a complete solution for PX4 airspeed measurements. We have good practical experiences with it.

Alternatively, you can use the TFASPUDIMU02A sensor board with a standard pitot tube. Pitot tube has a problem that it easily gets clogged with grass or mud, for example. TFSLOT solves this for most cases. The next advantage of TFASPDIMU02 is that it contains an IMU unit. And it can behave as an external compass that the PX4 uses for navigation.