Files
qmk_firmware/keyboards
Tomasz bla FortunaandTomasz bla Fortuna f771cb545f Asynchronous, robust serial protocol. (#39)
* bla personal ap2-c18 keymap.

* Bidirectional, asynchronous message-based communication with Shine.

- Requires a matching Shine version.
- Protocol is resiliant to loosing bytes during communication, chips won't lock
  waiting for bytes that aren't coming.
- Chips resynchronize in event of loosing a byte using a AA0D header.

Regressions:
- Key masking/locking doesn't work right now. (did it work before?)
- Not all user keymaps build against it.

* Clang-format + code to ease reducing speed of LED UART.

- Did clang-format --style=file -i on multiple files according to
  coding_conventions_c.md

- Added separate serial speed for IAP boot and Led communication, it's possible
  that reducing this to 9600 helped someone with faulty HW. With this code they
  can do it with simple replacing of a value.

* Main chip can set/clear foreground using a mask mechanism.

- Some preparations for selective colouring.

* Selective mask works - tested on capslock.

- Migrated personal keymaps to new status API.

* Clear the foreground colors to show profile when it's modified.

- Show example of achieving selective caps-lock painting + foreground painting
  for layers.
- annepro2LedMaskSetRow is implemented, but still requires testing.

* Implement the QMK side of led blinking to indicate the command was received.

- This stupidly blinks the key when user presses one of the bluetooth commands
to let the user know that the command was received and forwarded to the BT chip.

- TODO: Row/col key positions are hardcoded and not taken from the keymap.

* Reduce memory footprint.

Applying code review suggestions. Moved msgId to globals - preparing for
transmission without copying payload when no retries are necessary.

Added empty readme.md files - required by QMK lint.

Co-authored-by: Tomasz bla Fortuna <bla@thera.be>
2021-09-12 09:26:38 +02:00
..
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-19 11:13:00 -07:00
…
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-09 08:28:51 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-24 19:39:24 +10:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-24 17:18:25 +01:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-26 16:53:24 +01:00
2021-08-26 16:53:24 +01:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-19 16:53:20 +01:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-26 00:56:09 +01:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-08 23:17:46 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-26 16:53:24 +01:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00
2021-08-06 23:59:56 -07:00

Included Keyboards

QMK runs on a diverse range of keyboards. Some of these keyboards are well maintained 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.