d1feb8744a
"unselecting" left-hand rows is a wasted i2c transaction. On the left-hand side, the ergodox uses a GPIO expander. It does *not* change "direction" (input/output) of pins, it just sets pins high or low. But all the pins are written at once. There's no way to change just one pin's value; you send a full byte of all eight row pins. (Not all of them are in use, but that doesn't matter.) So every pin is either +V or ground. This is in contrast with the right-hand side, which is using input mode to make pins be neutral. So there's no need to "deselect" the rows on the left side at all. To select row 0, you set the GPIO register for the rows to 0xFE. The previous code would then set it back to 0xFF, then set it to 0xFD on the next cycle. But we can just omit the intervening step, and set it to 0xFD next cycle, and get the same results. And yes, I tested that the keyboard still works. On my system, scan rate as reported by DEBUG_SCAN_RATE goes from 445 or so to 579 or so, thus, from ~2.24ms to ~1.73ms. Signed-off-by: seebs <seebs@seebs.net> |
7 years ago | |
---|---|---|
.vscode | 7 years ago | |
docs | 7 years ago | |
drivers | 7 years ago | |
keyboards | 7 years ago | |
layouts | 7 years ago | |
lib | 7 years ago | |
quantum | 7 years ago | |
tests | 7 years ago | |
tmk_core | 7 years ago | |
users | 7 years ago | |
util | 7 years ago | |
.editorconfig | 7 years ago | |
.gitattributes | 8 years ago | |
.gitignore | 7 years ago | |
.gitmodules | 7 years ago | |
.travis.yml | 7 years ago | |
CODE_OF_CONDUCT.md | 7 years ago | |
Dockerfile | 7 years ago | |
LICENSE | 7 years ago | |
Makefile | 7 years ago | |
Vagrantfile | 8 years ago | |
autocomplete.sh | 7 years ago | |
book.json | 7 years ago | |
bootloader.mk | 7 years ago | |
build_full_test.mk | 7 years ago | |
build_keyboard.mk | 7 years ago | |
build_layout.mk | 7 years ago | |
build_test.mk | 8 years ago | |
common.mk | 7 years ago | |
common_features.mk | 7 years ago | |
license_GPLv2.md | 8 years ago | |
license_GPLv3.md | 8 years ago | |
license_Modified_BSD.md | 8 years ago | |
message.mk | 7 years ago | |
readme.md | 7 years ago | |
secrets.tar.enc | 7 years ago | |
shell.nix | 7 years ago | |
testlist.mk | 8 years ago |
readme.md
Quantum Mechanical Keyboard Firmware
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.
Official website
http://qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.
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 Erez Zukerman, and the Clueboard by Zach White.
Documentation
https://docs.qmk.fm is hosted on Gitbook and GitHub (they are synced). You can request changes by making a fork and pull request, or by clicking the "suggest an edit" link on any page of the Docs.