Controller issues on Cockpit's latest beta release (Standalone application)

Hello,
I open this topic as I did on Cockpit’s beta7 version issue tracker only to see if any of you encounter the same issues.
I am running Cockpit’s latest beta release 1.16.0-beta.8 and I keep noticing the same joystick erratic behaviour while using a custom-made controller (based on ESP32S3 but it also happens with a standard Xbox One controller).

I open the application.
Go through settings > joystick.
The controller keeps connecting, disconnecting (more frequently than it did in the beta7 version) and delivering delayed inputs.

Has any of you noticed the same thing happening? This occurs only in the standalone application: I’m also running Cockpit as an extension in BlueOS (same version) and nothing goes wrong.

To be clear, I’m running the win64 version and the custom-made controller never bothered me when running older versions, such as v1.16.0-beta.6.

Tell me if you need videos or anything about the issue and I’ll provide it to you.

Hello,

Thanks for the reply.
I tried running Cockpit as administrator but it doesn’t change anything, the issue persists.

Best regards,

Alex

Hi @Alexxx!

Thanks for reporting. We have noticed this behavior for unknown joysticks indeed, and I’m working on a fix already.

Could you test this version to see if it helps with the lag? It shouldn’t change the behavior regarding the connecting/disconnecting problem thought.

You mentioned it also happens with your Xbox One controller. Could you check this page and see if it shows the vendorID and productID of this Xbox controller? I’m wondering if we missed any of the Xbox ones in the database.

1 Like

Hello @rafael.lehmkuhl,

Thanks for the quick reply. I checked the page with my Xbox controller:
vendorId: 0x045E (1118) Microsoft Corporation
productId: 0x02FF (767)

Regarding the version you sent me, the lag significantly decreased but is still noticeable (maybe it has more to do with the connecting-disconnecting issue). The controller, indeed, continues to connect and disconnect as you announced.

Tell me if you need anything else!

Good luck with your work!

Thanks @Alexxx!

About the connecting/disconnecting issue, from what I’m seeing here, it can be connected to cases where the joystick is not known in the SDL2 database. If that’s the case, I have a controller in my home that fits that case, so I can test it tomorrow when I get back.

That would explain the problem you’re having with the custom ESP32 joystick, but not the one with the Xbox controller. Is the Xbox one also connecting/disconnecting, or this one only has lag? If it only has lag but keeps connected, that explains the whole picture for me and I know how to proceed.

Also, could you confirm to me the vendorID and productID that appear for you with the Xbox joystick on the following page: Device Manager > Universal Serial Bus controllers > USB Root Hub > Details > Children. I want to make sure its the same IDs that appear in the HID interface (just found out that Xbox controllers can have different IDs in the HID vs USB details).

You’re welcome @rafael.lehmkuhl!

I just tested the lag-less version you just sent me with the Xbox controller and I can confirm that it no longer disconnects. In the version I was using before both controllers kept disconnecting.

This is what I get when I go through the path you asked me: USB\VID_045E&PID_0B12\3039373130313635313937343134

Thanks again!

1 Like

Thanks again!

This makes everything more clear. I’m doing some changes to see if I can completely fix the lag problem, and tomorrow I can take a better look at the disconnecting issue.

Only thing that is still not clear for me is why your Xbox controller is not being recognized in Cockpit. Since its a 0B12 (product ID), it is in our database. Can you access the visual tab of the joystick configuration page when it is connected? And does it show as an “Xbox controller” or as “Unknown”?

Thanks a lot!
Unfortunately tomorrow I won’t be able to reply.

No, I can’t access the visual tab and the controller is labelled as “Unknown”.

No problem. I can work it out for now.

Could you do me one more favor and, with your Xbox controller connected, open the Dev menu (under Settings), download the latest log and send me? I want to check which product ID is being received by Cockpit. Since it’s not being recognized, my guess is that SDL is showing it as 0x02FF, and not as 0x0B12. If that’s the case, I’m just going to add the 0x02FF to our database as well, so it is correctly recognized.

I did it!

From what I can see it shows “0x02ff” as PID, exactly as you said.
If I managed to change the PID descriptor of my custom-made controller into 0x02ff, would it work after your fix? This is just a curiosity, I don’t have much experience on this topic.

Thanks!

Cockpit (Jul 14, 2025 - 16꞉20꞉50 GMT+2).txt (473.1 KB)

That explains everything! Will add this product ID to the database as well!

Regarding your question about the custom controller, if you change its reported VID to 0x045E and the PID to 0x0B12 it will already work, as it’s going to be recognized as an Xbox Controller! The lag and connect/disconnect should probably go away!

@Alexxx I’ve done some work here and I think I was able to remove the lag completely. Could you test this build and see if the lag goes away with the Xbox controller? The binary should be ready in about 10 minutes.

Next thing I’m going to work on is the connecting/disconnecting problem for custom joysticks.

Hi!

I tried testing the new build both with my Xbox controller and the custom one.
The Xbox one worked perfectly, without lag. The custom one, even after changing its VID and PID descriptors (yes, it does get recognized as an Xbox controller), stays connected but doesn’t show any input.
Could it be that, if it isn’t an official controller, the PID and VID descriptors get recognized as false? Furthermore, my custom controller has got more buttons than a usual Xbox controller.

If that’s the issue, could you add a PID descriptor only for custom controllers? In this way custom joysticks get “standardized”, if you know what I mean.

As always, thanks for your work!

1 Like

Good news! I was able to find the bug that was causing the joystick to keep reconnecting!

There were two actually: one in our repository and another one in a library that we use (node-sdl).

I was not being able to reproduce the bug on my machine because of the bug in the library, that was actually only affecting macOS. Once I fixed that one I was able to reproduce the reconnecting problem and fix it. The new build is available here. It doesn’t contain the fix for macOS yet as we are waiting for the node-sdl maintainer to deploy a new release with our fix (which was just merged!).

2 Likes

Thank you!

I tested the last version you sent and the disconnecting problems are gone, as well as the axis input ones.
The buttons, however, don’t work.

Best Regards,

Alex.

Nice that the other problems are fixed!

About the buttons bug, I think I sent you a wrong build that didn’t contain the correct implementation yet. I opened a new draft PR with all changes so you can check them out. You can find it here. I’ve tested it in macOS and Windows with my HOTAS controllers, and everything seems to be working correctly now.

The build in the PR doesn’t contain the fix for macOS yet as we are waiting for the node-sdl maintainer to deploy a new release with our fix (which was just merged!).