Find a file
Joakim Tufvegren 8130690a28
Improvements to handling of disconnected split keyboards. (#14033)
* Use memcmp and memcpy to compare and copy slave matrix.

...and memset to initialize `matrix` and `raw_matrix`.

Increased my scan rate (while connected) by ~100 (on Ergodox Infinity).
Effect on AVR is unknown.

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>

* Fix `matrix_post_scan` signalling change on every scan while disconnected.

* Undo removal of initialization of `slave_matrix`.

This has the effect of increasing my Ergodox Infinity firmware size by 8
bytes instead of decreasing by 8 bytes, and lowers the scan rate while
connected back to the initial value before these changes, but _might_
solve some issues on AVR.

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2021-09-18 17:29:22 +10:00
.github Remove bin/qmk (#14231) 2021-08-29 16:50:22 -07:00
.vscode do not automatically format json (#13320) 2021-06-25 22:47:48 -07:00
api_data Generate api data on each push (#10609) 2020-10-25 14:48:44 -07:00
data Remove BLUETOOTH_ENABLE from keyboard-level rules.mk (#14379) 2021-09-12 15:27:29 +10:00
docs New CLI subcommand to create clang-compatible compilation database (compile_commands.json) (#14370) 2021-09-16 14:59:57 +10:00
drivers Merge remote-tracking branch 'origin/master' into develop 2021-09-15 17:07:47 +00:00
keyboards Merge remote-tracking branch 'origin/master' into develop 2021-09-18 06:53:36 +00:00
layouts Remove width, height and key_count from info.json (#14274) 2021-09-12 14:04:56 +10:00
lib New CLI subcommand to create clang-compatible compilation database (compile_commands.json) (#14370) 2021-09-16 14:59:57 +10:00
platforms Add RGBW support to PWM and SPI drivers for ChibiOS (#14327) 2021-09-18 17:28:57 +10:00
quantum Improvements to handling of disconnected split keyboards. (#14033) 2021-09-18 17:29:22 +10:00
tests Allow output of logging when running unit tests (#13556) 2021-07-25 17:18:09 +01:00
tmk_core [Bug] fix logical minimum in Programmable Button rdesc (#14464) 2021-09-16 17:04:26 +10:00
users Merge remote-tracking branch 'origin/master' into develop 2021-09-13 20:15:39 +00:00
util move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -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 New CLI subcommand to create clang-compatible compilation database (compile_commands.json) (#14370) 2021-09-16 14:59:57 +10:00
.gitmodules 2020 May 30 Breaking Changes Update (#9215) 2020-05-30 13:14:59 -07:00
book.json adds redirects for docs 2017-08-19 08:31:54 -04:00
bootloader.mk Change USBasp and bootloadHID bootloaders to lowercase (#14354) 2021-09-10 17:17:54 +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 Add config.h and rules.mk support for data driven keymaps (#12859) 2021-08-18 21:52:41 +01:00
build_keyboard.mk add 'include keyboard_features.mk' into build_keyboard.mk (#8422) 2021-08-29 09:42:57 +10:00
build_layout.mk Add config.h and rules.mk support for data driven keymaps (#12859) 2021-08-18 21:52:41 +01:00
build_test.mk eeprom_stm32: implement high density wear leveling (#12567) 2021-08-23 23:15:34 +01:00
common.mk Relocate platform specific drivers (#13894) 2021-08-17 23:43:09 +01:00
common_features.mk Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
disable_features.mk Move Bluetooth config to common_features.mk (#14404) 2021-09-12 08:22:03 -07:00
Dockerfile move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07:00
Doxyfile Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
doxygen-todo Various fixes from reorg of files (#14051) 2021-08-18 09:54:41 +10: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 bin/qmk (#14231) 2021-08-29 16:50:22 -07:00
message.mk --parallel improvements (#13800) 2021-08-18 08:46:59 +10:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
readme.md [Core] [Docs] Remove travis-ci references (#13916) 2021-08-20 23:31:26 +01:00
requirements-dev.txt Move hid and pyusb to requirements.txt (#13134) 2021-06-07 16:30:55 -07:00
requirements.txt switch to qmk-dotty-dict (#13460) 2021-07-14 09:08:48 -07:00
setup.cfg Use the schema to eliminate custom code (#11108) 2021-01-09 13:34:14 -08:00
shell.nix Remove bin/qmk (#14231) 2021-08-29 16:50:22 -07:00
show_options.mk Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
testlist.mk eeprom_stm32: implement high density wear leveling (#12567) 2021-08-23 23:15:34 +01:00
Vagrantfile move everything from qmkfm/base_container to qmkfm/qmk_cli (#14230) 2021-08-29 16:41:56 -07:00

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.