qmk-firmware/keyboards
Dustin L. Howett b72a1aa3fe
Rewrite the Bathroom Epiphanies Frosty Flake matrix and LED handling (#8243)
* Keyboard: revamp frosty-flake leds

This commit transitions bpiphany/frosty_flake to led_update_{kb,user}
and rewrites the AVR bit twiddling logic to use the standard QMK GPIO
API.

* Keyboard: rewrite frosty_flake's matrix reader to be a lite custom matrix

This commit replaces frosty_flake's custom matrix and debounce logic
with a "lite" custom matrix. In addition to being somewhat clearer, this
allows a consumer of the flake board to choose their own debouncing
algorithm. The one closest to the implementation originally in use is
sym_g, but this opens us up to supporting eager_pk and eager_pr.

The original matrix code was 18 columns for 8 rows, but using a single
row read and unpacking the bits into individual columns. To simplify,
I've changed the key layout to be 8C 18R instead of 18C 8R: this lets us
use a single read directly into the matrix _and_ drop down to a uint8_t
instead of a uint32_t for matrix_row_t.

Since we're no longer implementing our own debouncing and row unpacking,
we save ~400 bytes on the final firmware image.

Fully tested against a CM Storm QFR hosting the flake -- this commit
message was written using the new matrix code.

Firmware Sizes (assuming stock configuration as of 42d6270f2)

Matrix+Debounce     Size (bytes)
---------------     ------------
original            17740
new + sym_g         17284
new + eager_pr      18106
new + eager_pk      18204

I expect that there are some scanning speed benefits as well.

* Keyboard: update frosty_flake's UNUSED_PINS

* Keyboard: Remove meaningless weak redefinitions from frosty

These are not necessary (and all of them already live somewhere in
Quantum).
2020-03-02 05:17:09 +00:00
..
1upkeyboards
2_milk
2key2crawl
4by3
6ball
7skb
8pack
9key
30wer
40percentclub
abstract/ellipse
acheron
acr60
adkb96
aeboards
ai03
akb
al1
alf
allison
allison_numpad
alpha
alps64
alu84
amj40
amj60
amj96
amjkeyboard/amj66
amjpad
angel17
angel64
ares
ash1800
ashpil/modelm_usbc
at101_blackheart
at_at/660m
atomic
atreus
atreus62
baguette
bantam44
bfake
bigseries
bigswitch
blackplum
blockey
bm16a
bm16s
bm43a
bm60rgb
boardwalk
boston_meetup
bpiphany Rewrite the Bathroom Epiphanies Frosty Flake matrix and LED handling (#8243) 2020-03-02 05:17:09 +00:00
bthlabs/geekpad
business_card
butterstick
c39
candybar
cannonkeys Get the direction right on the S75 encoder (#8287) 2020-03-01 21:30:01 +00:00
catch22
centromere
cheshire/curiosity
chidori
chimera_ergo
chimera_ls
chimera_ortho
choco60
christmas_tree
ckeys
claw44 Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
clueboard
cocoa40
comet46 Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
contra
converter
copenhagen_click/click_pad_v1
coseyfannitutti
cospad
crawlpad
crkbd Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
cu24
cu75
cutie_club/wraith
daisy
db/db63
dc01
deltasplit75
dichotomy
diverge3
divergetm2
dk60
do60
donutcables
doppelganger
doro67
dozen0
dp60
duck
dumbpad
dz60
dztech
eco
efreet
emptystring/NQG
ep
ergo42
ergodash
ergodone
ergodox_ez
ergodox_infinity
ergodox_stm32
ergoinu
ergosaurus
ergoslab
ergotaco
ergotravel
espectro
eve/meteor
evil80
exclusive
exent
facew
fc660c
fc980c
felix
fleuron
fluorite
flx/virgo
fortitude60
four_banger
foxlab/leaf60
fractal
freyr
ft/mars80
gami_studio/lex60
geekboards/tester
georgi
gergo Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
getta25
gh60
gh80_3000
gingham
gon
gray_studio
grid600
gskt00
hadron
halberd
handwired Add onekey keymap for testing reset to bootloader. (#8288) 2020-03-01 22:36:17 +00:00
hecomi
heliar/wm1_hotswap
helix Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
hhkb
hid_liber
hifumi
hineybush
honeycomb
hotdox
hs60
hub16
idb/idb_60
idobo
illuminati/is0
infinity60
ivy
j80
jae/j01
jc65
jd40
jd45
jj4x4
jj40
jj50
jm60
jnao
just60
k_type
kagamidget
katana60
kbdfans
kc60
kc60se
keebio
keycapsss
keyhive/maypad
kinesis
kingly_keys
kira75
kmac
kmini
knops
kona_classic
kudox
kudox_game
kv/revt
kyria
laptreus
launchpad
lazydesigners
leeku/finger65
lets_split
lets_split_eh
lfkeyboards
lily58 Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
m0lly
m10a
maartenwut
manta60
massdrop
matrix
maxipad
maxr1998
mc_76k
mechkeys/mk60
mechllama/g35
mechlovin
mechmini
mehkee96
meira
meishi
meishi2
melody96
meme
meson
miniaxe
minidox
mint60
mitosis
miuni32
model01
montsinger/rebound
moon
mt40
mt980
mxss
nafuda
naked48
naked60
naked64
namecard2x4
navi10
ncc1701kb
nek_type_a
newgame40
nightmare
niu_mini
nk65
nomu30
novelpad
noxary
numatreus
ogre
ok60
omnikey_blackheart
omnikeyish
orange75
org60
orthodox Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
otaku_split
paladin64
panc40
panc60
pancake
pdxkbc
pearl
peiorisboards/ixora
percent
phantom
pico
pinky
plaid
planck
playkbtw
preonic
primekb Add VIA support to Prime_M. Clean up all files (#8247) 2020-02-29 17:42:50 -08:00
projectkb/alice
puck
quantrik/kyuu
qwertyydox
rabbit/rabbit68
redox
redox_w
redscarf_i
redscarf_iiplus
retro_75
reviung34
reviung39
reviung41
rgbkb Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
runner3680
s7_elephant
scarletbandana
sck
scythe
sentraq
setta21
shiro
signum/3_0/elitec
silverbullet44
singa
sirius
sixkeyboard
smk60
snagpad
snampad
southpole
spacetime
speedo
standaside
staryu
stella
subatomic
suihankey
switchplate
sx60
tada68
tanuki
tartan
telophase
tetris
tg4x
tgr
the_ruler
thedogkeyboard
thevankeyboards
tkc1800
tmo50
toad
tokyo60
touchpad
tr60w
treadstone32
treadstone48 Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
treasure/type9
ua62
uk78
unikorn
ut472
uzu42 Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
v60_type_r
vinta
vision_division
vitamins_included
vn66
waldo
walletburner/neuron
westfoxtrot
wete
whitefox
wilba_tech
winkeyless
wsk
xbows
xd60
xd68
xd75
xd84
xd87
xd96
xd004
xelus/dawn60
xiaomi/mk02
xmmx
xw60
yatara/drink_me
yd60mq
yd68
ymd75
ymd96
ymdk
ymdk_np21
yosino58 Clean up includes for glcdfont headers (#7745) 2020-03-01 17:56:50 +11:00
yurei
z150_blackheart
zfrontier/big_switch
zinc
zj68
zlant
readme.md

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