Ardupilot S-Port Airspeed Sensor Integration

Hi,

I’m trying to integrate a high-speed airspeed sensor with arduplane.

This connects to a UniLog to decode the data and transmit it

This outputs the combined sensor data (for two independent airspeed sensors) via FRSky S-Port which I have successfully been able to read on my transmitter. This is designed to connect directly with receivers and so only outputs in formats for Futaba FRSky and a couple other transmitter protocols, not I2C.

What I would like to do is, instead pass that airspeed data to the cube pilot orange+ so that it can use it for flight control and pass back to an OSD with all of the Pixhawk telemetry at once.

As far as I have seen from my research, the airspeed in ardupilot only natively supports I2C or analogue inputs.
I have the airspeed sensor connected to TELEM2 with the config of SERIAL2 set as:
SERIAL2_PROTOCOL =4 (I tried 10 with no luck, changing to 4 changed from ‘no airspeed found’ to ‘airspeed unhealthy’ but reading 0 constantly)
SERIAL2_OPTIONS = 15 (invert TX/RX,Half Duplex, SWAP TX/RX pins) (I am plugged into the RX instead of the TX and have adjusted the config accordingly).

Is this correct that there is no way to use my FRSky S-Port data directly as airspeed and that it must be I2C/analogue? Is there a way for me to internally convert S-Port to I2C without the use of additional equipment as I am very space and weight-constrained.

Any help would be greatly appreciated.

Kind regards,
Josh

Hello Josh, welcome to the forum.

You have set output protocols with this: Ardupilot sends its data to the RC receiver with these protocols (similar to how your sensors connected directly to the RC receiver).
FrSky S-Port as input protocol to connect sensors to the FLightcontroller are not known to me at the moment .
Since you have a cube pilot orange FC, the easiest thing to do (also to save time) is probably not to use the existing sensors and to invest in a standard airspeed sensor, for example those from mateksys (Digital AirSpeed sensor ASPD-DLVR, I2C & CAN – Matek Systems) . Depending on the sensor, they can be connected to an analog input, via I2C or (if the supply lines are very long) preferably via CAN bus.

Rolf

For high speed, an ASPD-DLVR with a changed sensor (to 60inH2O) will do just fine up to 450Kph

1 Like

Hi Rolf and Andras,

Thank you for your replies, both of those are good suggestions. Unfortunately, I need speeds up to 600 kph so the airspeed sensor is the only suitable one I have found so I have to keep using this. I have experimented with trying to take the analogue signal directly from the airspeed sensor via the ADC port but the fluctuations are tiny so are not picked up by arudpilot. Increasing the ARSP_RATIO resulted in amplified noise as you might expect.

I appreciate this is a very unusual usecase but if anyone has any further suggestions that would be very much appreciated.

Kind regards,
Josh