Open-source keyboard firmware for Atmel AVR and Arm USB families
Find a file
Stefan Kerkmann 32174abcfa
Update keyboard report descriptor for USB compliance (#21626)
Running the "HID Tests" suite of the USB 3 Command Verifier (USB3CV)
tool resulted in the following error:

(HID: 3.2.61) The report descriptor returned in response to a
GetDescriptor(Report) must be compliant with the HID specification.

Byte Number:   37h (  55d)
Data Field: 91 02
Mnemonic:  Output
Value: (Variable)
Errors: Error:   LOGICAL MAX MUST be bounded by Report Size

The error stems from the fact that logical minimum and maximum are
global items, which means that the next item in a report descriptor
inherits the value from the previously set value. In this case the
status leds item inherited the logical minimum (=0) and maximum (=255)
from the keycodes item. As the status leds set a report size of 1 bit,
wich can only hold a boolean, it becomes clear that this range would
never fit.

The fix is straightforward, we just define a appropriate logical maximum
(=1), the mismatch is solved and our keyboard now passes the compliance
tests. Defining the logical minimum is redundant in this case but is
kept to form a logical block.
2023-07-28 01:05:01 +01:00
.github Bump JamesIves/github-pages-deploy-action from 4.4.2 to 4.4.3 (#21518) 2023-07-13 00:14:23 +01:00
.vscode Far better VSCode intellisense support using clangd. (#20382) 2023-05-14 15:32:34 +10:00
builddefs haptic: naming cleanups (#21551) 2023-07-21 09:17:39 +10:00
data [Keyboard] Delete jscotto directory (#21157) 2023-07-24 20:56:52 -06:00
docs Merge remote-tracking branch 'origin/master' into develop 2023-07-27 04:21:43 +00:00
drivers haptic: naming cleanups (#21551) 2023-07-21 09:17:39 +10:00
keyboards Merge remote-tracking branch 'origin/master' into develop 2023-07-27 23:21:01 +00:00
layouts haptic: naming cleanups (#21551) 2023-07-21 09:17:39 +10:00
lib [Core] Update ChibiOS-Contrib (#21553) 2023-07-17 19:55:31 +10:00
platforms Remove needless precision in additive DAC sample generation (#21498) 2023-07-26 21:06:14 -07:00
quantum Unify MIDI note calculation with the audio feature's algorithm (#21588) 2023-07-27 16:14:34 -07:00
tests On-each-release tap dance function (#20255) 2023-07-26 21:04:35 -07:00
tmk_core Update keyboard report descriptor for USB compliance (#21626) 2023-07-28 01:05:01 +01:00
users haptic: naming cleanups (#21551) 2023-07-21 09:17:39 +10:00
util Merge upstream uf2conv.py changes (#21107) 2023-06-01 21:12:25 +01:00
.clang-format Clang-format tweaks (#15906) 2022-02-11 20:00:34 -08:00
.clangd Far better VSCode intellisense support using clangd. (#20382) 2023-05-14 15:32:34 +10:00
.editorconfig QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
.gitattributes eol=lf, where appropriate (#15752) 2022-01-05 21:56:31 +00:00
.gitignore Merge remote-tracking branch 'origin/master' into develop 2023-04-11 01:44:24 +00:00
.gitmodules [Core] Quantum Painter - LVGL Integration (#18499) 2022-12-13 07:51:14 +11:00
Doxyfile Internal docs generation updates (#16411) 2022-02-21 15:47:44 +00:00
doxygen-todo Remove SERIAL_LINK feature (#14727) 2021-10-07 12:32:05 +11:00
LICENSE add an explicit lisence file for github to pickup 2017-11-13 20:50:54 -05:00
license_GPLv2.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_GPLv3.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_Modified_BSD.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
Makefile Remove make all-<platform> build targets (#19496) 2023-01-19 10:44:41 +11:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
paths.mk Remove quantum/audio from global VPATH (#18753) 2022-10-20 14:41:45 +01:00
readme.md Branch point for 2023q3 Breaking Change. 2023-05-29 06:20:09 +10:00
requirements-dev.txt Macros in JSON keymaps (#14374) 2021-11-22 11:11:35 -08:00
requirements.txt Align CLI requirements (#18117) 2022-08-21 18:38:17 +01:00
setup.cfg Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00
shell.nix Nix shell updates for develop (#18131) 2022-08-23 02:59:33 +01:00

THIS IS THE DEVELOP BRANCH

Warning- This is the develop branch of QMK Firmware. You may encounter broken code here. Please see Breaking Changes for more information.

Quantum Mechanical Keyboard Firmware

Current Version Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are powered by Docsify and hosted on GitHub. They are also viewable offline; see Previewing the Documentation for more details.

You can request changes by making a fork and opening a pull request, or by clicking the "Edit this page" link at the bottom of any page.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.