BlueOS & Cockpit

Just booting up a control system with BlueOS 1.1.1 on Pi4, an old pixhawk 2.2.8 (FV 4.1.1) and 2 cameras mmal & H264 USB. Installed Cockpit extension and WOW, everything just works!

My first question is do I even need Ardupilot/QGroundControl? For example I can see both video streams in BlueOS but don’t see a way to switch them in Cockpit…


Answered my own question, sorta; which leads to more of course. Having fun on the learning curve:-/

Installing QGroundControl did give me the ability to select either camera (USB or mmal) but lead to some other issues. The most obvious light control changed from left/right D-pad to left/down and pilot gain also swapped. Also had an issue with wired Logitech controller vs wireless, QGC does not see all the buttons, particularly the left shoulder, strange, could be an Ubuntu thing.

Had to enable lights 2 which finally gave me pwm output on Pixhawk Aux 2 (servo 10) and remap functions 9 & 10 to increment/decrement the signal. It worked stock on Shift Fuction mapping which was/is set to momentary.

Cockpit thinks I have a gripper on 10, strange as I can not run the wizard, it just comes up that way.
Don’t see any way to set or control it in either GUI but I did see relay pin set in the QGC parameters. Maybe why my tilt servo was not working? Tomorrow’s project, happy with a lights, cameras, tile win for tonight…

Hi @questrov -
Glad you’re enjoying Cockpit!
QGround Control has never supported the lower shoulder buttons, so we’re excited Cockpit can and does!
The default configuration for the joystick map is why you may see the mapping setup to use a gripper - this can be changed as desired as you’ve found. The camera tilt should be working without issue - it does not use a servo momentary or relay function to adjust.
At the moment QGroundControl is still necessary for things like calibrating the ROV sensors and adjusting some camera tilt parameters, but we’re working to bring that functionality within BlueOS - the goal is indeed complete QGroundControl replacement!

1 Like

Thanks @tony-white going to be a fun journey! Absolutely amazed at how far things have come since the Flame Wheel days. The work on Cockpit is impressive this coming from veteran commercial/science ROV operators.

One of my associates has BlueROV running on Valves Steam Deck and I’m playing with custom controllers merging Elgato Stream Decks with legit Joysticks using BU0836A 12-bit joystick interface.

Is there a decoder ring for the current QGC to BlueOS to Cockpit? For example when I enabled lights 2 (Channel 10) in QGC, BlueOS PWM Outputs show up as SERVO10_FUNCTION Video Switch and Cockpit Cam Tilt is now 50% (was 238 or some crazy number) but doesn’t change value when I shift-LB/RB but the servo value changes as expected. BlueOS still shows gripper on Channel 10 in Overview and Configure.

Been years since I’ve had the pixhawk and QGC booted up (was a quad then a rover) so have to relearn some of the particulars. Running QGC on an old NUC with fresh Ubuntu 22.04.3 image and Logitech F710 may switch to Windows11 and Xbox to see what happens…

1 Like

Hi @questrov -
Very cool controller! I love the use of stream mate - what sort of functions are you linking them too, and do you have icons or live data you’re using on them? Those look like some very nice joystick models too, I hadn’t seen that USB interface before.
When you talk about a decoder ring, I think you’re meaning an explanation of some potential weirdness between using game controller parameters in QGC vs. Cockpit. As the latter is still in Beta, it can interact weirdly with QGC sometimes - the best option is to save your configuration and parameters in cockpit when it’s configured how you like, and load that up if you’ve reconfigured in QGC, at least for the moment.
To better understand your specific issue, a copy of your parameters file would be necessary, as well as a clear idea of what accessories are plugged into what ports on the pixhawk. Ardusub doesn’t have a means of detecting a gripper or what channel a camera or laser scaler controller are plugged into. I wouldn’t expect your issues to be Linux specific!

Thanks @tony-white controller is basically a copy from ROV Hercules with some donated parts from @Danirov of ROV Lu’ukai.

The Stream Deck is borrowed from a camera test project we did last summer using custom Sexton cameras. I’m no shutterbug and the myriad of camera controls (27 pages) were very intimidating but the deck made it super easy.

I became enamored with the Stream Decks and bought the basic model which is linked to my Home Assistant via plugin. Lots of plugin’s for gamers too, if you’re a Citizen of the Verse check out this one. :nerd_face:

For BlueOS plan is basically all the buttons on a game controller or any ROV. The Stream Deck + is nice as it has encoders for things like trim and dimmable lights.

One can have unlimited pages thus unlimited buttons in a simple interface that does not look intimidating to new operators. The icons and labels are great, no cheat sheet or memorizing controls required.

Yea, some wonkiness between QGC and Cockpit, to be expected in beta. Think I’m getting a handle on it, still not clear which takes priority and when it reads/writes pixhawk. What got me for awhile is RCIN8-10 mapped to values Lights 1, 2 and Video Switch.

My bench setup so far is basically the Ardusub minimum required hardware. There are several plugins for Stream Deck that emulate joystick buttons, in theory I should be able simply import a custom one. Will let you know how that goes…

1 Like

Well it works for the most part, check out the video running the joybox on bluesim. Was also able to wiggle a tilt servo and switch lights on Pixhawk via StreamDeck+ using vJoy plugin. Unfortunately it does not support the encoders yet…

Hi @questrov, welcome to the forum :slight_smile:

Jumping in with a couple of clarifications:

This is a BlueOS frontend bug, which I recently fixed, but it’s not yet in a BlueOS release - use RCIN9 for Lights2, and ignore that BlueOS currently claims that’s for the Video Switch.

Which board type is selected for your firmware? I ran into an issue somewhat recently during some testing where the Pixhawk1-1M firmware had something like this, and changing to the standard Pixhawk1 board type fixed it (note that BlueOS currently only allows installing autopilot firmwares with the board type matching what’s currently installed on the flight controller, so if you do need to change the board type that’ll have to be through QGC).

That said, if the mount tilting is working through QGC then it should also be available and configurable through Cockpit - the firmware type thing is only relevant if it isn’t working at all.