Ping Sonar Altimeter udp port overlap in blue os


Hello, my name is Seunghyun Kim. I have a question because I had a problem in the process of assembling and testing the blue rov.
I installed one altimeter facing forward and the other facing the floor. However, when I checked in blue os, it uses the same udp.
(One is connected by USB and the other is connected to the Navigator Flight Controller.)
Q1. May I know how to change the port??
Q2. Is it possible to check the data of 2 Altimeters in QGC through Mavlink?
Thank you

Hi @drone_begginer,

This is a previously reported bug, but we haven’t yet had enough information to track it down and fix it. It would be helpful if you could provide a log file for the ping service, from http://blueos.local:7777/file-browser/files/system_logs/ping/ :slight_smile:

The port is determined automatically when the device is detected, and it’s not currently possible to manually override it.

It should technically be possible to manually set up bridges in the Serial Bridges page, although that then means the MAVLink distances won’t be usable, and I’m not sure if there’ll be a conflict between the manual bridges and the automatic ones from the pings service.

If you turn on MAVLink Distances for both devices then measurements from both should show up in QGC, but it likely won’t be possible to tell which measurement is from which device, because the ping service MAVLink driver currently sends all distances as pointing downwards, and I don’t believe the QGC telemetry widget allows filtering by the device ID.

Hi Eliot
thanks for the reply.
here are logfiles
logfile_06-13-2023_05_52_27.2023-06-13_09-23-07_079639.log (89.1 KB)
logfile_06-13-2023_05_52_27.log (4 KB)
logfile_06-19-2023_09_40_09.log (89.8 KB)

Please confirm

ping1D is the new one and the other ping1D is using the old one.
I also attach the sensor details

I have two Ping Altimeters connected to a vehicle running BlueOS 1.2.0-beta.2
One Ping Altimeter is connected to serial 5 on the Navigator and the other is connected to a Pi USB port via a BLUART converter. How do I change the UDP port for one of the Ping’s? At the moment both of them use the same UDP port 9090.
I can see one of the Ping 1D’s when I open Ping Viewer. I tried creating a bridge from the USB serial port to port 9091 but then I couldn’t see either of them in Ping Viewer.
What is the best way to run 2 altimeters?

image

Hi @gcelec, I’ve moved this here because it’s on the same topic.

The UDP ports should be automatically incremented, so either there’s a bug in the ping service code, or there’s something causing it to incorrectly detect / connect to your sonars.

If you haven’t already I’d recommend removing Serial 5 from the autopilot’s connections, but if that doesn’t help then please upload some system log files so we can try to look into it.

From thinking about the code a bit, my suspicion is that the asynchronous port searching means both device connections find the same UDP port before either of them is fully connected to it (in a race condition), and then they end up sharing the connection.

That may be preventable with a well-placed sleep, or perhaps by making the port connection process raise an error if multiple connections are made to the same port, and/or treatable by adding duplicate-port detection to the ping service and making it restart relevant device connections when port sharing is detected. I’ll see what the other software team members think, but that seems like it shouldn’t be too hard to fix.

If that is the issue then in the meantime it may work to just restart the core container (soft restart BlueOS), in case the timing works out to properly connect the ports in sequence, but understandably that’s a rather inconvenient workaround.

1 Like

If this port clash issue is pretty consistent for you, could you try testing my ping-fix-attempt image from the esalexander/blueos-core repository, via the BlueOS Version chooser? You’ll need Pirate Mode on to be able to change the repository from the default bluerobotics one.

If that consistently fixes the problem then we can likely merge in this PR :slight_smile:

1 Like

Hi @EliotBR,

I installed the image from your esalexander/blueos-core repository and it works - it assigned UDP port 9089 and 9090. Ping viewer only shows port 9090, but I manually connected to 9089 and was able to connect.

Thanks for your help!

1 Like

A post was split to a new topic: NMEA not working in BlueOS 1.2