ADSB using AP_Periph not connecting

Hi all,
I’m using an mRo CAN Node F303 to connect a uAvionix pingRX Pro to a cube orange+ over CAN. Followed the instructions in the wiki but no luck yet. Steps tried:
Enabled CAN 1 driver.
Set RNGFND and GPS_Type to 0, ADSB_Baud to 57 in the AP_Periph parms over SLCAN.
Disabled internal ADSB on the cube by setting serial 5 protocol to -1.
Confirmed ADSB_type is set to 1 on the cube.
Confirmed the ping is working by connecting to telem1, shows up as a comp in Mavlink inspector. Doesn’t show up as a comp when using the CAN node.
Anyone tried this setup before or have any suggestions?
Thank you!

Hi @Michael_SC,

I don’t think it is possible to use a CAN Node to connect a serial ADSB sensor to DroneCAN. The issue is that we don’t have a DroneCAN ADSB driver and I also suspect that there are not even DroneCAN messages for ADSB.

I’m sure you’ve already read it but just for others who may be reading this, here is the ArduPilot ADSB setup wiki page.

I suspect the confusion comes from assuming that any I2C or Serial protocol peripheral can be used via DroneCAN if an AP_Periph adapter (like the mRo CAN Node) is used… but actually this is only the case where AP also has a DroneCAN driver for that sensor type.

Hi @rmackay9 , thank you for your reply! There is mention of an ADSB driver in the AP_Periph wiki and the readme here also mentions support for Ping adsb receiver on UART. Additionally, the HWDEF file for f303-universal (used on the mRO CAN Node) mentions adsb port and baud rate, hence my assumption that it was supported


OK, I wonder if @tridge or @hwurzburg can give a definitive answer on whether AP_Periph allows ADSB devices to be used over CAN.

This would probably make it possible - I have it working for MSP DisplayPort - DroneCAN Serial Tunnel by bugobliterator · Pull Request #21942 · ArduPilot/ardupilot · GitHub

We discussed this on the dev call and confirmed that ADSB can’t be used over DroneCAN/AP_Periph so I’ve created this enhancement request and I’ll update the wiki shortly. No promise on when we will implement this though I’m afraid.

We do have support for the uAvionix (or any mavlink receiver which supports the same message) in AP_Periph.

We even read it in in ArduPilot - but not where @tridge was expecting. We convert CAN to mavlink in AP_DroneCAN.cpp.

@Michael_SC one obvious dissection of the problem is to look at the traffic on the CAN bus using dronecan_gui_tool or the monitor in MissionPlanner. If you see the traffic report packets then you are half-way there.

@peterbarker @rmackay9 I’m not sure what’s changed but this is now working for me. Only difference between now and the last time I tried it was flashing an OpenDroneID enabled version of Copter 4.4.0. Detected planes are showing on the map in MP, also verified by looking at traffic in the DroneCAN gui tool as you suggested.
On a related note, are there any plans to add an ADSB transmit backend to AP_Periph anytime soon?

1 Like

OK, great! Thanks for the feedback.