qmk-firmware/keyboards
a-chol d4be07dad3 Hid joystick interface (#4226)
* add support for hid gamepad interface
add documentation for HID joystick
Add joystick_task to read analog axes values even when no key is pressed or release. update doc
Update docs/feature_joystick.md
Manage pin setup and read to maintain matrix scan after analog read

* Incorporates patches and changes to HID reporting

There are some patches provided by @a-chol incorporated on this commit,
and also some changes I made to the HID Report structure.

The most interesting is the one dealing with number of buttons: Linux
doesn't seem to care, but Windows requires the HID structure to be byte
aligned (that's in the spec). So if one declares 8/16/32... buttons they
should not have any issues, but this is what happens when you have 9
buttons:

```
 bits |0|1|2|3|4|5|6|7|
      |*|*|*|*|*|*|*|*| axis 0 (report size 8)
      |*|*|*|*|*|*|*|*| ...
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*|
      |*|*|*|*|*|*|*|*| axis 6
      |*|*|*|*|*|*|*|*| first 8 buttons (report size 1)
      |*| | | | | | | | last of 9 buttons, not aligned
```

So for that I added a conditonal that will add a number of reports with
size 1 to make sure it aligns to the next multiple of 8. Those reports
send dummy inputs that don't do anything aside from aligning the data.

Tested on Linux, Windows 10 and Street Fighter (where the joystick is
recognized as direct-input)

* Add save and restore of each pin used in reading joystick (AVR).
Allow output pin to be JS_VIRTUAL_AXIS if the axis is connected to Vcc
instead of an output pin from the MCU.

Fix joystick report id

Fix broken v-usb hid joystick interface. Make it more resilient to unusual settings (none multiple of eight button count, 0 buttons or 0 axes)

Correct adc reading for multiple axes. Piecewise range conversion for uncentered raw value range. Input, output and ground pin configuration per axis.

Documentation fixes

* Fix port addressing for joystick analog read

* The other required set of changes
As per the PR, the changes still holding it up.
Add onekey for testing.
Fix ARM builds.
Fix device descriptor when either axes or buttons is zero.
Add compile-time check for at least one axis or button.
Move definition to try to fix conflict.
PR review comments.
qmk cformat

* avoid float functions to compute range mapping for axis adc reading

* Remove V-USB support for now. Updated docs accordingly.

* Update tmk_core/protocol/lufa/lufa.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update tmk_core/protocol/usb_descriptor.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update tmk_core/protocol/usb_descriptor.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update tmk_core/protocol/usb_descriptor.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Add support for joystick adc reading for stm32 MCUs. Fix joystick hid report sending for chibios

* Fix HID joystick report sending for ChibiOS.
Add one analog axis to the onekey:joystick keymap.
Fix pin state save and restore during joystick analog read for STM32
MCUs.

* Update tmk_core/protocol/chibios/usb_main.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update tmk_core/protocol/lufa/lufa.c

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Add missing mcuconf.h and halconf.h to onekey:joystick keymap.
Add suggested fixes from PR.

* Switch saveState and restoreState signature to use pin_t type.
onekey:joystick : add a second axis, virtual and programmatically animated.

* Update docs/feature_joystick.md

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Update docs/feature_joystick.md

Co-Authored-By: Ryan <fauxpark@gmail.com>

* Add PR corrections

* Remove halconf.h and mcuconf.h from onekey keymaps

* Change ADC_PIN to A0

Co-authored-by: achol <allecooll@hotmail.com>
Co-authored-by: José Júnior <jose.junior@gmail.com>
Co-authored-by: a-chol <achol@notamail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-29 14:30:02 -07:00
..
1upkeyboards Super16 VIA support (#10076) 2020-08-18 13:10:43 -07:00
2key2crawl
4by3
4pplet [Keyboard] Fix inconsistent MATRIX_COLS: 4pplet/steezy60 (#9678) 2020-07-10 11:44:03 +10:00
6ball
7skb Added via support for 7sKB (#9799) 2020-07-26 22:42:36 +01:00
8pack
9key
10bleoledhub [Keyboard] 10 ble oled usbhub pad (#10095) 2020-08-24 11:55:24 -07:00
30wer
40percentclub Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
abacus Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
absinthe Remove more useless code (#9475) 2020-06-20 21:51:50 +01:00
abstract/ellipse Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
acheron [Keyboard] Add ArcticPCB pre-Alpha support (#8479) 2020-08-03 22:13:33 -07:00
acr60
adelheid Add via configuration for adelheid. (#9830) 2020-07-29 10:42:40 -07:00
adkb96
aeboards [Keyboard] AEBoards Constellation (#9972) 2020-08-17 23:12:55 -07:00
ai03 Fixed Soyuz LAYOUT_numpad_5x4 Preview on QMK Configurator (#10123) 2020-08-21 14:25:28 -07:00
ajisai74 [Keyboard] AJisai74 (#10021) 2020-08-19 18:50:43 -07:00
akb Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
akegata_denki/device_one [Keyboard] Add akegata denki device one (#9690) 2020-07-27 18:40:57 -07:00
al1
alf Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
allison Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
allison_numpad Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
alpha
alps64
alu84 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
amj40 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
amj60
amj96
amjkeyboard/amj66
amjpad
anavi/macropad8 [Keyboard] keyboards/anavi: Add ANAVI Macro Pad 8 (#9164) 2020-06-05 00:48:58 -07:00
angel17 Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
angel64 Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
aos/tkl Reduce peak LED brightness for AoS TKL (#9667) 2020-07-08 21:43:23 +01:00
aplx6 Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
arabica37 Fix Arabica37's default RGBLED NUM (#9797) 2020-07-27 02:15:49 -07:00
arch_36 [Keyboard] Add Arch-36 keyboard (#9688) 2020-08-06 12:08:20 -07:00
ares
arisu Arisu keymapping, and corresponding via keymap (#9560) 2020-07-02 16:09:23 +01:00
ash1800 Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
ash_xiix [Keyboard] added ASH-XIIX keyboard (#9833) 2020-08-06 01:03:27 -07:00
ashpil/modelm_usbc Bigger combo index (#9318) 2020-08-29 14:30:02 -07:00
at101_bh
at_at/660m
atomic
atreus [Keymap] update dvorak_42_key keymaps for atreus and ergodox_ez: add VSCode shortcuts (#10054) 2020-08-19 18:38:52 -07:00
atreus62 Minor keymap fix (#9534) 2020-06-24 22:57:51 -07:00
atxkb fix rgb mode selection and lighting increments for the 1894 (#9336) 2020-06-10 21:32:19 +01:00
aves65 Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
baguette Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
bakeneko80 Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
bantam44
barleycorn [Keyboard] Barleycorn (#10118) 2020-08-24 20:37:01 -07:00
basekeys/slice
bat43 Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
bear_face [Keyboard] add bear_face/v2 (#9642) 2020-07-27 22:42:32 -07:00
bfake
bigseries Fix error_log complaint about Big Series boards (#9510) 2020-06-23 09:40:00 +01:00
bigswitch Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
bioi/g60ble [Keyboard] Add g60ble (#8952) 2020-07-11 11:50:57 -07:00
blackplum
blockey
bm16a Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
bm16s
bm40hsrgb [Keyboard] Update bm40hsrgb with RGB Matrix support (#10044) 2020-08-17 23:39:17 -07:00
bm43a Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
bm60rgb Added VIA keymap for bm60rgb (#9897) 2020-08-06 01:10:52 -07:00
bm60rgb_iso [Keyboard] BM60 RGB ISO (#9975) 2020-08-17 23:28:47 -07:00
boardsource add VIA keymap for boardsource/3x4 (#10043) 2020-08-18 14:36:46 -07:00
boardwalk Add more missing info.json layouts (#9595) 2020-06-30 17:53:24 +01:00
boston_meetup
botanicalkeyboards/fm2u Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
bpiphany
bthlabs/geekpad Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
business_card Remove HD44780 References, Part 1 (#9052) 2020-07-27 06:11:16 +10:00
butterstick
c39
candybar
cannonkeys Update Ortho60 VIA keymap (#10130) 2020-08-24 07:49:25 -07:00
catch22
centromere [Keymap] add mini_bom chorded keymap (#9916) 2020-08-07 10:26:02 -07:00
chavdai40 [keyboard] Add chavdai40 keyboard (#9820) 2020-08-07 11:27:20 -07:00
cheshire/curiosity
chidori Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
chili [Keyboard] Add support for YDKB Chili (#9583) 2020-07-08 06:25:30 -07:00
chimera_ergo
chimera_ls
chimera_ortho
chimera_ortho_plus Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
choc_taro Changed the VID/PID for choc_taro keyboards. (#9800) 2020-07-27 02:37:00 -07:00
choco60 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
christmas_tree
ckeys Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
claw44 Remove inclusion of adafruit_ble.h from ssd1306.c (#9355) 2020-08-29 14:30:02 -07:00
clawsome Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
clueboard Fix error_log complaint about clueboard/66_hotswap/gen1 layout macro (#9400) 2020-06-17 00:30:54 -07:00
cocoa40 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
comet46 Remove inclusion of adafruit_ble.h from ssd1306.c (#9355) 2020-08-29 14:30:02 -07:00
contra
converter Update features to use Custom Tapping Term when appropriate (#6259) 2020-08-29 14:30:02 -07:00
copenhagen_click/click_pad_v1 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
coseyfannitutti Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
cospad Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
craftwalk Update default layout for craftwalk (#9888) 2020-08-06 10:18:16 -07:00
crawlpad
crkbd Remove inclusion of adafruit_ble.h from ssd1306.c (#9355) 2020-08-29 14:30:02 -07:00
cu24
cu75
cu80 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
cutie_club/wraith Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
daisy Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
db/db63
dc01 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
deltasplit75 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
dichotomy
diverge3
divergetm2
dk60
dm9records Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
dmqdesign/spin Keymap Updates for DMQ Design SPIN, Boardsource 4x12, and Gingham (#9911) 2020-08-17 01:32:07 -07:00
do60 [Keyboard] VIA Support: DO60 (#9622) 2020-07-23 20:17:38 -07:00
donutcables
doppelganger Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
doro67 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
dozen0 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
dp60 [Keyboard] Updated VIA Support for DP60 (#9508) 2020-07-04 19:20:22 -07:00
drakon [Keyboard] Drakon (#10071) 2020-08-22 18:24:09 -07:00
duck Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
dumbo [Keyboard] Dumbo (#9656) 2020-08-08 11:24:10 -07:00
dumbpad Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
dz60 [Keymap] chrisae9 dz60 updates (#10098) 2020-08-23 23:13:11 -07:00
dztech [Keymap] DZ60RGB - Add personal keymap (#9989) 2020-08-12 17:28:37 -07:00
e88 format code according to conventions [skip ci] 2020-08-25 09:47:03 +00:00
eco
efreet Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
emptystring/NQG
eniigmakeyboards Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
ep Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
ergo42 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
ergodash
ergodone
ergodox_ez [Keymap] update dvorak_42_key keymaps for atreus and ergodox_ez: add VSCode shortcuts (#10054) 2020-08-19 18:38:52 -07:00
ergodox_infinity Update features to use Custom Tapping Term when appropriate (#6259) 2020-08-29 14:30:02 -07:00
ergodox_stm32 Fix 'does not have a readme.md' warnings (#9294) 2020-06-04 02:07:37 -07:00
ergosaurus Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
ergoslab
ergotaco
ergotravel
ericrlau/numdiscipline Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
espectro
eve/meteor
evil80
exclusive Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
exent
facew
fallacy [Keyboard] Fallacy (#9499) 2020-06-29 13:52:17 -07:00
fc660c Add Via support for Hasu FC660C controller (#9563) 2020-06-29 19:58:15 +01:00
fc980c
felix Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
fleuron
fluorite Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
flx Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
for_science [Keyboard] For Science (#9607) 2020-08-26 09:55:18 -07:00
fortitude60 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
four_banger
foxlab Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
fractal
freyr Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
ft/mars80
function96 function96 keyboard added (#10024) 2020-08-18 18:25:43 +10:00
funky40 Remove HD44780 References, Part 2 (#9918) 2020-08-07 02:06:14 -07:00
gami_studio/lex60 Gami Studio Lex60: Configurator Layout support (#7726) 2020-06-09 19:22:33 -07:00
gboards Bigger combo index (#9318) 2020-08-29 14:30:02 -07:00
geekboards/tester
generic_panda/panda65_01 [Keyboard] generic_panda/panda65_01 (#10006) 2020-08-18 14:28:25 -07:00
georgi
gergo
getta25
gh60 Add more missing info.json layouts (#9595) 2020-06-30 17:53:24 +01:00
gh80_3000 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
ghs/rar Add indicator LEDs for GHS.RAR (#10028) 2020-08-14 14:56:27 +01:00
gingham Keymap Updates for DMQ Design SPIN, Boardsource 4x12, and Gingham (#9911) 2020-08-17 01:32:07 -07:00
gon
gowla [Keyboard] Gowla Macro Board (#9643) 2020-07-04 11:51:42 +01:00
gray_studio Add more missing info.json layouts (#9595) 2020-06-30 17:53:24 +01:00
grid600
gskt00
hadron
halberd
handwired Hid joystick interface (#4226) 2020-08-29 14:30:02 -07:00
hardlineworks/otd_plus [Keyboard] Add otd_plus keyboard (#9726) 2020-07-30 21:23:06 -07:00
hecomi
heliar/wm1_hotswap
helix Remove inclusion of adafruit_ble.h from ssd1306.c (#9355) 2020-08-29 14:30:02 -07:00
hhkb [keymap] Fixed an issue that long pressed alt key does not work on PSN_FN layer. (#10039) 2020-08-15 13:54:52 +01:00
hhkb_lite_2 [Keyboard] HHKB Lite 2 (#9188) 2020-08-18 00:06:19 -07:00
hid_liber HID Liberation Device Refactor and Configurator layout support (#9394) 2020-06-15 03:11:19 -07:00
hifumi
hineybush add num lock indicator functionality to hineybush/h10 (#10100) 2020-08-24 14:55:49 -07:00
holyswitch/southpaw75 [Keyboard] HolySwitch Co Southpaw75 (#10011) 2020-08-19 18:49:31 -07:00
honeycomb
hotdox re-added mouse and media keys plus slight changes (#9515) 2020-06-30 12:23:31 +01:00
hs60 [Keyboard] Add akegata denki device one (#9690) 2020-07-27 18:40:57 -07:00
hub16 [keymap] Add VIA support for Hub16 (#9638) 2020-07-17 13:35:44 +01:00
id80 Fix IDOBAO ID80 board configurations. (#9796) 2020-08-22 01:12:19 -07:00
idb/idb_60
idobo
illuminati/is0
infinity60 Revert "Add Kiibohd bootloader type to bootloader.mk (#9908)" (#10126) 2020-08-21 15:42:28 -07:00
ivy
j80
jae/j01
jc65
jd40 Add JD40 keymap for myoung34 (#9545) 2020-06-27 20:36:08 +01:00
jd45
jian Add jian/keymaps/via/config.h (#9948) 2020-08-13 00:05:02 +10:00
jiran Add info.json for Jiran keyboard (#9857) 2020-07-31 12:59:32 +10:00
jisplit89 [Update]JISplite89 Readme and LED nums (#9554) 2020-06-27 20:33:02 +01:00
jj4x4
jj40 Create ajp10304 userspace and ortho_4x12 layout. (#9304) 2020-07-09 20:18:51 +01:00
jj50 [Keymap] yoonbae81 keymap for JJ50 (#10052) 2020-08-17 22:03:55 -07:00
jm60
jnao
just60
k_type Revert "Add Kiibohd bootloader type to bootloader.mk (#9908)" (#10126) 2020-08-21 15:42:28 -07:00
kabedon [Keyboard] Add kabedon keyboards (#9929) 2020-08-07 11:12:14 -07:00
kagamidget
katana60 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
kb_elmo [Keyboard] add kb-elmo boards (#9898) 2020-08-06 20:47:00 -07:00
kbdclack/kaishi65
kbdfans kbd67/mkiirgb - allow disabling rgb matrix (#10147) 2020-08-26 01:09:45 -07:00
kc60 Add VIA support to KC60 (#9351) 2020-06-10 17:34:18 +01:00
kc60se
keebio Update keymap for Keebio/iris4/rev4 (#10062) 2020-08-19 09:13:55 +10:00
keebwerk/nano_slider
keebzdotnet/wazowski Wazowski fixed keymap placement (#9408) 2020-06-23 10:07:15 +01:00
keybage/radpad [Keyboard] Add Keybage folder for RadPad (#9745) 2020-07-26 22:32:04 +01:00
keyboardio
keycapsss [Keyboard] add encoder support to PlaidPad default mappings (#9396) 2020-07-23 19:42:56 -07:00
keyhive/maypad Add VIA Functionality for Keyhive Maypad (#9654) 2020-07-08 17:20:24 +01:00
kinesis [Keyboard] Kinesis + Pro Micro (#9944) 2020-08-16 18:37:42 -07:00
kingly_keys Remove more useless code (#9475) 2020-06-20 21:51:50 +01:00
kira75
kira80
kiwikeebs [Keyboard] KiwiKeebs MacroBoard v1.0 (#10080) 2020-08-24 20:36:05 -07:00
kmac
kmini
knops Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
kona_classic Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
kudox [Keyboard] Add kudox via compatibility (#9875) 2020-08-06 15:32:32 -07:00
kudox_game [Keyboard] Add kudox via compatibility (#9875) 2020-08-06 15:32:32 -07:00
kv/revt Add missing info.jsons for a few boards (#9549) 2020-06-28 11:56:50 +01:00
kyria [Keymap] update kejadlen keymaps (#9954) 2020-08-18 19:21:50 -07:00
laptreus
latinpad latinpad ADD BOOTMAGIC_ENABLE = lite (#10056) 2020-08-17 21:36:16 -07:00
lattice60
launchpad
lazydesigners [Keyboard] Add support for keyboard 'Bolt' (#10046) 2020-08-18 19:29:09 -07:00
le_chiffre
leeku/finger65
lets_split [Keymap] Adding Custom Keymap for Let's Split (#9423) 2020-08-05 15:11:35 -07:00
lets_split_eh Updating comment diagram to match code in lets_split_eh/doxish_dvorak (#9785) 2020-07-23 14:18:21 +10:00
lfkeyboards
lily58 Update Lily58 Keymaps and VendorID (#9979) 2020-08-24 09:08:35 -07:00
m0lly M0lly: add support for VIA (#9535) 2020-06-25 22:02:27 +01:00
m10a
maartenwut 60_ansi_arrows Community Layout; mrsendyyk keymaps for dz60 and maartenwut/eon65 (#9993) 2020-08-19 11:16:10 -07:00
manta60
massdrop Keymap update - massdrop/ctrl/responsive_pattern (#8730) 2020-07-26 09:45:35 +10:00
matrix [Keyboard] added matrix 8xv2.0 additional (#9470) 2020-08-22 13:45:06 -07:00
maxipad
maxr1998 Bigger combo index (#9318) 2020-08-29 14:30:02 -07:00
mc_76k
mechkeys/mk60
mechllama/g35
mechlovin Refactor Adelais PCB (#10069) 2020-08-18 18:13:16 -07:00
mechmini
mehkee96
meira
meishi
meishi2 [Keymap] add keymap for meishi2 (#9270) 2020-06-05 01:49:16 -07:00
melody96
meme
meson
metamechs/timberwolf Timber Wolf - updated via keymap, reduced eeprom writing from backlight code (#9876) 2020-07-31 00:52:54 +10:00
miller/gm862
miniaxe split_3x5_3 layout support (#9624) 2020-08-06 10:36:26 -07:00
minidox Bigger combo index (#9318) 2020-08-29 14:30:02 -07:00
mint60
mitosis
miuni32 [Keymap] add miuni32:cassdelacruzmunoz (#10108) 2020-08-24 16:56:27 -07:00
mixi Updates on Mixi default keymaps and fixes on configuration (#9467) 2020-06-21 22:59:43 +01:00
montsinger add default Rebound lighting settings (#9740) 2020-07-17 06:20:02 +10:00
moon
moonlander [Keyboard] Add ZSA Moonlander (#9853) 2020-08-22 07:44:42 -07:00
mountainblocks/mb17
mschwingen/modelm [Keyboard] add support for ModelM USB board (#9846) 2020-08-22 16:02:16 -07:00
mt40 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
mt980
murcielago Murcielago: improve default keymap (#9363) 2020-06-11 04:45:53 -07:00
mxss
nafuda
naked48
naked60
naked64
namecard2x4
navi10
ncc1701kb
nckiibs [Keyboard] Add Flatbread60, Vaneela, and VaneelaEx by nckiibs (#9817) 2020-08-09 07:50:48 -07:00
nebula12 [Keyboard] Nebula12 keyboard (#9397) 2020-06-17 22:16:26 -07:00
nebula65 Nebula65 (#9368) 2020-06-16 14:02:01 -07:00
nek_type_a
nemui [Keyboard] Nemui (#10020) 2020-08-22 12:40:55 -07:00
newgame40
nightly_boards Added a via keymap folder for n87 (#9885) 2020-08-06 15:41:15 -07:00
nightmare Added VIA support to nightmare (#9672) 2020-07-08 21:47:35 +01:00
niu_mini
nk65
nk87 [Keyboard] NK87 (#9965) 2020-08-18 17:56:40 -07:00
nomu30 Update Nomu30 keyboard (#9599) 2020-07-09 20:21:22 +01:00
novelpad
noxary Add VIA support to Noxary 268 (#9449) 2020-06-24 11:34:55 -07:00
numatreus
oddball
ogre Add missing info.jsons for a few boards (#9549) 2020-06-28 11:56:50 +01:00
ok60
omnikey_bh Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
omnikeyish
orange75
org60
ortho5by12 [Keyboard] Add ortho5by12 keyboard (#9141) 2020-06-04 23:55:39 -07:00
orthodox
otaku_split
pabile
paladin64 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
palette1202
panc40
panc60
pandora [Keyboard] Add Pandora keyboard (#9592) 2020-07-23 20:01:39 -07:00
pdxkbc
pearl
peiorisboards/ixora Initial work for consolidation of ChibiOS platform files (#8327) 2020-08-29 14:30:02 -07:00
percent VIA Support: Skog Lite (#9686) 2020-07-17 15:41:30 +01:00
phantom
pico
pimentoso/paddino02
pinky Pinky4: add via support (#9711) 2020-07-25 09:42:50 -07:00
pistachio [Keyboard] Pistachio (#10003) 2020-08-17 23:46:56 -07:00
planck Update features to use Custom Tapping Term when appropriate (#6259) 2020-08-29 14:30:02 -07:00
playkbtw
pom_keyboards/tnln95 Fix configuration data for keyboard pom_keyboards/tnln95 (#9904) 2020-08-06 12:19:09 -07:00
preonic [Keyboard] Update preonic/Kjwon15 layout (#9718) 2020-07-15 18:49:28 +10:00
primekb Keymap addition and updates (Prime_e, ProjectKB PCB, WT60-D) (#9701) 2020-07-17 13:16:09 +01:00
projectkb Keymap addition and updates (Prime_e, ProjectKB PCB, WT60-D) (#9701) 2020-07-17 13:16:09 +01:00
puck
punk75 Add keyboard Punk75 (#9731) 2020-07-21 22:45:21 +01:00
qaz QAZ Keyboard (#9714) 2020-07-27 18:10:40 -04:00
quad_h/lb75
quantrik/kyuu
qwertyydox
rabbit/rabbit68
rabbit_capture_plan FIX rabbit_capture_plan info.json (#10139) 2020-08-23 00:27:01 -07:00
ramonimbao Fix missing column for Herringbone (#9679) 2020-07-10 22:58:41 +01:00
rart Add via support for rart75 (#9746) 2020-07-21 22:31:16 +01:00
redox Redox: sync RGB on left and right sides (#10022) 2020-08-17 03:16:52 -07:00
redox_w
redscarf_i
redscarf_iiplus
retro_75
reversestudio/decadepad
reviung34
reviung39 Update reviung39 PRODUCT_ID (#10001) 2020-08-21 11:10:05 +10:00
reviung41
reviung61 [Keyboard] Fixed readme.md for reviungs (#9838) 2020-08-03 23:23:24 -07:00
rgbkb
rotr Rotr - Updated README and default keymap (#9598) 2020-07-04 14:48:37 +10:00
runner3680
s7_elephant [Keyboard] Add S7 Elephant Rev2 Support (#9398) 2020-06-13 23:45:47 -07:00
satt/vision [Keyboard] Vision keyboard by SatT (#9768) 2020-08-19 11:18:52 -07:00
scarletbandana
sck
scythe
sentraq
setta21
shambles
shiro
sidderskb/majbritt
signum/3_0/elitec
silverbullet44
singa [Keymap] Add via keymap for singa (#10050) 2020-08-17 21:26:42 -07:00
sirius Fix info.json for Uni660 (#9489) 2020-06-22 09:49:47 +01:00
sixkeyboard
smk60 Add more missing info.json layouts (#9595) 2020-06-30 17:53:24 +01:00
snagpad
snampad
sofle
southpaw75 [Keyboard] Southpaw75 (#9844) 2020-08-16 18:42:26 -07:00
southpole
spaceman Added Via keymap to Spaceman 2% Milk (#9484) 2020-07-29 15:15:53 -07:00
spacetime
speedo
splitish
splitreus62
squiggle Fixing squiggle's layouts in the config.qmk.fm (#10019) 2020-08-13 23:14:19 +01:00
standaside
staryu
stella
stoutgat [Keyboard] Add new "stoutgat" keyboard (#9837) 2020-08-06 15:18:34 -07:00
subatomic
suihankey split_3x5_3 layout support (#9624) 2020-08-06 10:36:26 -07:00
switchplate
sx60 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
tada68 [Keymap] userspace and keymap for rupa (#9786) 2020-08-20 17:07:09 -07:00
tanuki
telophase
tenki
tetris
tg4x
tgr
the_royal Fixing the PRODUCT_ID to match the liminal.json on VIA repo (#9232) 2020-06-01 17:23:25 -07:00
the_ruler
thedogkeyboard
themadnoodle [keyboard] Add two new The Mad Noodle Keypads (#8934) 2020-06-04 00:25:59 +01:00
thevankeyboards Changes to thevankeyboards/minivan:king keymap (#10032) 2020-08-18 18:18:32 -07:00
tkc [Keyboard] Initial support for TKC GodSpeed75 (#9723) 2020-07-27 19:34:33 -07:00
tkc1800
tmo50
toad Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
tokyo60
touchpad
tr60w Add missing info.jsons for a few boards (#9549) 2020-06-28 11:56:50 +01:00
treadstone32
treadstone48
treasure/type9
ua62
uk78 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
underscore33 Fix Configurator data: underscore33/rev1 2020-08-25 17:13:06 -07:00
unikorn
uranuma
ut472 Added via support for ut472 (#9757) 2020-07-25 02:41:58 -07:00
uzu42
v60_type_r
vinta Initial work for consolidation of ChibiOS platform files (#8327) 2020-08-29 14:30:02 -07:00
vision_division
vitamins_included
vn66
waldo VIA Support: Waldo 60 (#9151) 2020-06-03 01:07:18 +01:00
wallaby
walletburner/neuron
westfoxtrot Add Configurator layout support for westfoxtrot/prophet (#9428) 2020-06-17 20:47:25 -07:00
whale/sk [Keyboard] Add Whale's Split Keyboard(ver.3) (#9859) 2020-08-06 22:47:59 -07:00
wheatfield Blocked65: add support for VIA Configurator (#9938) 2020-08-07 03:59:41 -07:00
whitefox Revert "Add Kiibohd bootloader type to bootloader.mk (#9908)" (#10126) 2020-08-21 15:42:28 -07:00
wilba_tech [Keyboard] NK87 (#9965) 2020-08-18 17:56:40 -07:00
winkeyless
wolfmarkclub/wm1
wsk
x16 [keyboard] Add x16 (#9709) 2020-07-17 18:46:05 +01:00
xbows
xd60 [Keymap] xd60:shura30 (#10089) 2020-08-19 12:30:00 -07:00
xd68 Add VIA support on XiuDi (XD) keyboards (#8829) 2020-06-30 18:27:24 +01:00
xd75 Bigger combo index (#9318) 2020-08-29 14:30:02 -07:00
xd84 Add VIA support on XiuDi (XD) keyboards (#8829) 2020-06-30 18:27:24 +01:00
xd87 [Keyboard] XD87 Caps Lock LED refactor (#9585) 2020-07-04 20:31:07 -07:00
xd96 Add VIA support on XiuDi (XD) keyboards (#8829) 2020-06-30 18:27:24 +01:00
xd002 [Keymap] Add dual layer keymap for xd002 macropad (#9222) 2020-06-10 14:33:26 -07:00
xd004 Add VIA support on XiuDi (XD) keyboards (#8829) 2020-06-30 18:27:24 +01:00
xelus [Keyboard] add Xelus Valor (#10079) 2020-08-18 20:20:22 -07:00
xiaomi/mk02 Add missing info.jsons for a few boards (#9549) 2020-06-28 11:56:50 +01:00
xmmx Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
xw60
yatara/drink_me
yd60mq Add layout macros to YD60MQ (#9653) 2020-07-08 17:18:50 +01:00
yd68
ymd75 YMD75: move MCU/Bootloader rules to revision level (#9452) 2020-06-18 00:15:22 -07:00
ymd96
ymdk [Keyboard] Added ymdk split64 based on walston's work (#9183) 2020-06-18 03:01:22 -07:00
ymdk_np21
yncognito/batpad format code according to conventions [skip ci] 2020-06-13 18:51:08 +00:00
yosino58 Remove inclusion of adafruit_ble.h from ssd1306.c (#9355) 2020-08-29 14:30:02 -07:00
yurei
yushakobo/quick7
z150_bh
zfrontier/big_switch Add missing info.jsons for a few boards (#9549) 2020-06-28 11:56:50 +01:00
zinc
zj68
zlant
ztboards [Keyboard] Re-initial commit of ztboards (#9869) 2020-08-06 20:20:11 -07:00
zvecr [Keyboard] Add zvecr/zv48 (#9227) 2020-06-03 00:49:52 +01:00
readme.md [Keyboard] Refactor JJ50 keyboard mapping to current standard (#9415) 2020-06-28 18:45:16 +01: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

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.

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.

ErgoDox EZ and Planck EZ - ZSA Technology Labs

ZSA Technology Labs maintains its own fork of QMK which feeds its configurator, for stability and legal purposes. The ZSA boards are:

  • ErgoDox EZ — A powerful split mechanical keyboard.
  • Planck EZ — A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine, which ships fully assembled with a two-year warranty.

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.
  • DataHand — DataHand keyboard converted to use a Teensy board.
  • 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
  • JJ50 — A compact 50% (5x12) ortholinear keyboard 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.
  • XD004 — 1x4 macro keyboard sold by KPrepublic.
  • XD75 — 15x5 ortholinear keyboard by XIUDI.
  • YMDK NP21 — ps2avrGB based number pad (numpad) sold by YMDK on Aliexpress.