opensteno_qmk/keyboards
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
..
6ball Add 6-ball macropad 2017-10-31 20:59:26 -04:00
9key Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
acr60 Add keyboard: ACR60 (#1999) 2017-11-13 18:50:09 -05:00
alps64 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
amj40 adds default keymap for amj60 2017-10-15 16:17:47 -04:00
amj60 adds default keymap for amj60 2017-10-15 16:17:47 -04:00
amjpad Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
atomic Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
atreus Add keymap for atreus and minidox (#2079) 2017-12-02 23:56:30 -05:00
atreus62 Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
bananasplit change the ?= assignments to = 2017-12-10 00:40:19 -05:00
bantam44 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
bfake Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
bmini Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
chibios_test Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
chimera_ortho Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
clueboard Updated readme 2017-12-08 16:12:31 -05:00
converter Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
crawlpad Add Crawlpad 2017 files. 2017-12-04 18:14:08 -05:00
daisy Added Daisy port (#2016) 2017-11-22 10:52:42 -05:00
deltasplit75 Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
dichotemy Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
dk60 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
do60 add do60 support 2017-12-08 16:03:57 -05:00
dz60 update build script to not delete files 2017-11-17 14:09:27 -05:00
eco Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
ergo42 Add support for 7x4 ortholinear split KB Ergo42 2017-12-07 11:10:39 -05:00
ergodone Do some cleanup for the API 2017-11-02 16:47:39 -07:00
ergodox/keymaps/narze Add narze keymaps for Ergodox & Planck with SuperDuper mode implementation (#1883) 2017-10-25 06:11:07 -10:00
ergodox_ez Don't "unselect" left-hand rows 2017-12-10 00:40:41 -05:00
ergodox_infinity Do some cleanup for the API 2017-11-02 16:47:39 -07:00
fc660c Fc660c port (#2060) 2017-11-26 02:17:14 -05:00
fc980c I forgot to add a README.md for the FC980C 2017-11-23 23:41:37 -05:00
felix Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
four_banger Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
frosty_flake Updated keymaps to allow base layer alternation for QWERTY, Colemak & Dvorak (#1962) 2017-11-13 20:55:14 -05:00
gh60 update gh60 info 2017-11-05 12:06:45 -05:00
gherkin Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
gonnerd Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
hadron Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
handwired Updates to drashna keymaps and userspace (#2093) 2017-12-05 21:45:42 -05:00
hhkb Update my keymap (#2042) 2017-11-26 02:09:02 -05:00
infinity60 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
iris Pointing to the right build URL 2017-12-08 16:12:05 -05:00
jc65 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
jd40 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
jd45 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
jj40 Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
jm60 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
katana60 Katana60 (#2068) 2017-12-05 11:14:10 -05:00
kbd75 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
kc60 update keymaps to not be the canonical file 2017-10-15 16:18:45 -04:00
kinesis Cleaned up my Kinesis layout and created readme. (#1843) 2017-10-15 06:12:39 -10:00
kitten_paw Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
kmac remove all makefiles from keyboard directories 2017-09-27 08:21:09 -10:00
knops Added support for Knops Mini (3x2 macropad) keyboard. (#1953) 2017-11-01 21:24:59 -04:00
kona_classic Kona_classic: ANSI arrows keymap with locking caps lock support 2017-11-20 12:21:04 -05:00
lets_split Fix Audio chime overrides in split keyboards 2017-12-04 18:16:26 -05:00
levinson Fix Audio chime overrides in split keyboards 2017-12-04 18:16:26 -05:00
lfkeyboards Add support for LFKeyboard products: LFK78, LFK87 and SMK65 2017-12-09 00:01:58 -05:00
m10a update keymaps to not be the canonical file 2017-10-15 16:18:45 -04:00
maxipad remove all makefiles from keyboard directories 2017-09-27 08:21:09 -10:00
mechmini Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
meira Updated copyright headers and peer review fixes 2017-12-09 00:05:35 -05:00
mf68 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
mf68_ble Magicforce68 now in bluetooth flavour (#2051) 2017-12-03 00:04:22 -05:00
minidox Add keymap for atreus and minidox (#2079) 2017-12-02 23:56:30 -05:00
mitosis Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
miuni32 remove all makefiles from keyboard directories 2017-09-27 08:21:09 -10:00
mt40 Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
nano Add nano switch pad 2017-11-01 20:02:52 -04:00
niu_mini Missing line break in NIU Mini readme (#1886) 2017-10-22 14:53:00 -10:00
nyquist Turn on prevent stuck modifiers for my keymaps. 2017-12-09 00:06:08 -05:00
obelus Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
org60 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
orthodox Updates to drashna keymaps and userspace (#2093) 2017-12-05 21:45:42 -05:00
pearl Modified default keymap to match ps2avrgb default 2017-12-02 23:55:09 -05:00
pegasushoof Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
phantom Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
planck some planck keymap shiftings and include proper-making 2017-12-10 00:40:19 -05:00
preonic Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
ps2avrGB Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
roadkit fix a typo 2017-11-02 17:36:15 -07:00
s60_x Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
s65_x Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
satan added addcninblue's layout (#2049) 2017-11-26 02:12:26 -05:00
sixkeyboard update keymaps to not be the canonical file 2017-10-15 16:18:45 -04:00
subatomic remove all makefiles from keyboard directories 2017-09-27 08:21:09 -10:00
sweet16 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
tada68 Added Iso(ish) layout for tada68. (#1924) 2017-10-29 15:22:07 -07:00
tiger_lily Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
tkc1800 Initial support for TKC1800 PCB (#2062) 2017-11-26 17:54:53 -05:00
tomato Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
tv44 Small documentation and keymap tweaks for my minivan layout (#1891) 2017-10-25 13:01:47 -10:00
uk78 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
v60_type_r Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
vision_division Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
viterbi Updates to drashna keymaps and userspace (#2093) 2017-12-05 21:45:42 -05:00
whitefox Enable tap dance and other features for Whitefox 2017-12-08 16:06:24 -05:00
xd60 Improved README of yuuki and added RGB commands (#1983) 2017-11-08 11:13:06 -05:00
xd75 F5 pin doesn't support PWM, so breathing isn't an option 2017-12-07 11:07:45 -05:00
ymd96 Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
readme.md Add 9key to keyboards readme 2017-08-24 21:29:10 -04:00

Included Keyboards

QMK runs on a diverse range of keyboards. Some of these keyboards are officially supported and see constant community contributions, while others are part of the repository for historical reasons.

Official QMK Keyboards

These keyboards are manufactured by the maintainers of QMK.

Ortholinear Keyboards - Jack Humbert

What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and killer tactile feel. These are available through olkb.com as well as through Massdrop from time to time, as easy to assemble kits.

  • Planck — A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine.
  • Preonic — Like the Planck, but bigger. 50%.
  • Atomic — Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine bigger. That is the Atomic. A 60% keyboard.

ErgoDox EZ - Erez Zukerman

Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. Available on ergodox-ez.com.

  • ErgoDox EZ — Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types.

Clueboard - Zach White

Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components, available on clueboard.co

  • Clueboard — The 66% custom keyboard.
  • Cluecard — A small board to help you hack on QMK.
  • Cluepad — A mechanical numpad with QMK superpowers.

Community-supported QMK Keyboards

These keyboards are part of the QMK repository, but their manufacturers are not official maintainers of the repository.

  • 9key — A 9-key minipad sold by Bishop Keyboards.
  • Alps64 — A 60% keyboard for Alps keyswitches.
  • AMJ60 — DIY/Assembled compact 60% keyboard.
  • Arrow Pad — A custom creation by IBNobody.
  • Atreus — Made by Technomancy.
  • Bantam44 — It is a 44-key 40% staggered keyboard.
  • Ergodox Infinity - Ergonomic Split Keyboard by Input Club.
  • GH60 — A 60% Geekhack community-driven project.
  • GON NerD — Korean custom 60% PCB
  • Happy Hacking Keyboard — The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
  • Infinity 60% - — Compact community keyboard by Input Club.
  • JD45 — Another Geekhack community project, designed by jdcarpe.
  • KBD75 — A 75% keyboard made by made by KBDFans.
  • KC60 — A programmable Chinese-made keyboard, lost in the mists of time.
  • Kinesis Advantage — Contoured ergonomic keyboard by Kinesis Computer Ergonomics.
  • KMAC — Korean custom keyboard.
  • The Kitten Paw — A replacement controller (2016 revision) for the Filco Majestouch by Bathroom Epiphanies.
  • Lets Split - Split ortholinear 40% keyboard.
  • Phantom — A tenkeyless kit by Teel, also from Geekhack.
  • Retro Refit — Another creation by IBNobody.
  • S60-x — DIY compact keyboard designed by VinnyCordeiro for Sentraq.
  • Satan — A GH60 variant.
  • SixKeyBoard — A 6-key keyboard made by TechKeys.
  • TheVan 44 — A 44-key staggered keybard by Evangs.
  • WhiteFox — A 65% keyboard designed as a partnership by matt3o, Massdrop and Input Club
  • Vision Division — Full Size / Split Linear Keyboard by IBNobody.
  • XD75 — 15x5 ortholinear keyboard by XIUDI.