qmk_firmware/keyboards
Art Ortenburger 43579a80a7 add support for Orthodox keyboard (#1436)
* Added orthodox

* Modified readme

* Modified readme

* Modified readme

* Updated makefile

* Fixed keymap issues

* Modified serial communications to allow for over 8 columns

* Fixed sizeof command

* Fixed some typing issues

* Testing issue #1191 (n-column split i2c slave)

Based on initial OrthoDox (serial) config by @reddragond and others,
this attempts to add TWI (I2C) support.
Relevant: <https://github.com/qmk/qmk_firmware/issues/1191>

- per @ahtn recommendation, using memcpy for moving slave matrix
  into slave sending buffer
- slave buffer has been enlarged using sizeof(matrix_row_t)
- note: i2c.h now includes matrix.h
- note: matrix.c includes <string.h>

* Added i2c keymap - right col still not working

* orthodox: re-added i2c keymap, based on serial

* orthodox / issue #1191: trying 9-bit serial

- orthodox serial protocol now sends 9 bits per row, instead of 16.
  Technically it's using MATRIX_COLS, so it might work generically.
- ROW_MASK is #defined in serial.c to truncate the checksums to prevent
  overflows causing false errors. This macro should be renamed if it's
  kept.

* Revert "Fixed sizeof command"

This reverts commit f62a5b9939d6a9c0e442ec403de00c14431a55f9.

Changes had been made to the lets_split serial driver for testing which
mirrored the multi-byte-row changes made to support the orthodox. As the
lets_split does not require these changes, and new improvements had
been added to the orthodox port only, this commit reverts them.

Because the new code could potentially reduce latency over the serial
transport, it may be desirable to re-add in the future, by backporting
the current working orthodox code.

* orthodox: default serial keymap improvements

- formatting has been improved
- a few keys have been shifted, mainly in Raise and Lower layers,
  to be more like the default Planck layout
- Now available: F12, Home, End, PgUp, PgDn, Media-Next, Media-Play

Still To Do:
- duplicate for TWI
- Alt modifier
- GUI modifier

* orthodox: failed attempt at 16b/row TWI

- duplicated updated serial keymap for "i2c"
- removed string.h/memcpy, instead
- hardcoded copying of six bytes per update
- still doesn't work; master reports interconnect errors on txled

* orthodox: adjusted default keymap

- this is applied to both 'serial' and 'i2c' keymaps
- Alt and GUI have been added, as they were missing
- comma and period persist across more layers; Home/PgUp and End/PgDn
  have been moved slightly to accommodate

* orthodox: revert TWI support to minimum to debug

- disabled ssd1306 and hardware locking in build configuration
- increased TWI buffer from 0x10 to 0x20 bytes
- decreased TWI clock from 400000 to 100000
- removed hardcoded TWI multi-byte sending/receiving

An 'i2c' build of this was found to work on a rev1 Orthodox, although
slave-side col9 was understandably not working. When testing-time
permits, features will be gradually re-enabled towards getting the full
matrix supported over TWI.

* orthodox: TWI (i2c) is working, kludge for col9

The TWI interconnect ("i2c" in directories and build config) is now
working for the Orthodox, including the slave half's column #9.
This is intended as an interim solution, as it's a kludge, not a fix.

Rather than a working multi-byte implementation, the two col9 keys'
bits are packed-into and unpacked-from the two unused bits in row1.
Furthermore, the TWI clock constant has been reduced to 100000 from
400000, as testing revealed the higher value just didn't work.
Testing also found that (with this kludge) increasing the TWI buffer
was not necessary.

This commit leaves many commented-out lines in matrix.c from previous
testing, which will be removed in a future commit once the
interconnects' multi-byte problems have been debugged more thoroughly.

* orthodox: updated readme.md

The readme for the Orthodox now includes a description of the keyboard,
allusions to its author and availability, a linked photo, and links to
the evolving build guide and the current keymap on KLE.
This update has been prepared with /u/Deductivemonkee's assistance.
2017-06-25 21:30:07 -04:00
..
alps64 Split keyboard makefiles into rules and Makefile 2016-08-20 03:56:08 +03:00
amj60 Addind Sample Maxed Out Keymap 2017-04-29 16:18:26 -07:00
amjpad Adding Right Layout 2017-04-22 22:34:14 -07:00
atomic updates olkb readmes #1362 2017-06-25 12:40:25 -04:00
atreus removes some images 2017-06-09 14:05:33 -04:00
atreus62 Atreus52- moved parens and braces to left hand. 2017-06-17 22:51:50 -04:00
bantam44 Update keyboard readme files with new makefile instructions 2016-08-20 03:56:48 +03:00
chibios_test Merge branch 'master' into fix_line_endings 2016-08-27 21:01:46 +03:00
clueboard Added HyperTab and Ctrl/Fn as well as Space cadet parens (#1390) 2017-06-14 07:20:43 -07:00
cluecard rgb light through midi 2016-11-17 17:42:14 -05:00
cluepad rgb light through midi 2016-11-17 17:42:14 -05:00
converter Fix spelling of "persistent" 2017-05-11 15:32:35 -04:00
dk60 - Updated copyright 2017-05-30 23:09:39 +02:00
ergodox Merge pull request #1427 from blakedietz/master 2017-06-25 10:29:24 -04:00
frosty_flake hmm? 2017-05-30 14:19:57 -04:00
gh60 Merge pull request #1331 from ariasuni/master 2017-06-22 08:40:59 -04:00
gherkin Initial commit for gherkin keyboard support. Compiles but untested. 2017-06-02 14:45:42 +01:00
gonnerd define missing KC_NO macro 2017-02-13 13:44:53 +01:00
handwired Updated frenchdev readme 2017-06-23 23:59:30 +02:00
hhkb Add keymaps for ergodox ez, hhkb and jd45 under user blakedietz 2017-06-24 22:46:07 -06:00
infinity60 Update lock led processing and remove debug msgs 2017-05-30 21:52:44 -07:00
jd40 rgb light through midi 2016-11-17 17:42:14 -05:00
jd45 Add keymaps for ergodox ez, hhkb and jd45 under user blakedietz 2017-06-24 22:46:07 -06:00
kbd75 KBD75 - Initial KBD75 port from qmkeyboard.cn source files 2017-06-19 22:59:17 -07:00
kc60 remove .hex, .PNG, .jpg 2017-06-11 22:16:42 -04:00
kinesis remove .hex, .PNG, .jpg 2017-06-11 22:16:42 -04:00
kitten_paw Fix warnings in kitten_paw/ickerwx keymap 2017-04-13 16:00:29 +03:00
kmac Unify KMAC code indentation 2017-06-17 20:06:28 +02:00
lets_split Remove the DIODE_DIRECTION defines from lets_split so we can close #1067 2017-06-24 17:08:43 -07:00
m10a m10a lowercase 2017-05-18 18:55:07 -04:00
maxipad having trouble with conflicts 2016-12-03 17:37:41 -05:00
mechmini due diligence, etc 2017-06-09 10:22:58 -04:00
mitosis Update readme.md 2017-04-19 22:39:44 +10:00
miuni32 [Miuni32] Rm accidentally committed file 2017-05-07 14:42:21 -07:00
nyquist removes some images 2017-06-09 14:05:33 -04:00
orthodox add support for Orthodox keyboard (#1436) 2017-06-25 21:30:07 -04:00
pegasushoof Fix undefined reference errors with avr-gcc 7.1 2017-05-27 00:25:35 +02:00
phantom Update Phantom readme 2017-06-23 12:07:18 +02:00
planck updates olkb readmes #1362 2017-06-25 12:40:25 -04:00
preonic updates olkb readmes #1362 2017-06-25 12:40:25 -04:00
ps2avrGB remove mechmini keymap from ps2avrGB 2017-06-09 10:25:20 -04:00
roadkit Fix spelling of "persistent" 2017-05-11 15:32:35 -04:00
s60_x Merge pull request #1387 from antelaurijssen/master 2017-06-12 20:47:35 -04:00
s65_x Use the new Quantum KC_GESC instead of custom code 2017-06-21 09:37:20 -04:00
satan remove .hex, .PNG, .jpg 2017-06-11 22:16:42 -04:00
sixkeyboard Split keyboard makefiles into rules and Makefile 2016-08-20 03:56:08 +03:00
subatomic/keymaps/default Fix spelling of "persistent" 2017-05-11 15:32:35 -04:00
tada68 Update readme and default layout for TADA68 2017-03-11 22:09:50 -08:00
tiger_lily Fix compile error 2017-05-07 18:00:06 -04:00
tv44 tv44: Add core layout based on the Core 47 2017-06-18 22:44:52 -07:00
vision_division Fix spelling of "persistent" 2017-05-11 15:32:35 -04:00
whitefox Added whitefox keymap 2017-06-13 16:01:28 -07:00
xd60 Merge pull request #1331 from ariasuni/master 2017-06-22 08:40:59 -04:00
readme.md KBD75 - Initial KBD75 port from qmkeyboard.cn source files 2017-06-19 22:59:17 -07: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.

  • 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.