Go to file
Nick Brassel 172e6a7030
Extensible split data sync (#11930)
* Extensible split data sync capability through transactions.

- Split common transport has been split up between the transport layer
  and data layer.
- Split "transactions" model used, with convergence between I2C and
  serial data definitions.
- Slave matrix "generation count" is used to determine if the full slave
  matrix needs to be retrieved.
- Encoders get the same "generation count" treatment.
- All other blocks of data are synchronised when a change is detected.
- All transmissions have a globally-configurable deadline before a
  transmission is forced (`FORCED_SYNC_THROTTLE_MS`, default 100ms).
- Added atomicity for all core-synced data, preventing partial updates
- Added retries to AVR i2c_master's i2c_start, to minimise the number of
  failed transactions when interrupts are disabled on the slave due to
  atomicity checks.
- Some keyboards have had slight modifications made in order to ensure
  that they still build due to firmware size restrictions.

* Fixup LED_MATRIX compile.

* Parameterise ERROR_DISCONNECT_COUNT.
2021-06-18 09:10:06 +10:00
.github
.vscode vscode: specify yapf as the formatting provider (#13206) 2021-06-13 17:52:31 -07:00
api_data
bin Ensure that safe_commands always run (#13199) 2021-06-14 16:51:58 -07:00
data
docs Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
drivers Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
keyboards Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
layouts Fix RGB/LED Suspend defines (#13146) 2021-06-09 22:59:19 -07:00
lib Merge remote-tracking branch 'origin/master' into develop 2021-06-14 23:52:31 +00:00
nix
platforms/chibios core: wire up flash make target for Teensy 4.x (#13077) 2021-06-17 04:15:45 +10:00
quantum Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
tests
tmk_core Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
users Fix RGB/LED Suspend defines (#13146) 2021-06-09 22:59:19 -07:00
util ChibiOS SVN mirror script. (#13070) 2021-06-18 00:04:17 +01:00
.clang-format
.editorconfig
.gitattributes
.gitignore
.gitmodules
.travis.yml
book.json
bootloader.mk Change Lufa-MS size (#13183) 2021-06-15 21:28:17 -07:00
build_full_test.mk
build_json.mk
build_keyboard.mk
build_layout.mk
build_test.mk Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
CODE_OF_CONDUCT.md
common_features.mk Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
common.mk
disable_features.mk
Dockerfile
Doxyfile
doxygen-todo
LICENSE
license_GPLv2.md
license_GPLv3.md
license_Modified_BSD.md
Makefile
message.mk Make atmel-dfu and chibios-dfu flashing behave more like caterina flashing. (#12552) 2021-06-16 14:20:44 +10:00
nose2.cfg
readme.md
requirements-dev.txt Move hid and pyusb to requirements.txt (#13134) 2021-06-07 16:30:55 -07:00
requirements.txt Update requirements.txt (#13135) 2021-06-08 00:37:58 +01:00
secrets.tar.enc
setup.cfg
shell.nix
show_options.mk
testlist.mk Avoid 8-bit timer overflows in debounce algorithms (#12240) 2021-06-09 17:23:21 +10:00
Vagrantfile

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.

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.