Cube Orange BlueOS Support

Hello

We run Cube Orange on our rovers/boat and we evaluating BlueOS as a companion option (Awesome work by the way).

We have it running but seems like it does not detect Orange Cube as an option, we plugged in a Pixhawk 1 and it works great.

What is the best path to get BlueOS to work with this fight controller.

Any help would be great.

Thanks

Hi @ERL, welcome to the forum :slight_smile:

Adding support for additional flight controller boards isn’t something I’ve worked with, so I’ve passed this on to the software team who should hopefully be able to respond in a day or two (they’re travelling at the moment).

In the interim you may be able to poke around in the ardupilot_manager service to find where the boards are detected and defined :slight_smile:

Hi @ERL! I’m glad you liked BlueOS!

Would you mind running the following commands in the built-in terminal, and post the output here?
The results will help us to improve the board identification rules and start supporting yours.

ardupilot_fw_uploader.py --identify
python -m serial.tools.list_ports -v

Thanks Elliot and Rafael

See image below for requested information.

Cheers

Evan

Humn, ok, there’s less information there than I would expect.
Can you do me another favor?

  1. Open the built-in terminal
  2. Open a python console (run python3)
  3. Run from serial.tools.list_ports import comports
  4. Run from pprint import pprint
  5. Run [pprint(port.__dict__) for port in comports()]

This will deliver all the information I need to add support for this board.

EDIT: updated to correct command

Hello Rafal and Elliot

See image attached below.

Note using the ttyd terminal under available services as the web terminal isn’t loading for me.

Sorry @ERL, I forgot part of the command. Please use this one in the last step:

[pprint(port.__dict__) for port in comports()]

(the .__dict__ is the difference)

As requested.

{'description': 'CubeOrange',

'device': '/dev/ttyACM1',
'device_path': '/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.2',
'hwid': 'USB VID:PID=2DAE:1016 SER=2D0044000751303431343835 '
'LOCATION=1-1.3:1.2',
'interface': None,
'location': '1-1.3:1.2',
'manufacturer': 'Hex/ProfiCNC',
'name': 'ttyACM1',
'pid': 4118,
'product': 'CubeOrange',
'serial_number': '2D0044000751303431343835',
'subsystem': 'usb',
'usb_device_path': '/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3',
'usb_interface_path': '/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.2',
'vid': 11694}
{'description': 'CubeOrange',
'device': '/dev/ttyACM0',
'device_path': '/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0',
'hwid': 'USB VID:PID=2DAE:1016 SER=2D0044000751303431343835 '
'LOCATION=1-1.3:1.0',
'interface': None,
'location': '1-1.3:1.0',
'manufacturer': 'Hex/ProfiCNC',
'name': 'ttyACM0',
'pid': 4118,
'product': 'CubeOrange',
'serial_number': '2D0044000751303431343835',
'subsystem': 'usb',
'usb_device_path': '/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3',
'usb_interface_path': '/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0',
'vid': 11694}
{'description': 'ttyAMA3',
'device': '/dev/ttyAMA3',
'device_path': '/sys/devices/platform/soc/fe201a00.serial',
'hwid': 'fe201a00.serial',
'interface': None,
'location': None,
'manufacturer': None,
'name': 'ttyAMA3',
'pid': None,
'product': None,
'serial_number': None,
'subsystem': 'amba',
'usb_device_path': None,
'usb_interface_path': None,
'vid': None}
{'description': 'ttyAMA2',
'device': '/dev/ttyAMA2',
'device_path': '/sys/devices/platform/soc/fe201800.serial',
'hwid': 'fe201800.serial',
'interface': None,
'location': None,
'manufacturer': None,
'name': 'ttyAMA2',
'pid': None,
'product': None,
'serial_number': None,
'subsystem': 'amba',
'usb_device_path': None,
'usb_interface_path': None,
'vid': None}
{'description': 'ttyAMA1',
'device': '/dev/ttyAMA1',
'device_path': '/sys/devices/platform/soc/fe201600.serial',
'hwid': 'fe201600.serial',
'interface': None,
'location': None,
'manufacturer': None,
'name': 'ttyAMA1',
'pid': None,
'product': None,
'serial_number': None,
'subsystem': 'amba',
'usb_device_path': None,
'usb_interface_path': None,
'vid': None}
{'description': 'ttyAMA0',
'device': '/dev/ttyAMA0',
'device_path': '/sys/devices/platform/soc/fe201000.serial',
'hwid': 'fe201000.serial',
'interface': None,
'location': None,
'manufacturer': None,
'name': 'ttyAMA0',
'pid': None,
'product': None,
'serial_number': None,
'subsystem': 'amba',
'usb_device_path': None,
'usb_interface_path': None,
'vid': None}
[None, None, None, None, None, None]

Show quoted text

1 Like

Thank you very much! This is all we need. I’ve opened an issue in BlueOS’s repo to track this change request.

1 Like

@ERL I’ve opened a PR adding the support.

To try it, you can activate Pirate Mode (gear/configs button), then go to Version Chooser and in the “remote” field, type rafaellehmkuhl and click enter. It should fetch my available images, and one of those will be called “support-pixhawk-cube” (it will be available in around 10 minutes). Pull that one and everything should work.

Please let me know if it works correctly. It should identify your board as “CubeOrange”.

1 Like

Hi Rafael

Ended up needing to type in “rafaellehmkuhl/blueos-core” in the remote field,
I connected to it successfully on the first try and Identified as Cube Orange.

Thanks very much for your help.

We will start testing now.

2 Likes

Happy to hear that, Evan! If you end up using different boards, let me know, so we can progressively add support for them.

1 Like

Just pointing that the community is also free to add board support directly on BlueOS and send PRs for the project :slight_smile:

1 Like

We ran into a problem in the test on Cube Orange. Because Cube Orange has two MS5611 sensors built in, the MS5837 can only use the third sensor. During the test, we can obtain the correct depth data, but we cannot obtain the water temperature data. At the same time, in the Mavlink message bar, you can’t see the scaled_ Relevant data of pressure3 (only 1 and 2).

QGC Version: 4.2.3
ArduSub Version: 4.1.0
We are directly connected to the computer for the time being, not through raspberry pi

Hi @MMMMK,

We don’t have much experience with trying to use CubePilot boards with ArduSub. By the looks of things there might be something odd going on with the temperature sensor mapping. Can you try setting BARO_EXT_BUS to 2, and seeing if that resolves the issue?

I’m not certain what you mean by this. SCALED_PRESSURE3 is at least a valid MAVLink message, but I’m not sure how the message numbering is determined relative to the sensors, and whether sensor priority plays a role.

I think I found the reason. By default, the third temperature indicator of ArduSub uses the Celsius temperature sensor. When the connection is not successful, ArduSub will not send Scaled_ Pressure3 related data. I modified the corresponding code and it seems that it can run now.

1 Like

Glad you were able to find a cause, and a solution.

It would be helpful if you could open an issue that documents the problem, and/or a pull request that fixes it :slight_smile:

Hi Hook! We are having the same issue, can you please point me toward where I should make this change in the code?