Running rover using pymavlink on Blue-os Beta - multiple output ports

Hi, I am trying to run a basic script to move my rov forward. However it is not working.

The documentation mentions in the comments the following -

the default connection is available
#  at ip 192.168.2.1 and the port 14550
# Note: The connection is done with 'udpin' and not 'udpout'.
#  You can check in http:192.168.2.2:2770/mavproxy that the communication made for 14550
#  uses a 'udpbcast' (client) and not 'udpin' (server).
#  If you want to use QGroundControl in parallel with your python script,
#  it's possible to add a new output port in http:192.168.2.2:2770/mavproxy as a new line.
#  E.g: --out udpbcast:192.168.2.255:yourport

However i am unable to access http:192.168.2.2:2770/mavproxy. How else can i check which mavproxies are available. How do i run qgc and pymavlink at the same time.

from multiprocessing import Process
import time
from pymavlink import mavutil


master = mavutil.mavlink_connection('udpin:192.168.2.1:14550')
master.wait_heartbeat()

def forward():
    master.mav.manual_control_send(master.target_system, 500, 0, 0, 0, 0)

def docking_start(): 
    
    p = Process(target=forward)
    p.start()
    time.sleep(1)
    p.terminate()

docking_start()


I just saw this under pirate mode should the values for these parameters be? Also after extensive research could the problem be that i have specified udpin:192.168.2.1:14550 when it should be 0.0.0.0:14550 in my code? I also don’t need to create an endpoint for the default 14550 baudrate right?

Hi @cerealkiller2527,

Which BlueOS version are you running?

You should have a GCS Client Link endpoint to UDP port 14550 available automatically, which is what QGC generally connects to. Note that network connections require specifying a port - “baudrate” is for connecting to serial devices.

If you want to add an additional similar endpoint for connecting to with Pymavlink then the best option is creating an additional UDP Client, with a different port to the ones already in use, e.g.

Your code should then be able to connect via 'udpin:192.168.2.1:14770' :slight_smile:

Both of those options should work - 0.0.0.0 specifies “use this computer’s IP address”, and 192.168.2.1 is the IP address that our network configuration instructions get you to set :slight_smile:

Thank you much eliot im using the latest version of the blue os beta which i think is 1.01. The reason why i thought the 192.168.2.1 port in the code was wrong was because when i type HTTP://192.168.2.1/network it doesn’t open the blue os page and gives me an error but when i type companion.local it opens up the page.

No worries :slight_smile:

That’s unrelated for two reasons:

  1. The BlueOS web interface is hosted on the onboard computer, which has the IP 192.168.2.2 - see the Interface Access docs
    • 192.168.2.1 is the topside computer IP, which is why you can use it from the topside computer to connect to a UDP client endpoint that’s directed to the topside computer
  2. The BlueOS web interface has no /network page, so that will give an error even if the IP is correct

Ohh i see thanks a lot

1 Like