Connection trouble between XBox Controller and Cockpit

Hi all, I’ve just assembled a ROV2 Heavy, and all seems broadly good, although it hasn’t got wet yet.

QControl seems to work fine, and I have configured an XBox controller to the ROV. I have also installed the PC Cockpit app, which connects fine, but it doesn’t allow me to configure the gamepad. It shows this icon in the corner:


Hovering my mouse over this shows: Joystick Connected but Disabled. If I have QControl open too, the ROV can be controlled fine from the gamepad. If I don’t have it open, Cockpit announces “Lost Manual Control” and this is correct, the ROV doesn’t respond.

I can’t see a way to enable the joystick. All suggestions welcome!

Hi @RickMoss1 -
Welcome to the forums!
Have you been trying to use Cockpit with QGroundControl open at the same time? This isn’t supported, and they will conflict with each other… See if closing QGC and opening Cockpit with your controller paired solves the issue.

You could also verify the game controller is detected generically here.

Finally, within Cockpit, have you followed the tour of the interface? Does the controller appear/respond when you push a button on it when looking at the joystick settings menu?

Thanks Tony. Yes, it works fine on the controller test site.

I can get it to work on cockpit briefly when it first starts up, and at this point when I open the “visual” section of the joystick configuration menu it shows 2 controllers; the top one doesn’t respond to anything, but the second one down responds to button presses. This soon after disappears, the “visual” tab gets greyed-out and the icon above shows as “joystick connected but disabled”.

I’ve ordered a PS5 controller; will see if that’s any better.

Hi @RickMoss1 -
Can you confirm what version of Cockpit you’re trying to use? Is it standalone, or the BlueOS extension?

Does the game controller test website indicate more than one controller is connected?

I suspect Windows is causing issues - removing the controller connection, restarting the machine, and re-pairing it may resolve things?

Hi Tony, it’s the standalone version.

I had tried deleting and re-pairing the controller, uninstall/reinstall of Cockpit etc; all to no avail. The controller website showed only 1 controller, but QGC showed 2, the other being my bluetooth mouse. It however let me select the Xbox controller, and was happy with that.

I have just connected a PS4 controller (borrowed from child) and that works just fine in cockpit. It recognised it as a PS Gamepad, configured the controls as I wanted them and has proven stable on the bench for an hour or so.

The XBox controller was brand new from the box, and worked fine in QGC, but not Cockpit. No idea why!

Hey @RickMoss1!

We had another user with the same problem regarding the xbox controller. Can I do some questions to help us on the debug?

  1. The one you’re using is similar to this one?
  2. Are you using it via bluetooth or wired?
  3. Which OS are you running on?
  4. Which browser are you using?
  5. Which Cockpit version are you running on? You can check it on menu>about.

Thanks in advance!

Yes of course Rafael:

  1. The one you’re using is similar to this one?
    Yes, exactly that one; model number 1914

  2. Are you using it via bluetooth or wired?
    Bluetooth, but also tried wired to no avail.

  3. Which OS are you running on?
    |Processor|13th Gen Intel(R) Core™ i9-13900H 2.60 GHz|
    |Installed RAM|32.0 GB (31.7 GB usable)|
    |System type|64-bit operating system, x64-based processor|
    |Edition|Windows 11 Pro|
    |—|—|
    |Version|24H2|
    |Installed on|‎14/‎02/‎2025|
    |OS build|26100.3194|
    |Experience|Windows Feature Experience Pack 1000.26100.48.0|

  4. Which browser are you using?
    Chrome Version 133.0.6943.127 (Official Build) (64-bit)

  5. Which Cockpit version are you running on? You can check it on menu>about.
    1.11.1

It indeed seems to be a problem specifically happening on Windows.

We will investigate and try to get a fix in the next week!

@rafael.lehmkuhl Just to add, I received a PS5 Dual Shock in the post today and tried that; it has the same issues as the Xbox controller. The PS4 controller still works fine.

Thanks fort the info @RickMoss1! Will check on it as well.

Hi all. I’m experiencing a similar issue to this. Using standard Xbox controller (BR supplied). Tested with both Cockpit Lite and Cockpit (app). Game controller tested (via online tool) and recognised in Cockpit (white icon after a click) but no buttons / joystick controls registering.

On the Cockpit GUI i can enable/disable power, switch modes, views etc. Just no recognised input from Xbox controller.

On QGroundControl works fine.

Any tips on debug appreciated. I’m stumped.

Cockpit Lite: v1.19.0-beta.5
Cockpit app: v1.18.2

BlueOS: 1.4.3
Ardupilot: 4.5.7

NOTE: This is on a Windows machine (Dell Lattitude) with Windows 11 Pro. Will check to see if I can get same behaviour on my MacBook.

Hey Peter!

Could you provide a screenshot of your joystick configuration page?

Follow-on testing: If I run QGC (which I don’t normally) I seem to be able to have that respond to Xbox commands and have Cockpit Lite/App as an interface. I get the “Multiple Joystick controllers detected” message (but I have a single Xbox controller and two ground stations?), click the orange controller icon and use the “joystick commands paused” slider.

Not really a workable solution . Would love to know what QGC is doing different to Cockpit Lite / App.

Hi @rafael.lehmkuhl

Thanks!

Two things:

  1. Forgot to ask, but could you send me the logs from the last cockpit sessions? Can be found on /menu/settings/dev.
  2. If you click that switch that says “Disabled”, does that change anything?

Here’s a Google Drive link to zipped up logs @rafael.lehmkuhl . From memory, if i click the Disabled switch on the ROV function mapping page the table (or visual if in that view), just dissappears.

Do we want to move this to a Github issue? (I can then circle back and summarise where we ended up).

Hey Peter!,

You’ve sent the vehicle logs. The logs I’m interested in are actually the Cockpit ones. You can find them in Cockpit under /menu/settings/dev.

Those logs will be specific to each Cockpit instance. I would ask you to download some logs from both the Desktop app and the Web/Extension version.

About the Github issue, definitely. I would ask you to first check if what you’re seeing does match issues 1432 or 1434. If not, please open a new one.

Ooops sorry. Try this link. I’ll look through GitHub issues now.

Ok, disabling “Unknown controller” seemed to fix the problem. i.e. now shows joystick / button inputs. When game controller settings page closed, can arm/disarm.

Questions for you:

  1. Any idea how we got into that state?
  2. What is the meaning / purpose behind that switch?

Nice!

  1. Automatically? No. Just checked the codebase and we don’t disable automatically. This setting is synced with the vehicle thought, so any chance you (or someone using the same vehicle) can have disabled that in the past? Have in mind this “disabling” setting is per-model, and as this Xbox controller, while wired to Windows, is not being recognized by Cockpit, and thus registered as Unknown, if you disabled it for any other Unknown joystick, that would disable for this Xbox one as well.
  2. It was introduced to prevent conflicts when more than one joystick was connected to the computer. We had some users on that situation and decided to introduce the feature.

Some extra tests I would ask:

  • Can you confirm if your joystick page does show two joysticks?
  • Can you download the logs also from the Desktop version of Cockpit (where you saw a different behavior)?
  • Can you check if the same fix works on the Desktop version?

I’m asking for this extra info so we can provide a better fix.

Edit: I’ve fixed my comment on item 1. Looking at the code, Cockpit does not disable the second joystick automatically. That was an implementation that never got merged.