Go to file
Seebs d1feb8744a Don't "unselect" left-hand rows
"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>
2017-12-10 00:40:41 -05:00
.vscode Add EditorConfig file (#1930) 2017-10-31 11:13:40 -04:00
docs Trim trailing whitespace 2017-12-09 10:46:11 -05:00
drivers update to driver separation 2017-09-15 21:43:58 -04:00
keyboards Don't "unselect" left-hand rows 2017-12-10 00:40:41 -05:00
layouts Turn on prevent stuck modifiers for my keymaps. 2017-12-09 00:06:08 -05:00
lib update chibios 2017-11-17 11:40:13 -05:00
quantum Add 'rgblight_disable' and 'rgblight_setrgb_at/rgblight_sethsv_at' 2017-12-08 16:10:42 -05:00
tests Fix unreferenced errors with mingw compiler and unit tests 2017-07-11 19:41:04 +03:00
tmk_core helper to compare current layer_state to user layer 2017-12-08 16:09:47 -05:00
users Turn on prevent stuck modifiers for my keymaps. 2017-12-09 00:06:08 -05:00
util adds planck light keyboard 2017-11-20 23:37:38 -05:00
.editorconfig Add EditorConfig file (#1930) 2017-10-31 11:13:40 -04:00
.gitattributes Set eep files to binary mode 2016-08-27 18:37:28 +03:00
.gitignore 333fred layout update (#1971) 2017-11-06 12:09:01 -05:00
.gitmodules Update .gitmodules 2017-11-16 15:09:45 -05:00
.travis.yml add qmk.fm as a backup host 2017-10-15 13:37:46 -04:00
autocomplete.sh Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
book.json adds redirects for docs 2017-08-19 08:31:54 -04:00
bootloader.mk Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
build_full_test.mk Add SRC and OPT_DEFS when building tests 2017-07-20 10:17:31 -04:00
build_keyboard.mk Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
build_layout.mk Creates a layouts/ folder for keymaps shared between keyboards (#1609) 2017-08-23 22:29:07 -04:00
build_test.mk Split common.mk into common.mk and common_features.mk 2017-06-18 21:22:22 +03:00
CODE_OF_CONDUCT.md create initial code of conduct 2017-06-27 21:36:44 -04:00
common_features.mk Fix pointing device feature 2017-10-31 20:59:55 -04:00
common.mk Start mvoing hardware drivers to /drivers/ (#1433) 2017-07-10 11:18:47 -04:00
Dockerfile Reverting CMD Changes 2017-08-19 08:17:58 -04: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 update version silencing 2017-11-14 22:56:29 -05:00
message.mk Change awk detector to work with mawk; fixes #2073 2017-11-30 22:15:20 -05:00
readme.md Improvements to documentation (#1919) 2017-11-01 11:21:54 -04:00
secrets.tar.enc update building for .hex, secrets moving 2017-08-21 21:57:46 -04:00
shell.nix shell.nix: add teensy loader 2017-11-26 17:55:24 -05:00
testlist.mk Add basic infrastrucure for building full tests 2017-06-18 21:08:23 +03:00
Vagrantfile Update some obsolete references 2016-07-30 08:37:30 +02:00

Quantum Mechanical Keyboard Firmware

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

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.