qmk-firmware/keyboards
Erin Call 050c21d35f Bring dactyl/matrix.c in line with quantum/matrix.c (#2613)
* Use the new debounce algorithm in dactyl/matrix.c [#2065]

This incorporates the fixed/optimized debounce code added to
quantum/matrix.c in:

* 508eddf8ba
* 4c6960835c
* 32f88c0717
* f403028974
* a06115df19

* Fix the row/column swap in dactyl [#2065]

With a column-driven keyboard, reading from the mcp23081 returns a
column-state, which takes some extra work to translate into the
row-state used in the actual matrix. The ergodox_ez code sidestepped
that problem by calling rows "columns" and columns "rows." With this
change, the dactyl now calls rows "rows" and columns "columns."

* Cleanup: variable names, documentation [#2065]

* Support MATRIX_MASKED in dactyl/matrix.c [#2065]

* Only unselect one col in unselect_col [#2065]

Bonus: saves one i2c transaction per matrix_scan!

* Implement COL2ROW in dactyl/matrix.c [#2065]

* Fix a typo in dactyl/matrix.c

This entirely doesn't matter. The PORT values are set during
init_keyboard and never change. They're repeatedly set to the same
thing. These PORT lines shouldn't even exist, but since they do, they
should at least look right.

* Implement COL_PINS/ROW_PINS for dactyl [#2065]

* Rename "mcp23018" to "expander" [#2065]

I honestly don't know whether/how well this code works with other I/O
expanders, but at least in theory, it should be generic enough to work
with others. Given that, the variable names shouldn't refer to a
specific model of expander.

* Remove matrix_power_up from dactyl/matrix.c [#2065]

It's commented out in quantum/matrix.c, and the dactyl has no power
up/down behavior beyond being unplugged (which goes to matrix_init), so
there's no sense keeping it around.

* Only initialize expander_input_mask once [#2065]

...and rename input_mask to expander_input_mask, since now that it isn't
scoped to init_expander it isn't clear that it's only for the expander.
2018-04-27 14:47:41 -04:00
..
1up60rgb Add Generic Keymap for my boards (#2795) 2018-04-24 09:01:40 -07: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 Updated ACR60, Mechmini, ALU84 readme information and config.h descripters (#2231) 2018-01-05 11:37:22 -05:00
alf_x2 ALF X2 QMK Configurator Support (#2788) 2018-04-21 17:00:46 -07:00
alpha Formatting changes to Alpha readme.md (#2781) 2018-04-22 20:09:52 -07:00
alps64 QMK Configurator support for alps64 pcb (#2774) 2018-04-20 08:52:56 -07:00
alu84 Updated ACR60, Mechmini, ALU84 readme information and config.h descripters (#2231) 2018-01-05 11:37:22 -05:00
amj40 Added amj40 keymap (#2754) 2018-04-17 20:50:50 -07:00
amj60 adds default keymap for amj60 2017-10-15 16:17:47 -04:00
amj96 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
amjpad Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
atom47 Update maartenwut's keymaps (tada68, atom47) and add GH60 layout (#2751) 2018-04-16 15:15:28 -07:00
atomic Patched some keyboards that won't compile (#2453) 2018-03-09 13:31:42 -05:00
atreus update to Ergodox / Atreus Dvorak 42 key layouts (#2504) 2018-03-16 16:21:00 -04:00
atreus62 Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
bananasplit Talljoe's layout with common keymap. (#2764) 2018-04-21 10:48:30 -07:00
bantam44 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
bfake Add new bfake "FaceW" keymap (#2360) 2018-03-23 15:56:36 -07:00
bfo9000 Add BFO-9000 keyboard (#2807) 2018-04-25 10:47:13 -07:00
bigseries Implement magic 8-ball mode for big series switch (#2763) 2018-04-19 09:09:33 -07:00
bmini Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
ca66 Added support for ca66 2018-03-16 16:30:43 -04:00
chibios_test Fix command line options prefix. (#2790) 2018-04-22 14:19:45 -07:00
chimera_ergo Added Chimera LS and Chimera Ergo (#2335) 2018-02-16 12:03:53 -05:00
chimera_ls Added Chimera LS and Chimera Ergo (#2335) 2018-02-16 12:03:53 -05:00
chimera_ortho Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
chocopad Add Chocopad keyboard 2018-01-25 00:58:59 -05:00
christmas_tree Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
clueboard Keymap Fixes for 7U layout, RGB and Audio support (#2779) 2018-04-26 13:51:19 -07:00
contra Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
converter Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) 2018-04-19 09:28:55 -07:00
cospad Add COSPAD to QMK and add functions to read HSV (#2156) 2017-12-17 11:44:13 -05:00
crawlpad Fixed dead links (#2451) 2018-03-01 07:45:47 -08:00
cu24 Support upcoming caps_unlocked boards in QMK Configurator (#2738) 2018-04-12 13:03:50 -04:00
cu75 Cu75 iso fix (#2801) 2018-04-24 13:19:34 -07:00
daisy Added Daisy port (#2016) 2017-11-22 10:52:42 -05:00
deltasplit75 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
dichotemy Remove _quantum functions from custom matrix.c code 2018-02-06 12:25:30 -05:00
dilly Updated Levinson and Fourier keymaps (#2685) 2018-04-15 09:51:38 -07:00
diverge3 Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708) 2018-04-07 15:14:53 -04:00
dk60 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
do60 Add chiwi60 layout for the do60 2018-04-13 23:50:48 -04:00
dz60 DZ60: Add Caps Lock LED for default keymap (#2800) 2018-04-24 12:43:23 -07:00
e6v2 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
eagle_viper Fix QMK Configurator bug with rendering the Eagle layout (#2806) 2018-04-25 07:44:37 -07:00
eco Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
ergo42 Add Illustrator keymap layout for Ergo42 (#2658) 2018-04-15 09:54:11 -07:00
ergodone Add pretty layout to all ergodox clones (#2686) 2018-04-21 17:00:43 -04:00
ergodox_ez Syntax update (#2660) 2018-04-24 09:49:34 -07:00
ergodox_infinity Add pretty layout to all ergodox clones (#2686) 2018-04-21 17:00:43 -04:00
fc660c FC660C Configurator Support (#2817) 2018-04-26 20:31:05 -07:00
fc980c Fixed dead links (#2451) 2018-03-01 07:45:47 -08:00
felix Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
four_banger Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) 2018-04-19 09:28:55 -07:00
fourier Updated Levinson and Fourier keymaps (#2685) 2018-04-15 09:51:38 -07:00
frosty_flake avocado toast change (#2816) 2018-04-26 20:28:54 -07:00
gh60 Add gh60 chaser Layout (#2757) 2018-04-19 07:20:03 -07:00
gh80_3000 adds the gh80_3000 project (#2132) 2017-12-10 14:44:04 -05:00
gherkin flashing instructions, keymap changes 2018-02-23 13:14:22 -05:00
gonnerd M10-A, M65-A, GonNerd keymaps (#2418) 2018-02-28 16:44:27 -05:00
hadron Rename ONEHAND_ENABLE to SWAP_HANDS_ENABLE for consistency 2018-03-16 16:33:43 -04:00
handwired Bring dactyl/matrix.c in line with quantum/matrix.c (#2613) 2018-04-27 14:47:41 -04:00
helix Helix oled rgb compile sw (#2606) 2018-04-24 09:43:57 -07:00
hhkb Edited keymaps for eric/dz60 (#2793) 2018-04-24 09:27:33 -07:00
infinity60 Add a custom USB driver for ARM (#2750) 2018-04-15 20:42:53 -04:00
iris Update personal colemak Iris layout and deleted redundant folders (#2794) 2018-04-24 09:03:02 -07:00
jc65 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
jd40 Fixed dead links (#2451) 2018-03-01 07:45:47 -08:00
jd45 backlight breathing overhaul (#2187) 2018-01-01 17:47:51 -05:00
jj40 Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) 2018-04-19 09:28:55 -07:00
jj50 Added basic support for JJ50 (preonic-like based on atmega32A) (#2546) 2018-03-24 13:03:24 -04:00
jm60 Add a custom USB driver for ARM (#2750) 2018-04-15 20:42:53 -04:00
k_type Add a custom USB driver for ARM (#2750) 2018-04-15 20:42:53 -04:00
katana60 katana60: fix bootloader size to work with PCB 2018-01-28 12:13:21 -05:00
kbd66 Fixed keymap, added capslock led for maartenwut's kbd66 keymap (#2473) 2018-03-07 17:06:04 -05:00
kbd75 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
kc60 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
kinesis Add Carpalx keymap for Kinesis (#2771) 2018-04-20 09:13:14 -07:00
kitten_paw Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
kmac Fixed dead links (#2451) 2018-03-01 07:45:47 -08:00
knops Fixed various keymaps and the allocation of "key_combos" (#2526) 2018-03-16 16:20:09 -04:00
kona_classic Kona_classic: ANSI arrows keymap with locking caps lock support 2017-11-20 12:21:04 -05:00
laplace Add Laplace keyboard 2018-03-24 12:50:16 -04:00
launchpad Launchpad (#2767) 2018-04-20 08:51:34 -07:00
lets_split Update piemod keymap (#2786) 2018-04-26 07:51:58 -07:00
levinson Updated Levinson and Fourier keymaps (#2685) 2018-04-15 09:51:38 -07:00
lfkeyboards Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718) 2018-04-08 22:10:14 -04:00
lightsaver Remove _quantum functions from custom matrix.c code 2018-02-06 12:25:30 -05:00
m10a Add readme for "major" keyboards to eliminate more QMK Configurator errors (#2718) 2018-04-08 22:10:14 -04:00
maxipad remove all makefiles from keyboard directories 2017-09-27 08:21:09 -10:00
mechmini Fix mechmini2 ortho keymapping layout 2018-03-24 12:52:42 -04:00
meira Meira updates for bluetooth and audio (#2731) 2018-04-19 00:57:24 -04:00
meme Support for new keyboard: Meme (#2797) 2018-04-24 09:00:22 -07:00
mf68 QMK Configurator Support MF68 (#2815) 2018-04-26 20:28:22 -07:00
mf68_ble QMK Configurator Support MF68 (#2815) 2018-04-26 20:28:22 -07:00
minidox More Configurator Warning Fixes (#2716) 2018-04-07 23:32:14 -07:00
mitosis Enables unicode for Mitosis (#2668) 2018-04-04 09:17:38 -07:00
miuni32 Personal BEAKL9 based keymap (#2304) 2018-02-02 01:22:37 -05:00
mt40 Updates bootloader settings, adds file size check (#2029) 2017-11-27 23:08:21 -05:00
nano Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708) 2018-04-07 15:14:53 -04:00
niu_mini Add Staryu macropad support (#2768) 2018-04-20 09:14:40 -07:00
novelpad Add support for NovelPad/NumChoc by NovelKeys and Woodkeys 2018-04-11 18:11:42 -04:00
nyquist Changes to danielhklein nyquist config (#2783) 2018-04-24 09:25:20 -07:00
obelus Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
octagon Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
ok60 Add the OK60 keyboard (#2488) 2018-03-09 13:14:50 -05:00
omnikey_blackheart added omnikey_blackheart keyboard support (#2688) 2018-04-19 01:52:17 -04:00
org60 Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
orthodox Update to drashna keymaps and userspace (#2756) 2018-04-20 17:53:19 -07:00
paladin64 Support for the Paladin64 PCB (#2639) 2018-03-28 23:20:15 -04:00
pearl More QMK Configurator Support for Pearl (#2814) 2018-04-26 17:19:42 -07:00
pegasushoof Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
phantom Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
planck Change handling of adjust layer to make it more LT(...) friendly. (#1625) 2018-04-26 16:10:03 -04:00
preonic Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
prime_r Rooski15: Update Prime_R ReadMe & Keymap (#2228) 2018-01-05 11:37:53 -05:00
ps2avrGB Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) 2018-04-19 09:28:55 -07:00
rama Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) 2018-04-19 09:28:55 -07:00
roadkit Fixed dead links (#2451) 2018-03-01 07:45:47 -08:00
s60_x More Configurator Warning Fixes (#2716) 2018-04-07 23:32:14 -07:00
s65_x Fix some Configurator Warnings regarding LAYOUT vs KEYMAP (#2708) 2018-04-07 15:14:53 -04:00
satan Added GH60 Satan ISO layout with split right shift and split backspace (#2773) 2018-04-20 09:43:51 -07:00
scrabblepad ScrabblePad updates (#2809) 2018-04-26 07:30:05 -07:00
sixkeyboard update keymaps to not be the canonical file 2017-10-15 16:18:45 -04:00
speedo Add the Speedo keyboard 2018-04-07 12:56:21 -04:00
staryu Add Staryu macropad support (#2768) 2018-04-20 09:14:40 -07:00
subatomic remove all makefiles from keyboard directories 2017-09-27 08:21:09 -10:00
sweet16 Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) 2018-04-19 09:28:55 -07:00
tada68 Add personal Tada68 Keymap (#2633) 2018-04-21 13:37:26 -07:00
the_ruler The ruler (#2138) 2017-12-11 20:57:40 -05:00
tiger_lily Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
tkc1800 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
tomato Make arguments redo, subproject elimination (#1784) 2017-10-14 11:32:19 -10:00
tv44 Remove bootloader from info.jsons 2018-04-11 21:32:09 -07:00
uk78 Add underglow animation support to rask's UK78 (#2512) 2018-03-16 16:27:03 -04:00
unloved_bastard Initial support for The Unloved Bastard 2018-03-16 16:41:32 -04:00
ut47 Fix missed key assignment (#2803) 2018-04-24 19:37:05 -07:00
v60_type_r Add Generic Keymap for my boards (#2795) 2018-04-24 09:01:40 -07:00
vision_division backlight breathing overhaul (#2187) 2018-01-01 17:47:51 -05:00
viterbi Add Faux Clicking as subset of Audio feature (#2748) 2018-04-19 01:47:04 -04:00
whitefox Add a custom USB driver for ARM (#2750) 2018-04-15 20:42:53 -04:00
xd60 Updated personal keymaps, fixed Let's Split default keymap, updated JJ40 README (#2704) 2018-04-19 09:28:55 -07:00
xd75 Update personal colemak Iris layout and deleted redundant folders (#2794) 2018-04-24 09:03:02 -07:00
xmmx Adding XMMX (#2236) 2018-01-07 11:23:45 -05:00
ymd96 Added basic support for JJ50 (preonic-like based on atmega32A) (#2546) 2018-03-24 13:03:24 -04:00
ymdk_np21 Support for YMDK NP21 (#2316) 2018-01-28 15:58:03 -05:00
zen New keyboard added "Zen" (#2347) 2018-02-06 23:44:10 -05:00
readme.md Fixed dead links (#2451) 2018-03-01 07:45:47 -08: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.
  • JJ40 — ps2avrGB based ortholinear sold by KPrepublic
  • 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.
  • YMDK NP21 — ps2avrGB based number pad (numpad) sold by YMDK on Aliexpress.