Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uAvionix Ping USB support #879

Open
3 of 6 tasks
stefanux2 opened this issue Oct 30, 2023 · 9 comments
Open
3 of 6 tasks

uAvionix Ping USB support #879

stefanux2 opened this issue Oct 30, 2023 · 9 comments

Comments

@stefanux2
Copy link

uAvionix Ping USB support

Setup

  1. Stratux version: Stratux 1.6r1-eu029 by b3nn0 (EU)

  2. Stratux config:

    SDR

    • single using uAvionix Ping USB via USB
    • dual

    GPS

    • yes
    • no
      type:

    AHRS

    • yes
    • no

    power source: 12V to 5V

    usb cable: 10 centimeters

  3. EFB app and version: Easy VFR 4

    EFB platform: iOS 17

    EFB hardware: iPad Mini + iPhone 14

  4. Description of your issue:
    I'm using Stratux built with uAvionix PingUSB device. This patch is to add the MavLink protocol to the stratux in order to enable the USB-Serial PingUSB device.

Devices

  1. Ping EFB

USB Serial based with 1090 ES Protocol (Currently supported by Stratux)
https://uavionix.com/downloads/pingefb/uAvionix-pingEFB-ADS-B-receiver-quick-start-guide.pdf

  1. Ping USB

USB Serial based with MavLink Protocol (This patch)
https://uavionix.com/products/pingusb/

Protocol

Traffic Report Message

MavLink

Compilation

Environment

  1. Stratux EU with latest version
  2. Remount the Stratux in RW /boot/cmdline.txt
  3. apt update and install all the development tools
  4. Install Go compiler
  5. Create Go Environement
  6. Modify main/ping.go
  7. Make and copy the executable

Patch Ping.go

This patch was compiled overwriting the main/ping.go file.
stratux-serial-ping.zip

Features

  1. Support uAvionix Ping USB connected via USB to enable MavLink protocol
  2. Bearingless target emulation
  3. RSSI Emulation

Test

Tested with 20 hours of flight at sea level up to 8000ft in Europe/Italy.
MavLinkWorking

Integration on mainstream

Best integration is to add as second protocol option like "PingEFB" and "PingUSB" switch and rename it as pingusb.go

Improvements

  1. Split ping.go to pingefb.go and pingusb.go
  2. Test with multiple disconnect-reconnection of the USB
  3. Improve the crosscheck with valid data field
  4. Improve Altitude integration with Stratux
  5. Improve RSSI for bearingless traffic
@cyoung
Copy link
Owner

cyoung commented Oct 30, 2023

Are there more than 20 pingUSBs in existence?

@alexaggie
Copy link

alexaggie commented Oct 30, 2023 via email

@stefanux2
Copy link
Author

stefanux2 commented Nov 6, 2023

Are there more than 20 pingUSBs in existence?

Yes, officially there are up and working more than 100 pingUSBs devices around the world.

Using Stratux + pingUSB with the attached patch will enable all navigation software to work properly because the 1090 is received by pingUSB and the GPS is correctly managed by Stratux.

@GabrielN2002
Copy link

Could this enable any Mavlink adsb receiver to work with stratux? One of the main problems I am having with my stratux build is the interference caused by the sdr. It basically makes my gps receiver useless. If this works with any Mavlink adsb receiver, like this one: https://www.aerobits.pl/product/aero/, I wouldn't need an sdr and the interference problem could be solved.

@stefanux2
Copy link
Author

Yes, I think so, the packet format is the same.

A further check shall be:

  1. USB Device Id recognised by the system
  2. Id of the MavLink Packet shall be confirmed to be 246

If you want to test it, this patch is already merged into the EU version: https://github.com/b3nn0/stratux
Currently up and working on my EU version: b3nn0#264

@GabrielN2002
Copy link

GabrielN2002 commented Jan 17, 2024

From what I have seen on the data sheet provided by Aerobits, it uses the same 246 mavlink packet id.

The adsb module doesn’t use usb. It connects via uart using a JST GH 6 pin connector commonly found on the pixhawk flight controller. Based on the uavionix rules file https://github.com/b3nn0/stratux/blob/master/image/99-uavionix.rules it seems like the pingusb is using an FTDI uart to usb bridge and it just so happens that I have a JST GH 6P to usb adapter that uses the same FTDI chip. Running the lsusb command in the raspberry pi outputs the same product and vendor id. So in theory it should be recognized by the raspberry pi.

I’ll update as soon as I receive the ads-b module.

@GabrielN2002
Copy link

Got the ADS-B receiver. So far i haven't been able to get it working. The receiver gets recognized as a PingUSB but the ADS-B is not being received by Stratux. I suspect the problem is the baudrate. The ping.go file has the PingUSB at a baudrate of 57600. The Aerobits Aero uses a baudrate of 115200. I will try changing that.
Screenshot 2024-01-26 110246

@GabrielN2002
Copy link

GabrielN2002 commented Jan 26, 2024

Changing the baudrate made it work! Might be a good idea to add support for the Aerobits Aero ADS-B module into stratux. So far i've seen better battery life, reduced EMI and better GPS reception. It is more expensive than an SDR but I think the benefits are worth it. It costs almost the same as the PingUSB and it is significantly smaller so it may be a better alternative. Now the only reason this worked for me by just changing the baudrate is because I have an uart to usb bridge that uses the same FTDI chip found in the PingUSB. Maybe a better implementation would be to make Stratux receive MavLink ADS-B data via UART but that is something I don't know how to do.
Screenshot 2024-01-26 141539

@stefanux2
Copy link
Author

Great, it is time to add this device into the stratux branches...
To differentiate this dongle device:

  1. can you set a different 99-uavionix.rules device name https://github.com/b3nn0/stratux/blob/master/image/99-uavionix.rules#L7
  2. this allows the ping.go to differentiate the baudrate here: https://github.com/b3nn0/stratux/blob/master/main/ping.go#L57

Can you create the merge request with these mods into the stratux EU/USA branches?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants