qmk / qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families
https://qmk.fm
GNU General Public License v2.0
18.23k stars 39.3k forks source link

HID report descriptors are not homogeneous #4597

Closed fauxpark closed 5 years ago

fauxpark commented 5 years ago

Taking a look at the HID report descriptors on the various platforms supported, I noticed differences between them. For example, the 6KRO descriptor for the ATSAM protocol only declares up to keycode 0x65, meaning F13-F24, locking caps/num/scroll lock, and international keys all do not work (#4548). On the other hand, LUFA and V-USB both correctly declare up to 0xFF.

It would be nice to unify these descriptors as much as possible so that all platforms produce the same (or similar) sequence of bytes.

drashna commented 5 years ago

Where do you find those for LUFA and V-USB? Also, what about ChibiOS?

fauxpark commented 5 years ago

Here are all the descriptors I could find. ChibiOS seems to just run LUFA.

ATSAM Keyboard NKRO Extra Mouse Raw Console

USB HID Mouse, Keyboard, Raw

V-USB (no NKRO?) Keyboard Mouse, Extra

LUFA Keyboard Mouse Extra, NKRO Raw Console

drashna commented 5 years ago

Since this is stuff that is a bit beyond me, do you have time to take a look at this, and get the settings in sync. at least, as much as possible?

If not, would there be any issue with merging this: https://github.com/qmk/qmk_firmware/compare/master...drashna:fix_hid_report_descriptors @patrickmt

fauxpark commented 5 years ago

LGTM :)

I also forgot to mention #4871 is related and partially fixes this issue for LUFA.

patrickmt commented 5 years ago

Yes this seems good to go!

fauxpark commented 5 years ago

@drashna this issue is still not resolved, I would very much like to see all the descriptors I listed above be aligned.