Open-source keyboard firmware for Atmel AVR and Arm USB families
Find a file
Stefan Kerkmann 4d107feca9
Check for ongoing transfers on the OUT endpoint (#16974)
...when attempting to start a receiving USB transfer. Previously, we would
check on the IN endpoint which is the transmitting part of the USB endpoint.
This is wrong and lead to two USB transfers being started immediately
after each other in case of e.g. RAW HID endpoints:

1. When finishing an OUT transfer the low level USB driver calls the out_cb
callback, which in turn initiates another OUT transfer by calling
qmkusbDataReceived.

2. When the raw hid receive channel runs empty inside the raw_hid task,
another OUT transfer is started to potentially fill the channel again. This
happens by calling ibnotify.

Both events occur directly after each other, thus triggering the bug.
2022-05-14 23:17:14 +01:00
.github Preinstall python dependencies before executing qmk. (#16874) 2022-04-18 15:46:52 +01:00
.vscode remove Bracket Pair Colorizer recommendation (#14816) 2021-10-15 11:54:19 +11:00
builddefs [Core] Add Caps Word feature to core (#16588) 2022-05-14 16:00:32 +10:00
data [Core] Add Caps Word feature to core (#16588) 2022-05-14 16:00:32 +10:00
docs Merge remote-tracking branch 'origin/master' into develop 2022-05-14 22:09:12 +00:00
drivers Merge remote-tracking branch 'origin/master' into develop 2022-05-13 06:21:56 +00:00
keyboards Merge remote-tracking branch 'origin/master' into develop 2022-05-14 21:29:01 +00:00
layouts F13 TKL with Split Backspace and Split Right Shift Community Layouts (#17082) 2022-05-14 09:14:19 -07:00
lib Also format *.hpp files. (#16997) 2022-05-04 05:48:41 +10:00
platforms [Core] Add Reboot keycode to core (#15990) 2022-05-14 13:35:49 +10:00
quantum Enhancement and fixes of "Secure" feature (#16958) 2022-05-14 23:07:08 +01:00
tests Format code according to conventions (#17096) 2022-05-14 23:14:49 +01:00
tmk_core Check for ongoing transfers on the OUT endpoint (#16974) 2022-05-14 23:17:14 +01:00
users [Keymap] Toinux's crkbd keymap and userspace (#16437) 2022-04-22 17:41:54 +10:00
util MSYS2 install: add some Python dependencies through Pacman (#17025) 2022-05-07 13:01:46 +01:00
.clang-format Clang-format tweaks (#15906) 2022-02-11 20:00:34 -08: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 Ignore VIA(L) json files (#16845) 2022-04-14 15:42:24 +10:00
.gitmodules Purge uGFX. (#14720) 2021-10-07 10:57:48 +11:00
Dockerfile move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07: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 Migrate more makefile utilities to builddefs sub-directory (#16002) 2022-02-10 09:45:51 -08:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
paths.mk Migrate more makefile utilities to builddefs sub-directory (#16002) 2022-02-10 09:45:51 -08:00
readme.md Start develop for 2022q2 2022-02-26 00:57:08 +00:00
requirements-dev.txt Macros in JSON keymaps (#14374) 2021-11-22 11:11:35 -08:00
requirements.txt Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00
setup.cfg Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00
shell.nix Allow overriding Niv inputs in shell.nix (#16602) 2022-05-12 09:49:15 +03:00
Vagrantfile move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07:00

This is the develop branch!

See the Breaking Changes document 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.