Skip to content

Change usage of the 8th axis to Dial#309

Draft
mmilata wants to merge 1 commit intolemmingDev:masterfrom
mmilata:ax8
Draft

Change usage of the 8th axis to Dial#309
mmilata wants to merge 1 commit intolemmingDev:masterfrom
mmilata:ax8

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.

@mmilata
Copy link
Author

mmilata commented Jan 14, 2026

Pushed a commit that adds a Dial device - this way ExpressLRS could disable Slider2 and enable Dial to get the desired HID descriptor, without breaking backwards compatibility. What do you think?

Note: did not test it nor discussed with ExpressLRS maintainers yet

@mmilata mmilata marked this pull request as draft January 14, 2026 12:59
@LeeNX
Copy link
Collaborator

LeeNX commented Jan 14, 2026

These are some interesting changes, basically what I was think, thanks @mmilata .

We would need a little bit of testing before we merge. Does this fix your problem ExpressLRS? From looking at their code, it looks like they just use the 8th reading for the 8th Axis, they not checking if it's actually in place or is a slider/dial/axis. Thou this is just me looking over their code, not running.

@LeeNX
Copy link
Collaborator

LeeNX commented Jan 14, 2026

Just for completeness, the gamepad I saw wasEcho Aviation Controller from Flyhoneycomb

HC003981_EchoAviationController_3

A review and usage can we seen
Honeycomb Echo Aviation Controller | First Look at All The Features!

I am not sure I do any flightSim type stuff enough, thou I could see a custom gamepad/flightStick that has dials and sliders as needed.

What a pain to find this device. I don't think Flyhoneycomb market it quite right, but that is just my opinion. There is place for all these devices.

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