Go to file
Michael Stapelberg 82aa9ad4a5
matrix: wait for row signal to go HIGH for every row (#12945)
I noticed this discrepancy (last row of the matrix treated differently than the
others) when optimizing the input latency of my keyboard controller, see also
https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/

Before this commit, when tuning the delays I noticed ghost key presses when
pressing the F2 key, which is on the last row of the keyboard matrix: the
dead_grave key, which is on the first row of the keyboard matrix, would be
incorrectly detected as pressed.

After this commit, all keyboard matrix rows are interpreted correctly.

I suspect that my setup is more susceptible to this nuance than others because I
use GPIO_INPUT_PIN_DELAY=0 and hence don’t have another delay that might mask
the problem.
2021-05-20 06:43:36 +10:00
.github Merge remote-tracking branch 'origin/master' into develop 2021-05-18 19:26:46 +00:00
.vscode [Keyboard] add rhymestone by marksard (#9708) 2020-09-04 04:14:34 -07:00
api_data Generate api data on each push (#10609) 2020-10-25 14:48:44 -07:00
bin Merge remote-tracking branch 'origin/master' into develop 2021-05-10 12:16:04 -07:00
data Add STM32L433 and L443 support (#12063) 2021-04-26 13:07:15 +10:00
docs Add function to allow repeated blinking of one layer (#12237) 2021-05-16 20:59:02 -04:00
drivers Merge remote-tracking branch 'origin/master' into develop 2021-05-09 17:15:32 +00:00
keyboards Merge remote-tracking branch 'origin/master' into develop 2021-05-19 19:01:52 +00:00
layouts Merge remote-tracking branch 'origin/master' into develop 2021-05-13 00:18:40 +00:00
lib Merge remote-tracking branch 'origin/master' into develop 2021-05-18 19:26:46 +00:00
nix [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) 2021-04-03 08:05:46 -07:00
platforms/chibios Merge remote-tracking branch 'origin/master' into develop 2021-05-13 02:30:14 +00:00
quantum matrix: wait for row signal to go HIGH for every row (#12945) 2021-05-20 06:43:36 +10:00
tests Missed a couple more #pragma onces (#11351) 2020-12-30 15:44:53 +00:00
tmk_core Fixup housekeeping from being invoked twice per loop. (#12933) 2021-05-18 17:02:28 +10:00
users Merge remote-tracking branch 'origin/master' into develop 2021-05-14 03:54:43 +00:00
util New command: qmk console (#12828) 2021-05-08 20:56:07 -07:00
.clang-format fix indent size 2019-06-11 01:51:40 -07:00
.editorconfig QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
.gitattributes [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) 2021-04-03 08:05:46 -07:00
.gitignore Merge remote-tracking branch 'origin/master' into develop 2021-04-26 19:18:51 +00:00
.gitmodules 2020 May 30 Breaking Changes Update (#9215) 2020-05-30 13:14:59 -07:00
.travis.yml CI: Add workflow for codebase formatting (#7382) 2020-12-10 17:01:51 +00:00
book.json adds redirects for docs 2017-08-19 08:31:54 -04:00
bootloader.mk Add initial support for tinyuf2 bootloader (when hosted on F411 blackpill) (#12600) 2021-04-25 13:40:56 +10:00
build_full_test.mk Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
build_json.mk Begin the process of deprecating bin/qmk in favor of the global cli (#12109) 2021-03-07 19:10:03 -08:00
build_keyboard.mk fix some references to bin/qmk that slipped in (#12832) 2021-05-08 12:25:04 -07:00
build_layout.mk Allow for building layouts from keymap.json files. 2020-07-07 07:27:39 -07:00
build_test.mk Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
CODE_OF_CONDUCT.md updates the coc 2019-08-24 12:43:39 -04:00
common_features.mk Change BOOTMAGIC_ENABLE=yes to use Bootmagic Lite (#12172) 2021-04-12 21:18:52 +02:00
common.mk 2020 November 28 Breaking Changes Update (#11053) 2020-11-28 12:02:18 -08:00
disable_features.mk Add a <FEATURE>_SUPPORTED flag (#9058) 2021-01-30 13:08:58 -08:00
Dockerfile Update docker util script and travis to use new base container 2019-07-14 21:01:38 -07:00
Doxyfile Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
doxygen-todo Remove iWRAP protocol (#9284) 2020-08-29 14:30:02 -07: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 Add support for producing UF2-format binaries. (#12435) 2021-04-06 16:39:15 +10:00
message.mk fix some references to bin/qmk that slipped in (#12832) 2021-05-08 12:25:04 -07:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
readme.md Branch point for 2021 May 29 Breaking Change 2021-02-27 12:54:23 -08:00
requirements-dev.txt New command: qmk console (#12828) 2021-05-08 20:56:07 -07:00
requirements.txt Add support for tab completion (#12411) 2021-04-14 19:00:22 -07:00
secrets.tar.enc update building for .hex, secrets moving 2017-08-21 21:57:46 -04:00
setup.cfg Use the schema to eliminate custom code (#11108) 2021-01-09 13:34:14 -08:00
shell.nix [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) 2021-04-03 08:05:46 -07:00
show_options.mk add OLED_DRIVER_ENABLE into show_options.mk (#12121) 2021-03-05 20:26:26 +00:00
testlist.mk Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
Vagrantfile Remove broken example from Makefile (#9159) 2020-05-21 20:33:20 +01:00

Quantum Mechanical Keyboard Firmware

Current Version Build Status 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.

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.

Original readme continues

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.