BlueOS equivalent of Companion "Routing"

Hello,

I am trying to reproduce the routing from companion to BlueOS.

I am not sure I understand the procedure. I tried to create an endpoint but it does not get created.

I tried creating a bridge, but I am not receiving anything.

image

Not sure what I am doing wrong.

Cheers,
E.

Hi @etienne,

The MAVLink Endpoints are specifically for MAVLink communications, so are unrelated here.

The Serial Bridges functionality should work like Companion’s Routing in recent beta releases. If you’re on 1.0.1 stable or an early 1.1.0 beta release please try a more recent version.

If you’re already on a recent beta, are you getting any notifications about things not working? It may be helpful if you can provide a log of the service.

1 Like

Hello @EliotBR,

I am running 1.0.1 the remote Versions is not loading.

This link points to 1.0.1

Is there a newer version and where can I download it?

Regards,
E.

From the error that’s seemingly a temporary issue with DockerHub, and will hopefully be resolved next time you check.

1.0.1 is the latest stable release, but there are more recent beta releases (we’re currently up to 1.1.0-beta.16, which is a release candidate for 1.1.0 stable).

It’s possible to download a BlueOS-core docker image from the “Assets” of each GitHub release, which should be uploadable to BlueOS via the “manual upload” section of the Version Chooser (underneath the section for Remote Versions), although if it’s in a .zip file it needs to be un-zipped into the .tar archive first. That said, I tried double-checking the manual uploading functionality today and couldn’t get it to work, so there may be an issue with it currently.

If it’s not possible to successfully upload a core Docker image then it should at least be possible to download the full raspberry pi image (also from the “Assets”) and flash that onto the SD card, but that can be a pain to do, in which case it likely makes more sense to wait to see if the remote versions issue resolves itself.

Ok I was able to upgrade. This looks great.

Problem is still there though :frowning: No comms.

This is the serial string I am trying to push through at 115200 BAUD.

[,#PTEMP,0,#OUT1,0,#OUT2,0,#OUT3,0,#OUT4,0,#OUT5,0,#OUT6,0,#OUT7,0,#JAWPOS,0.00,#TH1,0,#TH2,0,#TH3,0,#TH4,0,#TH5,0,#TH6,0,#TH7,0,#TH8,0,#5V1,0,#5V2,0,#5V3,0,#5V4,0,#12V1,0,#12V2,0,#12V3,0,#12V4,0,#PWM1,0,#PWM2,0,#PWM3,0,#PWM4,0,#PWM5,0,#PWM6,0,#STARTPWM,0,]

I created the bridge like this.
image

image
image

Then trying to listen to it:

No data.

This used to work. I haven’t changed anything from my code.

I don’t have a navigator board connected but that shouldn’t interfere with it right?

The logs show this:
image

Cheers,
E.

I brought this up with the software team and they mentioned you’re apparently trying to use a server on both ends. It should hopefully work to either

  • change the IP address of the bridge from 0.0.0.0 to your surface computer’s IP, or
  • change your surface software from a server to a client
1 Like

That solved my problem.

Thank you very much for your help.

E.

1 Like

@EliotBR

This is bidirectional already?

In the companion version we needed to set an up link and down link.

Cheers,
E.

Yes, it should already be bidirectional :slight_smile:

At a guess, that may have been done for performance reasons, since Companion’s routing functionality was written in Python, and not needing to check for traffic in one direction for applications that didn’t need it could have helped avoid performance issues.

BlueOS uses bridges, which is Rust-based, simple, and very performant already.

Turns out I went back to using 0.0.0.0 so that it was in server mode so it would be bidirectional. This is most likely due to how my software sends command.

Anyway, its all working now so I can tell my clients what to do.

Cheers,
E.

1 Like