Skip to content

Conversation

@mmilata
Copy link

@mmilata mmilata commented Jan 4, 2026

I can't get the 8th axis to work when connected to Linux (did not try other OS). I suspect it is caused by the last two axes sharing the same usage (0x36 Slider). Don't understand HID enough to claim this is wrong, but the same device can also be connected via USB where the 8th axis works and this is the most striking difference in the report descriptor.

This patch changes the second slider to be actually 0x37 Dial. Haven't managed to test this yet, opening the PR mostly so I don't forget. Some details: ExpressLRS/ExpressLRS#2136

btw can you please publish the 7.4 git tag?

@LeeNX
Copy link
Collaborator

LeeNX commented Jan 5, 2026

Thanks @mmilata , this PR gives us something to discuss, but I don't think this would be merged at the moment.

This is not to discourage you but to more get changes that everybody would use in place and possible tested on base OS supported, like Windows, Linux, Mac and Android.

What might be more something that would be an idea, is possible adding dial device. I saw a new gamepad for flight sims that had a few sliders and dials. I don't know how a dial is better than a slide, but maybe somebody is going for the feeling similar to real hardware.

Also, have you looked at Rudder, Throttle, Accelerator and possible Steering?

As for the ExpressLRS, that is pretty cool and I have not come across it before. I was not able to find how the axises are decoded, but would be nice to keep compatibility if possible.

A new release for 2026 might not be a bad idea, @lemmingDev what do you think?

@mmilata
Copy link
Author

mmilata commented Jan 5, 2026

A new release for 2026 might not be a bad idea, @lemmingDev what do you think?

I'm not necessarily asking for a new release - there's already version 7.4 on https://registry.platformio.org/libraries/lemmingdev/ESP32-BLE-Gamepad/versions but without a corresponding tag on github.

@mmilata
Copy link
Author

mmilata commented Jan 5, 2026

For context, ExpressLRS enables all 8 axes and then assigns them channels like this. It does not know what are the physical controls corresponding to the channels, AFAIK. Which doesn't matter much because in all apps/games I've seen you have to manually assign the axes anyway.

Rather than the exact control type I'm concerned whether repeating "Slider" twice in the HID report descriptor is the right way to get two sliders on host? Is there an user of this library who managed to get two sliders working?

Anyway, thanks for the reply and feel free to close this. I'm gonna read some more on HID and test on other platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants