aboutsummaryrefslogtreecommitdiffstats
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/1upkeyboards/1up60hse/config.h4
-rw-r--r--keyboards/1upkeyboards/1up60hse/keymaps/via/keymap.c91
-rw-r--r--keyboards/1upkeyboards/1up60hse/keymaps/via/readme.md1
-rw-r--r--keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk3
-rw-r--r--keyboards/1upkeyboards/1up60hse/rules.mk12
-rw-r--r--keyboards/1upkeyboards/1up60hte/config.h4
-rw-r--r--keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c47
-rw-r--r--keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk2
-rw-r--r--keyboards/1upkeyboards/1up60hte/rules.mk9
-rw-r--r--keyboards/1upkeyboards/1up60rgb/config.h4
-rw-r--r--keyboards/1upkeyboards/1up60rgb/keymaps/via/keymap.c34
-rw-r--r--keyboards/1upkeyboards/1up60rgb/keymaps/via/rules.mk2
-rw-r--r--keyboards/1upkeyboards/1up60rgb/rules.mk8
-rw-r--r--keyboards/1upkeyboards/super16/rules.mk12
-rw-r--r--keyboards/2_milk/rules.mk8
-rw-r--r--keyboards/2key2crawl/rules.mk8
-rw-r--r--keyboards/30wer/rules.mk8
-rw-r--r--keyboards/40percentclub/25/rules.mk12
-rw-r--r--keyboards/40percentclub/4x4/rules.mk12
-rw-r--r--keyboards/40percentclub/5x5/rules.mk12
-rw-r--r--keyboards/40percentclub/6lit/rules.mk12
-rw-r--r--keyboards/40percentclub/foobar/rules.mk12
-rw-r--r--keyboards/40percentclub/gherkin/rules.mk8
-rw-r--r--keyboards/40percentclub/half_n_half/rules.mk12
-rw-r--r--keyboards/40percentclub/i75/rules.mk12
-rw-r--r--keyboards/40percentclub/luddite/config.h2
-rw-r--r--keyboards/40percentclub/luddite/rules.mk8
-rw-r--r--keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c2
-rw-r--r--keyboards/40percentclub/mf68/rules.mk8
-rw-r--r--keyboards/40percentclub/nano/config.h3
-rw-r--r--keyboards/40percentclub/nano/rules.mk8
-rw-r--r--keyboards/40percentclub/nein/rules.mk12
-rw-r--r--keyboards/40percentclub/nori/rules.mk12
-rw-r--r--keyboards/40percentclub/tomato/rules.mk8
-rw-r--r--keyboards/40percentclub/ut47/rules.mk10
-rw-r--r--keyboards/6ball/rules.mk8
-rw-r--r--keyboards/7skb/rev1/config.h2
-rw-r--r--keyboards/8pack/rules.mk8
-rw-r--r--keyboards/9key/rules.mk8
-rw-r--r--keyboards/abstract/ellipse/rev1/config.h2
-rw-r--r--keyboards/abstract/ellipse/rev1/rules.mk12
-rw-r--r--keyboards/acr60/rules.mk8
-rw-r--r--keyboards/adkb96/rev1/config.h2
-rw-r--r--keyboards/adkb96/rules.mk8
-rw-r--r--keyboards/aeboards/aegis/rules.mk10
-rw-r--r--keyboards/aeboards/ext65/rules.mk10
-rw-r--r--keyboards/ai03/lunar/rules.mk12
-rw-r--r--keyboards/ai03/orbit/config.h2
-rw-r--r--keyboards/ai03/orbit/rules.mk12
-rw-r--r--keyboards/ai03/quasar/rules.mk12
-rw-r--r--keyboards/ai03/soyuz/rules.mk12
-rw-r--r--keyboards/akb/eb46/rules.mk12
-rw-r--r--keyboards/akb/raine/keymaps/mehadviceguy/keymap.c75
-rw-r--r--keyboards/akb/raine/keymaps/mehadviceguy/readme.md68
-rw-r--r--keyboards/akb/raine/rules.mk12
-rw-r--r--keyboards/al1/rules.mk10
-rw-r--r--keyboards/alf/dc60/rules.mk12
-rw-r--r--keyboards/alf/x11/rules.mk12
-rw-r--r--keyboards/alf/x2/rules.mk8
-rwxr-xr-xkeyboards/alpha/rules.mk8
-rw-r--r--keyboards/alps64/config.h2
-rw-r--r--keyboards/alps64/rules.mk8
-rwxr-xr-xkeyboards/alu84/rules.mk8
-rw-r--r--keyboards/amj40/keymaps/default/rules.mk8
-rwxr-xr-xkeyboards/amj40/rules.mk12
-rw-r--r--keyboards/amj60/rules.mk12
-rw-r--r--keyboards/amj96/config.h16
-rw-r--r--keyboards/amj96/rules.mk14
-rw-r--r--keyboards/amjkeyboard/amj66/rules.mk10
-rw-r--r--keyboards/amjpad/rules.mk12
-rw-r--r--keyboards/angel17/alpha/rules.mk12
-rw-r--r--keyboards/angel17/rev1/rules.mk12
-rw-r--r--keyboards/angel17/rules.mk12
-rw-r--r--keyboards/angel64/rules.mk12
-rw-r--r--keyboards/ares/ares.c33
-rw-r--r--keyboards/ares/config.h4
-rw-r--r--keyboards/ares/rules.mk2
-rw-r--r--keyboards/at101_blackheart/rules.mk8
-rw-r--r--keyboards/at_at/660m/chconf.h4
-rw-r--r--keyboards/at_at/660m/rules.mk3
-rw-r--r--keyboards/atomic/rules.mk8
-rw-r--r--keyboards/atreus/atreus.h2
-rw-r--r--keyboards/atreus/keymaps/ibnuda/config.h5
-rw-r--r--keyboards/atreus/keymaps/ibnuda/keymap.c258
-rw-r--r--keyboards/atreus/keymaps/ibnuda/rules.mk7
-rw-r--r--keyboards/atreus/keymaps/ridingqwerty/keymap.c143
-rw-r--r--keyboards/atreus/keymaps/ridingqwerty/rules.mk15
-rw-r--r--keyboards/atreus/promicro/config.h40
-rw-r--r--keyboards/atreus/promicro/promicro.c16
-rw-r--r--keyboards/atreus/promicro/promicro.h (renamed from keyboards/mechlovin/hannah910/keymaps/default/config.h)4
-rw-r--r--keyboards/atreus/promicro/rules.mk12
-rw-r--r--keyboards/atreus/readme.md5
-rw-r--r--keyboards/atreus/rules.mk12
-rw-r--r--keyboards/atreus62/keymaps/xyverz/keymap.c3
-rw-r--r--keyboards/atreus62/keymaps/xyverz/readme.md4
-rw-r--r--keyboards/atreus62/rules.mk8
-rw-r--r--keyboards/baguette/rules.mk12
-rw-r--r--keyboards/bantam44/rules.mk8
-rw-r--r--keyboards/bfake/bfake.c34
-rw-r--r--keyboards/bfake/config.h9
-rw-r--r--keyboards/bfake/rules.mk2
-rwxr-xr-xkeyboards/bigseries/rules.mk8
-rwxr-xr-xkeyboards/bigswitch/rules.mk8
-rw-r--r--keyboards/blackplum/config.h2
-rw-r--r--keyboards/blockey/rules.mk10
-rw-r--r--keyboards/bm16a/rules.mk12
-rw-r--r--keyboards/bm43a/rules.mk12
-rw-r--r--keyboards/boardwalk/config.h2
-rw-r--r--keyboards/boardwalk/rules.mk10
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk8
-rw-r--r--keyboards/bpiphany/frosty_flake/rules.mk8
-rw-r--r--keyboards/bpiphany/kitten_paw/rules.mk8
-rw-r--r--keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk8
-rw-r--r--keyboards/bpiphany/pegasushoof/rules.mk8
-rw-r--r--keyboards/bpiphany/sixshooter/rules.mk10
-rw-r--r--keyboards/bpiphany/tiger_lily/keymaps/default/rules.mk8
-rw-r--r--keyboards/bpiphany/tiger_lily/rules.mk8
-rw-r--r--keyboards/bpiphany/unloved_bastard/rules.mk10
-rw-r--r--keyboards/bthlabs/geekpad/rules.mk12
-rw-r--r--keyboards/business_card/alpha/rules.mk12
-rw-r--r--keyboards/business_card/beta/rules.mk12
-rw-r--r--keyboards/business_card/rules.mk12
-rw-r--r--keyboards/butterstick/rules.mk6
-rwxr-xr-xkeyboards/c39/rules.mk8
-rw-r--r--keyboards/candybar/chconf.h4
-rw-r--r--keyboards/candybar/rules.mk4
-rw-r--r--keyboards/cannonkeys/an_c/chconf.h4
-rw-r--r--keyboards/cannonkeys/an_c/config.h6
-rw-r--r--keyboards/cannonkeys/an_c/rules.mk4
-rw-r--r--keyboards/cannonkeys/bluepill/keyboard.c6
-rw-r--r--keyboards/cannonkeys/chimera65/chconf.h4
-rw-r--r--keyboards/cannonkeys/chimera65/rules.mk4
-rw-r--r--keyboards/cannonkeys/instant60/chconf.h4
-rw-r--r--keyboards/cannonkeys/instant60/config.h6
-rw-r--r--keyboards/cannonkeys/instant60/rules.mk4
-rw-r--r--keyboards/cannonkeys/iron165/chconf.h4
-rw-r--r--keyboards/cannonkeys/iron165/config.h3
-rw-r--r--keyboards/cannonkeys/iron165/rules.mk4
-rw-r--r--keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.c56
-rw-r--r--keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.h166
-rw-r--r--keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.mk5
-rw-r--r--keyboards/cannonkeys/ortho48/chconf.h4
-rw-r--r--keyboards/cannonkeys/ortho48/ld/MKL26Z64.ld105
-rw-r--r--keyboards/cannonkeys/ortho48/ld/STM32F103x8_stm32duino_bootloader.ld88
-rw-r--r--keyboards/cannonkeys/ortho48/rules.mk7
-rw-r--r--keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.c56
-rw-r--r--keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.h166
-rw-r--r--keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.mk5
-rw-r--r--keyboards/cannonkeys/ortho60/chconf.h4
-rw-r--r--keyboards/cannonkeys/ortho60/ld/MKL26Z64.ld105
-rw-r--r--keyboards/cannonkeys/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld88
-rw-r--r--keyboards/cannonkeys/ortho60/rules.mk7
-rw-r--r--keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.c56
-rw-r--r--keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.h166
-rw-r--r--keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.mk5
-rw-r--r--keyboards/cannonkeys/ortho75/chconf.h4
-rw-r--r--keyboards/cannonkeys/ortho75/ld/STM32F103x8_stm32duino_bootloader.ld88
-rw-r--r--keyboards/cannonkeys/ortho75/rules.mk7
-rw-r--r--keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c56
-rw-r--r--keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h166
-rw-r--r--keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk5
-rw-r--r--keyboards/cannonkeys/practice60/chconf.h4
-rw-r--r--keyboards/cannonkeys/practice60/ld/MKL26Z64.ld105
-rw-r--r--keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld88
-rw-r--r--keyboards/cannonkeys/practice60/rules.mk7
-rw-r--r--keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.c56
-rw-r--r--keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.h166
-rw-r--r--keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.mk5
-rw-r--r--keyboards/cannonkeys/practice65/chconf.h4
-rw-r--r--keyboards/cannonkeys/practice65/ld/MKL26Z64.ld105
-rw-r--r--keyboards/cannonkeys/practice65/ld/STM32F103x8_stm32duino_bootloader.ld88
-rw-r--r--keyboards/cannonkeys/practice65/rules.mk7
-rw-r--r--keyboards/cannonkeys/satisfaction75/chconf.h4
-rw-r--r--keyboards/cannonkeys/satisfaction75/config.h3
-rw-r--r--keyboards/cannonkeys/satisfaction75/keymaps/default/keymap.c2
-rw-r--r--keyboards/cannonkeys/satisfaction75/led_custom.h2
-rw-r--r--keyboards/cannonkeys/satisfaction75/rules.mk4
-rw-r--r--keyboards/cannonkeys/satisfaction75/satisfaction75.c63
-rw-r--r--keyboards/cannonkeys/savage65/chconf.h4
-rw-r--r--keyboards/cannonkeys/savage65/config.h6
-rw-r--r--keyboards/cannonkeys/savage65/rules.mk3
-rw-r--r--keyboards/cannonkeys/stm32f072/keyboard.c78
-rw-r--r--keyboards/cannonkeys/stm32f072/led_custom.h2
-rw-r--r--keyboards/cannonkeys/tmov2/chconf.h4
-rw-r--r--keyboards/cannonkeys/tmov2/config.h6
-rw-r--r--keyboards/cannonkeys/tmov2/rules.mk3
-rw-r--r--keyboards/catch22/rules.mk8
-rw-r--r--keyboards/chidori/board.c366
-rw-r--r--keyboards/chidori/board.h190
-rw-r--r--keyboards/chidori/chidori.c15
-rw-r--r--keyboards/chidori/chidori.h59
-rw-r--r--keyboards/chidori/config.h253
-rw-r--r--keyboards/chidori/info.json25
-rw-r--r--keyboards/chidori/keymaps/default/config.h48
-rw-r--r--keyboards/chidori/keymaps/default/keymap.c176
-rw-r--r--keyboards/chidori/keymaps/default/readme.md1
-rw-r--r--keyboards/chidori/keymaps/extended/config.h59
-rw-r--r--keyboards/chidori/keymaps/extended/keymap.c181
-rw-r--r--keyboards/chidori/keymaps/extended/readme.md1
-rw-r--r--keyboards/chidori/matrix.c113
-rw-r--r--keyboards/chidori/readme.md15
-rw-r--r--keyboards/chidori/rules.mk44
-rw-r--r--keyboards/chidori/usbconfig.h397
-rw-r--r--keyboards/chimera_ergo/rules.mk8
-rw-r--r--keyboards/chimera_ls/rules.mk8
-rw-r--r--keyboards/chimera_ortho/rules.mk8
-rw-r--r--keyboards/choco60/rules.mk12
-rw-r--r--keyboards/christmas_tree/rules.mk8
-rwxr-xr-xkeyboards/ckeys/handwire_101/rules.mk8
-rw-r--r--keyboards/ckeys/nakey/rules.mk10
-rw-r--r--keyboards/ckeys/obelus/rules.mk8
-rwxr-xr-xkeyboards/ckeys/thedora/config.h2
-rwxr-xr-xkeyboards/ckeys/thedora/readme.md10
-rw-r--r--keyboards/claw44/rev1/rules.mk8
-rw-r--r--keyboards/claw44/rules.mk8
-rw-r--r--keyboards/clueboard/17/rules.mk11
-rw-r--r--keyboards/clueboard/2x1800/rules.mk10
-rw-r--r--keyboards/clueboard/66/rev1/rules.mk8
-rw-r--r--keyboards/clueboard/66/rev2/rules.mk9
-rw-r--r--keyboards/clueboard/66/rev3/rules.mk9
-rw-r--r--keyboards/clueboard/66/rev4/rules.mk8
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/led.c1
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/matrix.c1
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/rules.mk1
-rw-r--r--keyboards/clueboard/66_hotswap/prototype/rules.mk1
-rw-r--r--keyboards/clueboard/card/keymaps/default/rules.mk8
-rw-r--r--keyboards/clueboard/card/rules.mk13
-rw-r--r--keyboards/cocoa40/rules.mk12
-rw-r--r--keyboards/comet46/rules.mk8
-rwxr-xr-xkeyboards/contra/rules.mk8
-rw-r--r--keyboards/converter/adb_usb/rules.mk6
-rw-r--r--keyboards/converter/hp_46010a/rules.mk8
-rw-r--r--keyboards/converter/ibm_5291/rules.mk8
-rw-r--r--keyboards/converter/ibm_terminal/keymaps/default/rules.mk8
-rw-r--r--keyboards/converter/ibm_terminal/rules.mk8
-rw-r--r--keyboards/converter/m0110_usb/rules.mk6
-rw-r--r--keyboards/converter/modelm101/rules.mk12
-rw-r--r--keyboards/converter/numeric_keypad_IIe/rules.mk12
-rw-r--r--keyboards/converter/palm_usb/config.h2
-rw-r--r--keyboards/converter/palm_usb/rules.mk8
-rw-r--r--keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.c56
-rw-r--r--keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.h166
-rw-r--r--keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.mk5
-rw-r--r--keyboards/converter/siemens_tastatur/chconf.h4
-rw-r--r--keyboards/converter/siemens_tastatur/ld/MKL26Z64.ld105
-rw-r--r--keyboards/converter/siemens_tastatur/ld/STM32F103x8_stm32duino_bootloader.ld88
-rw-r--r--keyboards/converter/siemens_tastatur/rules.mk5
-rw-r--r--keyboards/converter/sun_usb/config.h2
-rw-r--r--keyboards/converter/sun_usb/rules.mk8
-rw-r--r--keyboards/converter/usb_usb/ble/rules.mk12
-rw-r--r--keyboards/converter/usb_usb/config.h9
-rw-r--r--keyboards/converter/usb_usb/rules.mk8
-rw-r--r--keyboards/converter/xt_usb/rules.mk8
-rwxr-xr-xkeyboards/copenhagen_click/click_pad_v1/rules.mk12
-rw-r--r--keyboards/coseyfannitutti/discipad/rules.mk12
-rw-r--r--keyboards/coseyfannitutti/discipline/rules.mk12
-rw-r--r--keyboards/coseyfannitutti/mullet/config.h2
-rw-r--r--keyboards/coseyfannitutti/mullet/rules.mk12
-rw-r--r--keyboards/coseyfannitutti/mulletpad/config.h2
-rw-r--r--keyboards/coseyfannitutti/mulletpad/rules.mk12
-rw-r--r--keyboards/coseyfannitutti/mysterium/rules.mk2
-rw-r--r--keyboards/cospad/config.h192
-rw-r--r--keyboards/cospad/cospad.c23
-rw-r--r--keyboards/cospad/cospad.h163
-rw-r--r--keyboards/cospad/info.json192
-rw-r--r--keyboards/cospad/keymaps/default/keymap.c103
-rw-r--r--keyboards/cospad/readme.md17
-rw-r--r--keyboards/cospad/rules.mk24
-rwxr-xr-xkeyboards/crawlpad/rules.mk8
-rw-r--r--keyboards/crkbd/keymaps/curry/keymap.c4
-rw-r--r--keyboards/crkbd/keymaps/dsanchezseco/config.h2
-rw-r--r--keyboards/crkbd/keymaps/dsanchezseco/rules.mk2
-rw-r--r--keyboards/crkbd/keymaps/kidbrazil/config.h99
-rw-r--r--keyboards/crkbd/keymaps/kidbrazil/enums.h10
-rw-r--r--keyboards/crkbd/keymaps/kidbrazil/keymap.c149
-rw-r--r--keyboards/crkbd/keymaps/kidbrazil/layer.c69
-rw-r--r--keyboards/crkbd/keymaps/kidbrazil/layer.h9
-rw-r--r--keyboards/crkbd/keymaps/kidbrazil/rules.mk9
-rw-r--r--keyboards/crkbd/keymaps/ninjonas/config.h6
-rw-r--r--keyboards/crkbd/rev1/split_util.c12
-rw-r--r--keyboards/crkbd/rules.mk8
-rw-r--r--keyboards/cu24/rules.mk10
-rw-r--r--keyboards/cu75/keymaps/default/rules.mk8
-rw-r--r--keyboards/cu75/rules.mk5
-rw-r--r--keyboards/cutie_club/wraith/rules.mk12
-rw-r--r--keyboards/daisy/config.h129
-rw-r--r--keyboards/daisy/daisy.c46
-rw-r--r--keyboards/daisy/daisy.h58
-rw-r--r--keyboards/daisy/info.json117
-rw-r--r--keyboards/daisy/keymaps/default/keymap.c159
-rw-r--r--keyboards/daisy/keymaps/default/readme.md6
-rw-r--r--keyboards/daisy/readme.md28
-rw-r--r--keyboards/daisy/rules.mk28
-rw-r--r--keyboards/db/db63/config.h3
-rw-r--r--keyboards/dc01/arrow/rules.mk12
-rw-r--r--keyboards/dc01/left/rules.mk12
-rw-r--r--keyboards/dc01/numpad/rules.mk12
-rw-r--r--keyboards/dc01/right/rules.mk12
-rw-r--r--keyboards/deltasplit75/deltasplit75.h9
-rw-r--r--keyboards/deltasplit75/eeprom-lefthand.eep2
-rw-r--r--keyboards/deltasplit75/eeprom-righthand.eep2
-rw-r--r--keyboards/deltasplit75/i2c.c162
-rw-r--r--keyboards/deltasplit75/i2c.h31
-rw-r--r--keyboards/deltasplit75/matrix.c454
-rw-r--r--keyboards/deltasplit75/readme.md11
-rw-r--r--keyboards/deltasplit75/rules.mk37
-rw-r--r--keyboards/deltasplit75/serial.c228
-rw-r--r--keyboards/deltasplit75/serial.h26
-rw-r--r--keyboards/deltasplit75/split_util.c86
-rw-r--r--keyboards/deltasplit75/split_util.h19
-rw-r--r--keyboards/deltasplit75/v2/config.h10
-rw-r--r--keyboards/deltasplit75/v2/v2.c15
-rw-r--r--keyboards/deltasplit75/v2/v2.h5
-rwxr-xr-xkeyboards/dichotomy/rules.mk8
-rw-r--r--keyboards/diverge3/rules.mk8
-rw-r--r--keyboards/divergetm2/rules.mk8
-rw-r--r--keyboards/dk60/rules.mk12
-rw-r--r--keyboards/do60/rules.mk8
-rw-r--r--keyboards/donutcables/budget96/budget96.c34
-rw-r--r--keyboards/donutcables/budget96/config.h4
-rw-r--r--keyboards/donutcables/budget96/rules.mk2
-rw-r--r--keyboards/donutcables/scrabblepad/rules.mk10
-rw-r--r--keyboards/doro67/multi/rules.mk12
-rw-r--r--keyboards/doro67/regular/rules.mk12
-rw-r--r--keyboards/doro67/rgb/rules.mk12
-rw-r--r--keyboards/dozen0/config.h2
-rw-r--r--keyboards/duck/eagle_viper/v2/rules.mk13
-rw-r--r--keyboards/duck/jetfire/rules.mk15
-rw-r--r--keyboards/duck/lightsaver/rules.mk13
-rw-r--r--keyboards/duck/octagon/v1/rules.mk13
-rw-r--r--keyboards/duck/octagon/v2/rules.mk13
-rw-r--r--keyboards/duck/orion/v3/rules.mk13
-rw-r--r--keyboards/dumbpad/rules.mk12
-rw-r--r--keyboards/dz60/config.h7
-rw-r--r--keyboards/dz60/keymaps/billiams_layout2/build_flash.sh (renamed from keyboards/dz60/keymaps/billiams/build_flash.sh)5
-rw-r--r--keyboards/dz60/keymaps/billiams_layout2/config.h (renamed from keyboards/dz60/keymaps/billiams/config.h)0
-rw-r--r--keyboards/dz60/keymaps/billiams_layout2/keymap.c48
-rw-r--r--keyboards/dz60/keymaps/billiams_layout2/readme.md68
-rw-r--r--keyboards/dz60/keymaps/billiams_layout4/build_flash.sh6
-rw-r--r--keyboards/dz60/keymaps/billiams_layout4/config.h1
-rw-r--r--keyboards/dz60/keymaps/billiams_layout4/keymap.c48
-rw-r--r--keyboards/dz60/keymaps/billiams_layout4/readme.md71
-rw-r--r--keyboards/dz60/keymaps/via/keymap.c29
-rw-r--r--keyboards/dz60/keymaps/via/rules.mk2
-rw-r--r--keyboards/dz60/rules.mk8
-rw-r--r--keyboards/eco/keymaps/default/rules.mk8
-rw-r--r--keyboards/eco/keymaps/xyverz/keymap.c4
-rw-r--r--keyboards/eco/rules.mk8
-rw-r--r--keyboards/emptystring/NQG/rules.mk8
-rw-r--r--keyboards/ep/40/rules.mk12
-rw-r--r--keyboards/ep/96/rules.mk12
-rw-r--r--keyboards/ep/comsn/hs68/config.h2
-rw-r--r--keyboards/ep/comsn/hs68/rules.mk12
-rw-r--r--keyboards/ep/comsn/mollydooker/config.h2
-rw-r--r--keyboards/ep/comsn/mollydooker/rules.mk12
-rw-r--r--keyboards/ep/comsn/tf_longeboye/rules.mk12
-rw-r--r--keyboards/ergodash/mini/config.h2
-rw-r--r--keyboards/ergodash/rev1/config.h6
-rw-r--r--keyboards/ergodash/rules.mk8
-rw-r--r--keyboards/ergodone/rules.mk8
-rw-r--r--keyboards/ergodox_ez/keymaps/danielo515/config.h37
-rw-r--r--keyboards/ergodox_ez/keymaps/danielo515/keymap.c318
-rw-r--r--keyboards/ergodox_ez/keymaps/danielo515/rules.mk9
-rw-r--r--keyboards/ergodox_ez/rules.mk8
-rw-r--r--keyboards/ergodox_infinity/rules.mk9
-rw-r--r--keyboards/ergodox_stm32/chconf.h4
-rw-r--r--keyboards/ergodox_stm32/rules.mk4
-rw-r--r--keyboards/ergoinu/keymaps/default/rules.mk8
-rw-r--r--keyboards/ergoinu/rules.mk8
-rw-r--r--keyboards/ergosaurus/config.h251
-rw-r--r--keyboards/ergosaurus/ergosaurus.c (renamed from keyboards/westfoxtrot/cypher/keymaps/default/config.h)8
-rw-r--r--keyboards/ergosaurus/ergosaurus.h38
-rw-r--r--keyboards/ergosaurus/info.json82
-rw-r--r--keyboards/ergosaurus/keymaps/default/keymap.c47
-rw-r--r--keyboards/ergosaurus/keymaps/default/readme.md3
-rw-r--r--keyboards/ergosaurus/readme.md15
-rw-r--r--keyboards/ergosaurus/rules.mk33
-rw-r--r--keyboards/ergoslab/rev1/rules.mk3
-rw-r--r--keyboards/ergotravel/rules.mk8
-rwxr-xr-xkeyboards/espectro/rules.mk8
-rw-r--r--keyboards/eve/meteor/config.h3
-rw-r--r--keyboards/eve/meteor/meteor.c34
-rw-r--r--keyboards/evil80/rules.mk8
-rw-r--r--keyboards/exclusive/e65/rules.mk8
-rw-r--r--keyboards/exclusive/e6v2/le/rules.mk8
-rw-r--r--keyboards/exclusive/e6v2/le_bmc/config.h3
-rw-r--r--keyboards/exclusive/e6v2/le_bmc/le_bmc.c34
-rw-r--r--keyboards/exclusive/e6v2/le_bmc/rules.mk14
-rw-r--r--keyboards/exclusive/e6v2/oe/rules.mk8
-rw-r--r--keyboards/exclusive/e6v2/oe_bmc/config.h3
-rw-r--r--keyboards/exclusive/e6v2/oe_bmc/oe_bmc.c34
-rw-r--r--keyboards/exclusive/e6v2/oe_bmc/rules.mk14
-rw-r--r--keyboards/exclusive/e7v1/rules.mk8
-rw-r--r--keyboards/exent/config.h4
-rw-r--r--keyboards/exent/exent.c20
-rw-r--r--keyboards/exent/rules.mk2
-rw-r--r--keyboards/facew/config.h4
-rw-r--r--keyboards/facew/facew.c36
-rw-r--r--keyboards/facew/rules.mk2
-rw-r--r--keyboards/fc660c/keymaps/mikefightsbears/keymap.c34
-rw-r--r--keyboards/fc660c/keymaps/mikefightsbears/rules.mk6
-rw-r--r--keyboards/fc660c/rules.mk8
-rw-r--r--keyboards/fc980c/rules.mk8
-rw-r--r--keyboards/felix/rules.mk12
-rw-r--r--keyboards/fleuron/rules.mk10
-rw-r--r--keyboards/fluorite/config.h2
-rw-r--r--keyboards/flx/virgo/info.json3
-rw-r--r--keyboards/flx/virgo/keymaps/default/keymap.c40
-rw-r--r--keyboards/flx/virgo/keymaps/via/keymap.c52
-rw-r--r--keyboards/flx/virgo/keymaps/via/readme.md1
-rw-r--r--keyboards/flx/virgo/keymaps/via/rules.mk (renamed from keyboards/hs60/v2/keymaps/ansi_via/rules.mk)0
-rw-r--r--keyboards/flx/virgo/readme.md2
-rw-r--r--keyboards/flx/virgo/rules.mk7
-rw-r--r--keyboards/flx/virgo/virgo.c3
-rw-r--r--keyboards/flx/virgo/virgo.h39
-rw-r--r--keyboards/fortitude60/rules.mk8
-rw-r--r--keyboards/four_banger/rules.mk8
-rw-r--r--keyboards/foxlab/leaf60/hotswap/rules.mk12
-rw-r--r--keyboards/foxlab/leaf60/universal/rules.mk12
-rwxr-xr-xkeyboards/fractal/rules.mk8
-rw-r--r--keyboards/freyr/rules.mk12
-rw-r--r--keyboards/ft/mars80/config.h4
-rw-r--r--keyboards/ft/mars80/mars80.c34
-rw-r--r--keyboards/geekboards/tester/rules.mk10
-rw-r--r--keyboards/gergo/keymaps/colemak/rules.mk2
-rw-r--r--keyboards/gergo/keymaps/default/rules.mk2
-rw-r--r--keyboards/gergo/keymaps/oled/rules.mk2
-rw-r--r--keyboards/getta25/config.h (renamed from keyboards/deltasplit75/config.h)6
-rw-r--r--keyboards/getta25/getta25.c1
-rw-r--r--keyboards/getta25/getta25.h7
-rw-r--r--keyboards/getta25/info.json38
-rw-r--r--keyboards/getta25/keymaps/default/config.h24
-rw-r--r--keyboards/getta25/keymaps/default/keymap.c61
-rw-r--r--keyboards/getta25/keymaps/oled/config.h25
-rw-r--r--keyboards/getta25/keymaps/oled/glcdfont.c231
-rw-r--r--keyboards/getta25/keymaps/oled/keymap.c204
-rw-r--r--keyboards/getta25/readme.md17
-rw-r--r--keyboards/getta25/rev1/config.h76
-rw-r--r--keyboards/getta25/rev1/rev1.c1
-rw-r--r--keyboards/getta25/rev1/rev1.h35
-rw-r--r--keyboards/getta25/rev1/rules.mk3
-rw-r--r--keyboards/getta25/rules.mk33
-rw-r--r--keyboards/gh60/revc/revc.h10
-rw-r--r--keyboards/gh60/revc/rules.mk8
-rw-r--r--keyboards/gh60/satan/keymaps/colemak/rules.mk8
-rw-r--r--keyboards/gh60/satan/keymaps/default/rules.mk8
-rw-r--r--keyboards/gh60/satan/keymaps/isoHHKB/rules.mk8
-rw-r--r--keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk12
-rw-r--r--keyboards/gh60/satan/keymaps/midi/rules.mk10
-rw-r--r--keyboards/gh60/satan/rules.mk12
-rw-r--r--keyboards/gh80_3000/rules.mk8
-rw-r--r--keyboards/gingham/matrix.c2
-rw-r--r--keyboards/gingham/rules.mk12
-rw-r--r--keyboards/gonnerd/keymaps/default/rules.mk8
-rw-r--r--keyboards/gonnerd/keymaps/tkl/rules.mk8
-rw-r--r--keyboards/gonnerd/rules.mk8
-rw-r--r--keyboards/gray_studio/cod67/rules.mk10
-rw-r--r--keyboards/gray_studio/hb85/config.h3
-rw-r--r--keyboards/gray_studio/hb85/hb85.c34
-rw-r--r--keyboards/gray_studio/hb85/rules.mk2
-rw-r--r--keyboards/gray_studio/space65/keymaps/billiams/config.h20
-rw-r--r--keyboards/gray_studio/space65/keymaps/billiams/keymap.c85
-rw-r--r--keyboards/gray_studio/space65/keymaps/billiams/readme.md80
-rw-r--r--keyboards/gray_studio/space65/rules.mk12
-rw-r--r--keyboards/gray_studio/think65/solder/readme.md2
-rw-r--r--keyboards/gray_studio/think65/solder/solder.c22
-rw-r--r--keyboards/gray_studio/think65/solder/solder.h8
-rw-r--r--keyboards/grid600/press/rules.mk12
-rwxr-xr-xkeyboards/gskt00/rules.mk8
-rw-r--r--keyboards/hadron/ver2/rules.mk8
-rw-r--r--keyboards/halberd/config.h2
-rw-r--r--keyboards/halberd/rules.mk12
-rw-r--r--keyboards/handwired/42/config.h2
-rw-r--r--keyboards/handwired/aek64/config.h2
-rw-r--r--keyboards/handwired/bluepill/bluepill70/chconf.h4
-rw-r--r--keyboards/handwired/bluepill/bluepill70/rules.mk6
-rw-r--r--keyboards/handwired/ck4x4/chconf.h4
-rw-r--r--keyboards/handwired/ck4x4/rules.mk4
-rw-r--r--keyboards/handwired/co60/rev1/config.h2
-rw-r--r--keyboards/handwired/co60/rev6/config.h2
-rw-r--r--keyboards/handwired/co60/rev7/config.h2
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/config.h2
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/config.h2
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/config.h2
-rw-r--r--keyboards/handwired/dactyl_manuform/6x6/config.h2
-rw-r--r--keyboards/handwired/dactyl_manuform/dmote/62key/config.h2
-rw-r--r--keyboards/handwired/dactyl_promicro/config.h2
-rw-r--r--keyboards/handwired/daishi/config.h2
-rw-r--r--keyboards/handwired/eagleii/config.h19
-rw-r--r--keyboards/handwired/eagleii/eagleii.c1
-rw-r--r--keyboards/handwired/eagleii/eagleii.h24
-rw-r--r--keyboards/handwired/eagleii/info.json88
-rw-r--r--keyboards/handwired/eagleii/keymaps/default/keymap.c12
-rw-r--r--keyboards/handwired/eagleii/readme.md15
-rw-r--r--keyboards/handwired/eagleii/rules.mk26
-rw-r--r--keyboards/handwired/hacked_motospeed/config.h4
-rw-r--r--keyboards/handwired/lovelive9/config.h2
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/config.h7
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c123
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md1
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk10
-rw-r--r--keyboards/handwired/nicekey/config.h2
-rw-r--r--keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.c56
-rw-r--r--keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.h166
-rw-r--r--keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.mk5
-rw-r--r--keyboards/handwired/onekey/bluepill/chconf.h4
-rw-r--r--keyboards/handwired/onekey/bluepill/ld/STM32F103x8_stm32duino_bootloader.ld88
-rw-r--r--keyboards/handwired/onekey/bluepill/rules.mk6
-rw-r--r--keyboards/handwired/onekey/config.h2
-rw-r--r--keyboards/handwired/onekey/stm32f0_disco/chconf.h4
-rw-r--r--keyboards/handwired/onekey/stm32f0_disco/rules.mk4
-rw-r--r--keyboards/handwired/onekey/teensy_32/chconf.h4
-rw-r--r--keyboards/handwired/onekey/teensy_32/ld/MK20DX256.ld101
-rw-r--r--keyboards/handwired/onekey/teensy_32/rules.mk4
-rw-r--r--keyboards/handwired/onekey/teensy_lc/chconf.h4
-rw-r--r--keyboards/handwired/onekey/teensy_lc/ld/MKL26Z64.ld105
-rw-r--r--keyboards/handwired/onekey/teensy_lc/rules.mk4
-rw-r--r--keyboards/handwired/owlet60/matrix.c5
-rw-r--r--keyboards/handwired/splittest/config.h2
-rw-r--r--keyboards/handwired/steamvan/rev1/config.h2
-rw-r--r--keyboards/handwired/tennie/config.h2
-rw-r--r--keyboards/handwired/wulkan/config.h2
-rw-r--r--keyboards/hecomi/alpha/config.h2
-rw-r--r--keyboards/hecomi/alpha/rules.mk12
-rw-r--r--keyboards/hecomi/rules.mk12
-rw-r--r--keyboards/helix/pico/keymaps/default/rules.mk2
-rw-r--r--keyboards/helix/rev2/split_util.c12
-rw-r--r--keyboards/helix/rules.mk8
-rw-r--r--keyboards/hhkb/rules.mk8
-rwxr-xr-xkeyboards/hid_liber/rules.mk10
-rw-r--r--keyboards/hifumi/rules.mk8
-rw-r--r--keyboards/hineybush/h87a/keymaps/wkl/keymap.c2
-rw-r--r--keyboards/hineybush/h87a/rules.mk10
-rw-r--r--keyboards/hineybush/h88/h88.c2
-rw-r--r--keyboards/hineybush/hineyg80/rules.mk12
-rwxr-xr-xkeyboards/honeycomb/rules.mk8
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/README.md22
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/keymap.c72
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/rules.mk1
-rw-r--r--keyboards/hotdox/rules.mk8
-rw-r--r--keyboards/hs60/v1/rules.mk10
-rw-r--r--keyboards/hs60/v2/ansi/ansi.h38
-rw-r--r--keyboards/hs60/v2/ansi/config.h148
-rw-r--r--keyboards/hs60/v2/ansi/info.json333
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/default/keymap.c (renamed from keyboards/hs60/v2/keymaps/ansi/keymap.c)0
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/default/readme.md (renamed from keyboards/hs60/v2/keymaps/ansi/readme.md)0
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h (renamed from keyboards/hs60/v2/keymaps/stanrc85/config.h)5
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c (renamed from keyboards/hs60/v2/keymaps/stanrc85/keymap.c)4
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md (renamed from keyboards/hs60/v2/keymaps/stanrc85/readme.md)0
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk (renamed from keyboards/hs60/v2/keymaps/default_via/rules.mk)0
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/via/keymap.c (renamed from keyboards/hs60/v2/keymaps/ansi_via/keymap.c)0
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/via/readme.md (renamed from keyboards/hs60/v2/keymaps/ansi_via/readme.md)0
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/via/rules.mk (renamed from keyboards/hs60/v2/keymaps/goatmaster/rules.mk)0
-rw-r--r--keyboards/hs60/v2/ansi/rules.mk (renamed from keyboards/hs60/v2/rules.mk)4
-rw-r--r--keyboards/hs60/v2/hhkb/config.h148
-rw-r--r--keyboards/hs60/v2/hhkb/hhkb.h (renamed from keyboards/hs60/v2/v2.h)28
-rw-r--r--keyboards/hs60/v2/hhkb/info.json12
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/default/keymap.c (renamed from keyboards/hs60/v2/keymaps/hhkb/keymap.c)0
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/default/readme.md (renamed from keyboards/hs60/v2/keymaps/hhkb/readme.md)0
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/goatmaster/config.h (renamed from keyboards/hs60/v2/keymaps/ansi_via/config.h)5
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/goatmaster/keymap.c (renamed from keyboards/hs60/v2/keymaps/goatmaster/keymap.c)0
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/goatmaster/readme.md (renamed from keyboards/hs60/v2/keymaps/goatmaster/readme.md)0
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/goatmaster/rules.mk (renamed from keyboards/hs60/v2/keymaps/hhkb_via/rules.mk)0
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/via/keymap.c (renamed from keyboards/hs60/v2/keymaps/hhkb_via/keymap.c)0
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/via/readme.md (renamed from keyboards/hs60/v2/keymaps/hhkb_via/readme.md)0
-rw-r--r--keyboards/hs60/v2/hhkb/keymaps/via/rules.mk (renamed from keyboards/hs60/v2/keymaps/iso_andys8/rules.mk)0
-rw-r--r--keyboards/hs60/v2/hhkb/rules.mk31
-rw-r--r--keyboards/hs60/v2/info.json1650
-rw-r--r--keyboards/hs60/v2/iso/config.h (renamed from keyboards/hs60/v2/config.h)8
-rw-r--r--keyboards/hs60/v2/iso/info.json76
-rw-r--r--keyboards/hs60/v2/iso/iso.h38
-rw-r--r--keyboards/hs60/v2/iso/keymaps/default/keymap.c (renamed from keyboards/hs60/v2/keymaps/default/keymap.c)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/default/readme.md (renamed from keyboards/hs60/v2/keymaps/default/readme.md)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/iso_andys8/keymap.c (renamed from keyboards/hs60/v2/keymaps/iso_andys8/keymap.c)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/iso_andys8/readme.md (renamed from keyboards/hs60/v2/keymaps/iso_andys8/readme.md)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/iso_andys8/rules.mk (renamed from keyboards/hs60/v2/keymaps/stanrc85/rules.mk)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/via/keymap.c (renamed from keyboards/hs60/v2/keymaps/default_via/keymap.c)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/via/readme.md (renamed from keyboards/hs60/v2/keymaps/default_via/readme.md)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/via/rules.mk (renamed from keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/win_osx_dual/keymap.c (renamed from keyboards/hs60/v2/keymaps/win_osx_dual/keymap.c)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/win_osx_dual/readme.md (renamed from keyboards/hs60/v2/keymaps/win_osx_dual/readme.md)0
-rw-r--r--keyboards/hs60/v2/iso/keymaps/win_osx_dual/rules.mk1
-rw-r--r--keyboards/hs60/v2/iso/rules.mk33
-rw-r--r--keyboards/hs60/v2/keymaps/goatmaster/config.h37
-rw-r--r--keyboards/hs60/v2/keymaps/hhkb_via/config.h34
-rw-r--r--keyboards/hs60/v2/readme.md4
-rw-r--r--keyboards/hs60/v2/v2.c3
-rw-r--r--keyboards/idobo/rules.mk12
-rw-r--r--keyboards/illuminati/is0/rules.mk12
-rw-r--r--keyboards/infinity60/chconf.h4
-rw-r--r--keyboards/infinity60/rules.mk4
-rw-r--r--keyboards/ivy/rules.mk8
-rw-r--r--keyboards/j80/j80.c13
-rw-r--r--keyboards/jc65/v32a/config.h4
-rw-r--r--keyboards/jc65/v32a/v32a.c36
-rw-r--r--keyboards/jc65/v32u4/rules.mk8
-rw-r--r--keyboards/jd40/rules.mk8
-rw-r--r--keyboards/jd45/rules.mk8
-rw-r--r--keyboards/jj40/config.h2
-rw-r--r--keyboards/jj40/rules.mk12
-rw-r--r--keyboards/jj4x4/README.md20
-rw-r--r--keyboards/jj4x4/config.h2
-rw-r--r--keyboards/jj4x4/rules.mk12
-rw-r--r--keyboards/jj50/backlight.c213
-rw-r--r--keyboards/jj50/backlight_custom.h15
-rw-r--r--keyboards/jj50/breathing_custom.h140
-rw-r--r--keyboards/jj50/config.h2
-rw-r--r--keyboards/jj50/jj50.c17
-rw-r--r--keyboards/jj50/rules.mk2
-rw-r--r--keyboards/jm60/chconf.h4
-rw-r--r--keyboards/jm60/rules.mk8
-rw-r--r--keyboards/jnao/rules.mk12
-rw-r--r--keyboards/k_type/chconf.h4
-rw-r--r--keyboards/k_type/rules.mk4
-rw-r--r--keyboards/kagamidget/config.h2
-rw-r--r--keyboards/kagamidget/rules.mk12
-rw-r--r--keyboards/katana60/rules.mk10
-rw-r--r--keyboards/kbdfans/kbd19x/rules.mk12
-rw-r--r--keyboards/kbdfans/kbd4x/rules.mk12
-rw-r--r--keyboards/kbdfans/kbd66/rules.mk10
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/rules.mk12
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/mikefightsbears/keymap.c8
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/keymap.c29
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v1/config.h6
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v2/config.h6
-rw-r--r--keyboards/kbdfans/kbd67/rev1/rules.mk12
-rw-r--r--keyboards/kbdfans/kbd67/rev2/rules.mk12
-rw-r--r--keyboards/kbdfans/kbd6x/rules.mk12
-rw-r--r--keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c1
-rw-r--r--keyboards/kbdfans/kbd75/readme.md10
-rw-r--r--keyboards/kbdfans/kbd75/rev1/rules.mk8
-rw-r--r--keyboards/kbdfans/kbd75/rev2/rules.mk8
-rw-r--r--keyboards/kbdfans/kbd8x/rules.mk10
-rw-r--r--keyboards/kbdfans/kbdpad/mk1/mk1.c18
-rw-r--r--keyboards/kbdfans/kbdpad_mk2/rules.mk12
-rw-r--r--keyboards/kc60/keymaps/ws2812/rules.mk8
-rw-r--r--keyboards/kc60/rules.mk8
-rw-r--r--keyboards/kc60se/rules.mk10
-rw-r--r--keyboards/keebio/bdn9/rules.mk12
-rw-r--r--keyboards/keebio/bfo9000/config.h2
-rw-r--r--keyboards/keebio/bfo9000/rules.mk8
-rw-r--r--keyboards/keebio/chocopad/rules.mk8
-rw-r--r--keyboards/keebio/dilly/rules.mk8
-rw-r--r--keyboards/keebio/ergodicity/rules.mk12
-rw-r--r--keyboards/keebio/fourier/config.h2
-rw-r--r--keyboards/keebio/fourier/rules.mk8
-rw-r--r--keyboards/keebio/iris/keymaps/jasondunsmore/config.h8
-rw-r--r--keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c133
-rw-r--r--keyboards/keebio/iris/keymaps/jasondunsmore/readme.md10
-rw-r--r--keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk1
-rw-r--r--keyboards/keebio/iris/rev1/rules.mk8
-rw-r--r--keyboards/keebio/iris/rev1_led/rules.mk8
-rw-r--r--keyboards/keebio/iris/rev2/rules.mk8
-rw-r--r--keyboards/keebio/iris/rev3/rules.mk8
-rw-r--r--keyboards/keebio/iris/rev4/rules.mk8
-rw-r--r--keyboards/keebio/laplace/rules.mk8
-rw-r--r--keyboards/keebio/levinson/keymaps/steno/rules.mk4
-rw-r--r--keyboards/keebio/levinson/rev1/config.h2
-rw-r--r--keyboards/keebio/levinson/rev2/config.h2
-rw-r--r--keyboards/keebio/levinson/rev3/config.h2
-rw-r--r--keyboards/keebio/levinson/rules.mk8
-rw-r--r--keyboards/keebio/nyquist/rev1/rules.mk8
-rw-r--r--keyboards/keebio/nyquist/rev2/rules.mk8
-rw-r--r--keyboards/keebio/nyquist/rev3/rules.mk8
-rw-r--r--keyboards/keebio/quefrency/keymaps/default65/keymap.c17
-rw-r--r--keyboards/keebio/quefrency/keymaps/default65macro/keymap.c17
-rw-r--r--keyboards/keebio/quefrency/keymaps/yoryer/config.h (renamed from keyboards/hs60/v2/keymaps/ansi/config.h)14
-rw-r--r--keyboards/keebio/quefrency/keymaps/yoryer/keymap.c50
-rw-r--r--keyboards/keebio/quefrency/quefrency.h3
-rw-r--r--keyboards/keebio/quefrency/rev1/config.h2
-rw-r--r--keyboards/keebio/quefrency/rev2/config.h62
-rw-r--r--keyboards/keebio/quefrency/rev2/rev2.c1
-rw-r--r--keyboards/keebio/quefrency/rev2/rev2.h194
-rw-r--r--keyboards/keebio/quefrency/rev2/rules.mk3
-rw-r--r--keyboards/keebio/quefrency/rules.mk10
-rw-r--r--keyboards/keebio/rorschach/rules.mk8
-rw-r--r--keyboards/keebio/tragicforce68/rules.mk8
-rw-r--r--keyboards/keebio/tukey/rules.mk12
-rw-r--r--keyboards/keebio/viterbi/rules.mk8
-rw-r--r--keyboards/keebio/wavelet/config.h2
-rw-r--r--keyboards/keebio/wavelet/rules.mk8
-rw-r--r--keyboards/keycapsss/o4l_5x12/rules.mk8
-rw-r--r--keyboards/keyhive/maypad/rules.mk12
-rw-r--r--keyboards/kinesis/keymaps/carpalx/rules.mk8
-rw-r--r--keyboards/kinesis/keymaps/default/rules.mk8
-rw-r--r--keyboards/kinesis/keymaps/default_pretty/rules.mk8
-rw-r--r--keyboards/kinesis/keymaps/dvorak/rules.mk8
-rw-r--r--keyboards/kinesis/rules.mk8
-rw-r--r--keyboards/kingly_keys/little_foot/rules.mk8
-rw-r--r--keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk2
-rw-r--r--keyboards/kingly_keys/romac/rules.mk8
-rw-r--r--keyboards/kingly_keys/romac_plus/rules.mk10
-rw-r--r--keyboards/kingly_keys/ropro/rules.mk8
-rw-r--r--keyboards/kingly_keys/smd_milk/rules.mk8
-rw-r--r--keyboards/kingly_keys/soap/rules.mk8
-rw-r--r--keyboards/kira75/rules.mk10
-rw-r--r--keyboards/kmac/config.h2
-rw-r--r--keyboards/kmac/matrix.c2
-rw-r--r--keyboards/kmac/rules.mk12
-rwxr-xr-xkeyboards/kmini/config.h2
-rwxr-xr-xkeyboards/kmini/rules.mk12
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/config.h25
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/keymap.c306
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/readme.md1
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/rules.mk6
-rw-r--r--keyboards/knops/mini/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/ansi/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/ansi_arrows/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/ansi_arrows_lcap/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/ansi_split/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/ansi_split_arrows/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/default/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/iso/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/iso_arrows/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/iso_split/rules.mk10
-rw-r--r--keyboards/kona_classic/keymaps/iso_split_arrows/rules.mk10
-rw-r--r--keyboards/kona_classic/rules.mk8
-rw-r--r--keyboards/kudox/rules.mk10
-rw-r--r--keyboards/kudox_game/rules.mk10
-rw-r--r--keyboards/kv/revt/config.h39
-rw-r--r--keyboards/kv/revt/keymaps/default/keymap.c64
-rw-r--r--keyboards/kv/revt/keymaps/default/readme.md1
-rw-r--r--keyboards/kv/revt/readme.md18
-rw-r--r--keyboards/kv/revt/revt.c25
-rw-r--r--keyboards/kv/revt/revt.h36
-rw-r--r--keyboards/kv/revt/rules.mk22
-rw-r--r--keyboards/kyria/keymaps/ninjonas/config.h37
-rw-r--r--keyboards/kyria/keymaps/ninjonas/encoder.c84
-rw-r--r--keyboards/kyria/keymaps/ninjonas/keymap.c105
-rw-r--r--keyboards/kyria/keymaps/ninjonas/oled.c168
-rw-r--r--keyboards/kyria/keymaps/ninjonas/rules.mk7
-rw-r--r--keyboards/laptreus/rules.mk8
-rw-r--r--keyboards/launchpad/rules.mk8
-rw-r--r--keyboards/lazydesigners/dimple/rules.mk8
-rw-r--r--keyboards/lazydesigners/the50/rules.mk8
-rw-r--r--keyboards/lazydesigners/the60/rules.mk8
-rw-r--r--keyboards/lets_split/keymaps/DE_programming/config.h (renamed from keyboards/hs60/v2/keymaps/hhkb/config.h)26
-rw-r--r--keyboards/lets_split/keymaps/DE_programming/keymap.c97
-rw-r--r--keyboards/lets_split/keymaps/DE_programming/readme.md57
-rw-r--r--keyboards/lets_split/keymaps/DE_programming/rules.mk0
-rw-r--r--keyboards/lets_split/keymaps/OLED_sample/rules.mk8
-rw-r--r--keyboards/lets_split/rev1/config.h2
-rw-r--r--keyboards/lets_split/rev2/config.h2
-rw-r--r--keyboards/lets_split/rules.mk8
-rw-r--r--keyboards/lets_split/sockets/config.h2
-rw-r--r--keyboards/lets_split_eh/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/default/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfk78/rules.mk9
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfk87/rules.mk11
-rw-r--r--keyboards/lfkeyboards/lfkpad/config.h131
-rw-r--r--keyboards/lfkeyboards/lfkpad/info.json40
-rw-r--r--keyboards/lfkeyboards/lfkpad/keymaps/default/config.h3
-rw-r--r--keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c50
-rw-r--r--keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md2
-rw-r--r--keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfkpad/lfkpad.c92
-rw-r--r--keyboards/lfkeyboards/lfkpad/lfkpad.h22
-rw-r--r--keyboards/lfkeyboards/lfkpad/readme.md31
-rw-r--r--keyboards/lfkeyboards/lfkpad/rules.mk43
-rw-r--r--keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk8
-rw-r--r--keyboards/lfkeyboards/mini1800/rules.mk5
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/default/rules.mk8
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk8
-rw-r--r--keyboards/lily58/keymaps/default/rules.mk8
-rw-r--r--keyboards/lily58/keymaps/ninjonas/keymap.c6
-rw-r--r--keyboards/lily58/rules.mk8
-rw-r--r--keyboards/m0lly/rules.mk8
-rw-r--r--keyboards/m10a/rules.mk8
-rw-r--r--keyboards/maartenwut/atom47/rev2/rules.mk2
-rw-r--r--keyboards/maartenwut/atom47/rev3/rules.mk2
-rw-r--r--keyboards/maartenwut/atom47/rules.mk10
-rw-r--r--keyboards/maartenwut/mx5160/config.h252
-rw-r--r--keyboards/maartenwut/mx5160/info.json12
-rw-r--r--keyboards/maartenwut/mx5160/keymaps/default/keymap.c41
-rw-r--r--keyboards/maartenwut/mx5160/keymaps/default/readme.md1
-rw-r--r--keyboards/maartenwut/mx5160/mx5160.c58
-rw-r--r--keyboards/maartenwut/mx5160/mx5160.h47
-rw-r--r--keyboards/maartenwut/mx5160/readme.md15
-rw-r--r--keyboards/maartenwut/mx5160/rules.mk33
-rw-r--r--keyboards/maartenwut/ta65/rules.mk12
-rw-r--r--keyboards/maartenwut/wasdat/matrix.c246
-rw-r--r--keyboards/maartenwut/wasdat/rules.mk2
-rwxr-xr-xkeyboards/maartenwut/wonderland/keymaps/rafael-azevedo/keymap.c42
-rw-r--r--keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/readme.md9
-rwxr-xr-xkeyboards/maartenwut/wonderland/rules.mk12
-rw-r--r--keyboards/manta60/config.h130
-rw-r--r--keyboards/manta60/info.json81
-rw-r--r--keyboards/manta60/keymaps/default/config.h (renamed from keyboards/mechlovin/hannah910/keymaps/ansi/config.h)4
-rw-r--r--keyboards/manta60/keymaps/default/keymap.c131
-rw-r--r--keyboards/manta60/keymaps/default/readme.md1
-rw-r--r--keyboards/manta60/manta60.c1
-rw-r--r--keyboards/manta60/manta60.h45
-rw-r--r--keyboards/manta60/readme.md15
-rw-r--r--keyboards/manta60/rules.mk40
-rw-r--r--keyboards/massdrop/alt/rules.mk12
-rw-r--r--keyboards/massdrop/ctrl/rules.mk12
-rw-r--r--keyboards/maxipad/rules.mk12
-rw-r--r--keyboards/maxr1998/phoebe/config.h7
-rw-r--r--keyboards/maxr1998/phoebe/keymaps/default/keymap.c12
-rw-r--r--keyboards/maxr1998/phoebe/phoebe.c2
-rw-r--r--keyboards/maxr1998/phoebe/rules.mk8
-rw-r--r--keyboards/maxr1998/pulse4k/info.json2
-rw-r--r--keyboards/maxr1998/pulse4k/keymaps/default/keymap.c13
-rw-r--r--keyboards/maxr1998/pulse4k/pulse4k.c16
-rw-r--r--keyboards/maxr1998/pulse4k/rules.mk8
-rw-r--r--keyboards/mc_76k/config.h104
-rw-r--r--keyboards/mc_76k/info.json12
-rw-r--r--keyboards/mc_76k/keymaps/default/keymap.c50
-rw-r--r--keyboards/mc_76k/keymaps/default/readme.md5
-rw-r--r--keyboards/mc_76k/keymaps/via/keymap.c50
-rw-r--r--keyboards/mc_76k/keymaps/via/readme.md1
-rw-r--r--keyboards/mc_76k/keymaps/via/rules.mk1
-rw-r--r--keyboards/mc_76k/mc_76k.c34
-rw-r--r--keyboards/mc_76k/mc_76k.h46
-rw-r--r--keyboards/mc_76k/readme.md15
-rw-r--r--keyboards/mc_76k/rules.mk32
-rw-r--r--keyboards/mechkeys/mk60/rules.mk12
-rw-r--r--keyboards/mechlovin/hannah910/config.h36
-rw-r--r--keyboards/mechlovin/hannah910/hannah910.h56
-rw-r--r--keyboards/mechlovin/hannah910/keymaps/ansi/readme.md1
-rw-r--r--keyboards/mechlovin/hannah910/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/hannah910/readme.md14
-rw-r--r--keyboards/mechlovin/hannah910/rev1/config.h6
-rw-r--r--keyboards/mechlovin/hannah910/rev1/info.json (renamed from keyboards/mechlovin/hannah910/info.json)0
-rw-r--r--keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c (renamed from keyboards/mechlovin/hannah910/keymaps/ansi/keymap.c)16
-rw-r--r--keyboards/mechlovin/hannah910/rev1/keymaps/ansi/readme.md1
-rw-r--r--keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c (renamed from keyboards/mechlovin/hannah910/keymaps/default/keymap.c)21
-rw-r--r--keyboards/mechlovin/hannah910/rev1/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/hannah910/rev1/keymaps/via/keymap.c48
-rw-r--r--keyboards/mechlovin/hannah910/rev1/keymaps/via/readme.md1
-rw-r--r--keyboards/mechlovin/hannah910/rev1/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechlovin/hannah910/rev1/readme.md15
-rw-r--r--keyboards/mechlovin/hannah910/rev1/rev1.h48
-rw-r--r--keyboards/mechlovin/hannah910/rev1/rules.mk33
-rw-r--r--keyboards/mechlovin/hannah910/rev2/config.h6
-rw-r--r--keyboards/mechlovin/hannah910/rev2/info.json87
-rw-r--r--keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c47
-rw-r--r--keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md2
-rw-r--r--keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c48
-rw-r--r--keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md2
-rw-r--r--keyboards/mechlovin/hannah910/rev2/keymaps/via/keymap.c48
-rw-r--r--keyboards/mechlovin/hannah910/rev2/keymaps/via/readme.md2
-rw-r--r--keyboards/mechlovin/hannah910/rev2/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechlovin/hannah910/rev2/readme.md19
-rw-r--r--keyboards/mechlovin/hannah910/rev2/rev2.h50
-rw-r--r--keyboards/mechlovin/hannah910/rev2/rules.mk33
-rw-r--r--keyboards/mechlovin/hannah910/rules.mk34
-rw-r--r--keyboards/mechlovin/infinityce/config.h49
-rw-r--r--keyboards/mechlovin/infinityce/infinityce.c42
-rw-r--r--keyboards/mechlovin/infinityce/infinityce.h67
-rw-r--r--keyboards/mechlovin/infinityce/info.json293
-rw-r--r--keyboards/mechlovin/infinityce/keymaps/default/keymap.c29
-rw-r--r--keyboards/mechlovin/infinityce/keymaps/default/readme.md1
-rw-r--r--keyboards/mechlovin/infinityce/keymaps/via/keymap.c53
-rw-r--r--keyboards/mechlovin/infinityce/keymaps/via/readme.md3
-rw-r--r--keyboards/mechlovin/infinityce/keymaps/via/rules.mk1
-rw-r--r--keyboards/mechlovin/infinityce/readme.md19
-rw-r--r--keyboards/mechlovin/infinityce/rules.mk32
-rw-r--r--keyboards/mechmini/v1/config.h8
-rw-r--r--keyboards/mechmini/v1/rules.mk2
-rwxr-xr-xkeyboards/mechmini/v2/rules.mk8
-rw-r--r--keyboards/mehkee96/config.h3
-rw-r--r--keyboards/mehkee96/mehkee96.c18
-rw-r--r--keyboards/mehkee96/rules.mk10
-rw-r--r--keyboards/meira/rules.mk10
-rw-r--r--keyboards/meishi/rules.mk10
-rw-r--r--keyboards/meishi2/rules.mk12
-rw-r--r--keyboards/melody96/rules.mk8
-rw-r--r--keyboards/meme/rules.mk10
-rw-r--r--keyboards/meson/rules.mk12
-rw-r--r--keyboards/miniaxe/rules.mk12
-rw-r--r--keyboards/minidox/config.h9
-rw-r--r--keyboards/minidox/eeprom-lefthand.eep2
-rw-r--r--keyboards/minidox/eeprom-righthand.eep2
-rw-r--r--keyboards/minidox/i2c.c162
-rw-r--r--keyboards/minidox/i2c.h49
-rw-r--r--keyboards/minidox/keymaps/xyverz/keymap.c4
-rw-r--r--keyboards/minidox/matrix.c307
-rw-r--r--keyboards/minidox/minidox.h5
-rw-r--r--keyboards/minidox/readme.md66
-rw-r--r--keyboards/minidox/rev1/config.h12
-rw-r--r--keyboards/minidox/rev1/rev1.h7
-rw-r--r--keyboards/minidox/rules.mk38
-rw-r--r--keyboards/minidox/serial.c228
-rw-r--r--keyboards/minidox/serial.h26
-rw-r--r--keyboards/minidox/split_util.c84
-rw-r--r--keyboards/minidox/split_util.h20
-rw-r--r--keyboards/mint60/config.h11
-rw-r--r--keyboards/mint60/i2c.c162
-rw-r--r--keyboards/mint60/i2c.h49
-rw-r--r--keyboards/mint60/keymaps/default/keymap.c28
-rw-r--r--keyboards/mint60/matrix.c343
-rw-r--r--keyboards/mint60/mint60.c27
-rw-r--r--keyboards/mint60/mint60.h19
-rw-r--r--keyboards/mint60/rules.mk23
-rw-r--r--keyboards/mint60/serial.c295
-rw-r--r--keyboards/mint60/serial.h27
-rw-r--r--keyboards/mint60/serial_config.h16
-rw-r--r--keyboards/mint60/split_util.c70
-rw-r--r--keyboards/mint60/split_util.h19
-rw-r--r--keyboards/mitosis/rules.mk8
-rw-r--r--keyboards/miuni32/rules.mk8
-rw-r--r--keyboards/model01/rules.mk12
-rw-r--r--keyboards/montsinger/rebound/config.h62
-rw-r--r--keyboards/montsinger/rebound/keymaps/curry/keymap.c63
-rw-r--r--keyboards/montsinger/rebound/keymaps/curry/rules.mk1
-rw-r--r--keyboards/montsinger/rebound/keymaps/default/keymap.c163
-rw-r--r--keyboards/montsinger/rebound/keymaps/rossman360/keymap.c55
-rwxr-xr-xkeyboards/montsinger/rebound/readme.md15
-rw-r--r--keyboards/montsinger/rebound/rebound.c1
-rw-r--r--keyboards/montsinger/rebound/rebound.h39
-rw-r--r--keyboards/montsinger/rebound/rules.mk32
-rw-r--r--keyboards/moon/rules.mk12
-rw-r--r--keyboards/mt40/rules.mk8
-rw-r--r--keyboards/mt980/rules.mk8
-rw-r--r--keyboards/mxss/config.h13
-rw-r--r--keyboards/mxss/keymaps/default/keymap.c19
-rw-r--r--keyboards/mxss/keymaps/via/config.h (renamed from keyboards/westfoxtrot/cypher/keymaps/default-iso/config.h)4
-rw-r--r--keyboards/mxss/keymaps/via/keymap.c33
-rw-r--r--keyboards/mxss/keymaps/via/rules.mk1
-rw-r--r--keyboards/mxss/mxss.c205
-rw-r--r--keyboards/mxss/mxss.h19
-rw-r--r--keyboards/mxss/mxss_frontled.c264
-rw-r--r--keyboards/mxss/mxss_frontled.h57
-rw-r--r--keyboards/mxss/readme.md7
-rw-r--r--keyboards/mxss/rgblight.c1628
-rw-r--r--keyboards/mxss/rgblight.h362
-rw-r--r--keyboards/mxss/rules.mk14
-rw-r--r--keyboards/mxss/templates/keymap.c19
-rw-r--r--keyboards/nafuda/config.h2
-rw-r--r--keyboards/naked48/rev1/config.h2
-rw-r--r--keyboards/naked48/rules.mk8
-rw-r--r--keyboards/naked60/rev1/config.h2
-rw-r--r--keyboards/naked60/rules.mk8
-rw-r--r--keyboards/naked64/rev1/config.h2
-rw-r--r--keyboards/naked64/rules.mk8
-rw-r--r--keyboards/namecard2x4/rules.mk12
-rw-r--r--keyboards/ncc1701kb/info.json12
-rw-r--r--keyboards/ncc1701kb/keymaps/brushsize/keymap.c51
-rw-r--r--keyboards/nek_type_a/rules.mk12
-rw-r--r--keyboards/newgame40/rules.mk8
-rw-r--r--keyboards/nightmare/rules.mk12
-rwxr-xr-xkeyboards/nk65/config.h5
-rw-r--r--keyboards/nomu30/rules.mk12
-rwxr-xr-xkeyboards/novelpad/rules.mk8
-rw-r--r--keyboards/noxary/220/rules.mk12
-rw-r--r--keyboards/noxary/260/rules.mk12
-rw-r--r--keyboards/noxary/268/rules.mk8
-rw-r--r--keyboards/noxary/268_2/268_2.c1
-rw-r--r--keyboards/noxary/268_2/rules.mk12
-rw-r--r--keyboards/noxary/280/280.c43
-rw-r--r--keyboards/noxary/280/keymaps/via/keymap.c118
-rw-r--r--keyboards/noxary/280/keymaps/via/readme.md1
-rw-r--r--keyboards/noxary/280/keymaps/via/rules.mk2
-rw-r--r--keyboards/noxary/280/rules.mk12
-rw-r--r--keyboards/noxary/x268/rules.mk12
-rw-r--r--keyboards/numatreus/config.h100
-rw-r--r--keyboards/numatreus/info.json12
-rw-r--r--keyboards/numatreus/keymaps/default/keymap.c60
-rw-r--r--keyboards/numatreus/keymaps/hdbx/keymap.c230
-rw-r--r--keyboards/numatreus/keymaps/hdbx/rules.mk3
-rw-r--r--keyboards/numatreus/keymaps/like_jis/config.h59
-rw-r--r--keyboards/numatreus/keymaps/like_jis/keymap.c196
-rw-r--r--keyboards/numatreus/keymaps/like_jis/rules.mk8
-rw-r--r--keyboards/numatreus/keymaps/yohewi/keymap.c61
-rw-r--r--keyboards/numatreus/numatreus.c1
-rw-r--r--keyboards/numatreus/numatreus.h20
-rw-r--r--keyboards/numatreus/readme.md13
-rw-r--r--keyboards/numatreus/rules.mk36
-rw-r--r--keyboards/ogre/ergo_single/config.h45
-rw-r--r--keyboards/ogre/ergo_single/ergo_single.c17
-rw-r--r--keyboards/ogre/ergo_single/ergo_single.h39
-rw-r--r--keyboards/ogre/ergo_single/keymaps/default/keymap.c41
-rw-r--r--keyboards/ogre/ergo_single/keymaps/default/readme.md1
-rw-r--r--keyboards/ogre/ergo_single/readme.md15
-rw-r--r--keyboards/ogre/ergo_single/rules.mk33
-rw-r--r--keyboards/ogre/ergo_split/config.h52
-rw-r--r--keyboards/ogre/ergo_split/ergo_split.c17
-rw-r--r--keyboards/ogre/ergo_split/ergo_split.h39
-rw-r--r--keyboards/ogre/ergo_split/keymaps/default/keymap.c41
-rw-r--r--keyboards/ogre/ergo_split/keymaps/default/readme.md1
-rw-r--r--keyboards/ogre/ergo_split/readme.md15
-rw-r--r--keyboards/ogre/ergo_split/rules.mk33
-rw-r--r--keyboards/ok60/rules.mk8
-rw-r--r--keyboards/omnikey_blackheart/rules.mk8
-rw-r--r--keyboards/orange75/rules.mk8
-rw-r--r--keyboards/org60/rules.mk8
-rw-r--r--keyboards/orthodox/keymaps/xyverz/keymap.c4
-rw-r--r--keyboards/orthodox/rules.mk8
-rw-r--r--keyboards/otaku_split/rev0/rules.mk12
-rw-r--r--keyboards/otaku_split/rev1/rules.mk12
-rwxr-xr-xkeyboards/paladin64/rules.mk8
-rw-r--r--keyboards/panc60/config.h4
-rw-r--r--keyboards/panc60/panc60.c34
-rw-r--r--keyboards/pancake/feather/rules.mk8
-rw-r--r--keyboards/pancake/promicro/rules.mk8
-rw-r--r--keyboards/pdxkbc/rules.mk12
-rw-r--r--keyboards/pearl/config.h3
-rw-r--r--keyboards/pearl/pearl.c34
-rw-r--r--keyboards/peiorisboards/ixora/chconf.h6
-rw-r--r--keyboards/peiorisboards/ixora/config.h2
-rw-r--r--keyboards/peiorisboards/ixora/rules.mk4
-rw-r--r--keyboards/percent/canoe/canoe.c36
-rw-r--r--keyboards/percent/canoe/config.h4
-rw-r--r--keyboards/percent/canoe/rules.mk2
-rw-r--r--keyboards/percent/skog/backlight.c211
-rw-r--r--keyboards/percent/skog/backlight_custom.h13
-rw-r--r--keyboards/percent/skog/breathing_custom.h140
-rw-r--r--keyboards/percent/skog/config.h6
-rw-r--r--keyboards/percent/skog/rules.mk4
-rw-r--r--keyboards/percent/skog/skog.c24
-rw-r--r--keyboards/percent/skog_lite/config.h6
-rw-r--r--keyboards/percent/skog_lite/info.json292
-rwxr-xr-xkeyboards/percent/skog_lite/keymaps/binman/keymap.c20
-rwxr-xr-xkeyboards/percent/skog_lite/keymaps/binman/readme.md3
-rw-r--r--keyboards/percent/skog_lite/rules.mk18
-rw-r--r--keyboards/percent/skog_lite/skog_lite.c34
-rw-r--r--keyboards/phantom/keymaps/rgbmod/rules.mk10
-rw-r--r--keyboards/phantom/rules.mk10
-rw-r--r--keyboards/pinky/rules.mk12
-rw-r--r--keyboards/plaid/rules.mk12
-rw-r--r--keyboards/planck/ez/rules.mk8
-rw-r--r--keyboards/planck/keymaps/callum/keymap.c4
-rw-r--r--keyboards/planck/keymaps/samuel/README.org952
-rw-r--r--keyboards/planck/keymaps/samuel/keymap.c228
-rw-r--r--keyboards/planck/light/rules.mk8
-rw-r--r--keyboards/planck/rev1/rules.mk8
-rw-r--r--keyboards/planck/rev2/rules.mk8
-rw-r--r--keyboards/planck/rev3/rules.mk8
-rw-r--r--keyboards/planck/rev4/rules.mk8
-rw-r--r--keyboards/planck/rev5/rules.mk8
-rw-r--r--keyboards/planck/rev6/rules.mk8
-rw-r--r--keyboards/playkbtw/ca66/rules.mk6
-rw-r--r--keyboards/playkbtw/pk60/rules.mk8
-rw-r--r--keyboards/preonic/keymaps/alfrdmalr/config.h40
-rw-r--r--keyboards/preonic/keymaps/alfrdmalr/keymap.c192
-rw-r--r--keyboards/preonic/keymaps/alfrdmalr/readme.md80
-rw-r--r--keyboards/preonic/keymaps/alfrdmalr/rules.mk3
-rw-r--r--keyboards/preonic/keymaps/mverteuil/config.h39
-rw-r--r--keyboards/preonic/keymaps/mverteuil/keymap.c508
-rw-r--r--keyboards/preonic/keymaps/mverteuil/readme.md2
-rw-r--r--keyboards/preonic/keymaps/mverteuil/rules.mk5
-rw-r--r--keyboards/preonic/keymaps/mverteuil_2x2u/config.h39
-rw-r--r--keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c413
-rw-r--r--keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk6
-rw-r--r--keyboards/preonic/rev1/rules.mk8
-rw-r--r--keyboards/preonic/rev2/rules.mk8
-rw-r--r--keyboards/preonic/rev3/rules.mk8
-rw-r--r--keyboards/primekb/prime_e/config.h2
-rw-r--r--keyboards/primekb/prime_e/rules.mk12
-rw-r--r--keyboards/primekb/prime_l/rules.mk12
-rw-r--r--keyboards/primekb/prime_m/rules.mk12
-rw-r--r--keyboards/primekb/prime_o/rules.mk12
-rw-r--r--keyboards/primekb/prime_r/rules.mk8
-rw-r--r--keyboards/projectkb/alice/chconf.h4
-rw-r--r--keyboards/projectkb/alice/config.h6
-rw-r--r--keyboards/projectkb/alice/rules.mk4
-rw-r--r--keyboards/puck/rules.mk8
-rw-r--r--keyboards/quantrik/kyuu/rules.mk12
-rw-r--r--keyboards/qwertyydox/rules.mk8
-rw-r--r--keyboards/rabbit/rabbit68/rules.mk12
-rw-r--r--keyboards/redox/rules.mk10
-rw-r--r--keyboards/redox_w/rules.mk8
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/rules.mk12
-rwxr-xr-xkeyboards/redscarf_iiplus/verc/rules.mk12
-rwxr-xr-xkeyboards/reviung34/rules.mk12
-rw-r--r--keyboards/reviung39/rules.mk12
-rw-r--r--keyboards/rgbkb/sol/config.h2
-rw-r--r--keyboards/rgbkb/sol/keymaps/default/rules.mk2
-rw-r--r--keyboards/rgbkb/sol/rev1/rules.mk8
-rw-r--r--keyboards/rgbkb/sol/rev2/rules.mk2
-rw-r--r--keyboards/rgbkb/zen/rules.mk8
-rw-r--r--keyboards/rgbkb/zygomorph/rev1/config.h2
-rw-r--r--keyboards/rgbkb/zygomorph/rules.mk12
-rw-r--r--keyboards/runner3680/3x6/config.h2
-rw-r--r--keyboards/runner3680/3x7/config.h2
-rw-r--r--keyboards/runner3680/3x8/config.h2
-rw-r--r--keyboards/runner3680/4x6/config.h2
-rw-r--r--keyboards/runner3680/4x7/config.h2
-rw-r--r--keyboards/runner3680/4x8/config.h2
-rw-r--r--keyboards/runner3680/5x6/config.h2
-rw-r--r--keyboards/runner3680/5x7/config.h2
-rw-r--r--keyboards/runner3680/5x8/config.h2
-rw-r--r--keyboards/runner3680/rules.mk12
-rw-r--r--keyboards/s7_elephant/rules.mk8
-rw-r--r--keyboards/scarletbandana/rules.mk10
-rw-r--r--keyboards/sck/neiso/rules.mk2
-rw-r--r--keyboards/sck/osa/rules.mk12
-rw-r--r--keyboards/scythe/config.h2
-rw-r--r--keyboards/scythe/rules.mk12
-rw-r--r--keyboards/sentraq/number_pad/rules.mk12
-rw-r--r--keyboards/sentraq/s60_x/default/rules.mk6
-rw-r--r--keyboards/sentraq/s60_x/rgb/rules.mk8
-rw-r--r--keyboards/sentraq/s65_plus/rules.mk6
-rw-r--r--keyboards/sentraq/s65_x/rules.mk6
-rw-r--r--keyboards/setta21/rev1/config.h2
-rw-r--r--keyboards/shiro/rules.mk12
-rw-r--r--keyboards/signum/3_0/elitec/config.h2
-rw-r--r--keyboards/signum/3_0/elitec/rules.mk8
-rw-r--r--keyboards/singa/config.h4
-rw-r--r--keyboards/singa/rules.mk2
-rw-r--r--keyboards/singa/singa.c34
-rw-r--r--keyboards/sirius/uni660/config.h78
-rw-r--r--keyboards/sirius/uni660/info.json12
-rw-r--r--keyboards/sirius/uni660/keymaps/default/keymap.c11
-rw-r--r--keyboards/sirius/uni660/keymaps/via/keymap.c35
-rw-r--r--keyboards/sirius/uni660/keymaps/via/rules.mk1
-rw-r--r--keyboards/sirius/uni660/matrix.c160
-rw-r--r--keyboards/sirius/uni660/readme.md13
-rw-r--r--keyboards/sirius/uni660/rules.mk32
-rw-r--r--keyboards/sirius/uni660/uni660.c35
-rw-r--r--keyboards/sirius/uni660/uni660.h61
-rw-r--r--keyboards/sirius/unigo66/config.h5
-rw-r--r--keyboards/sirius/unigo66/rules.mk8
-rw-r--r--keyboards/sixkeyboard/rules.mk8
-rw-r--r--keyboards/smk60/rules.mk10
-rw-r--r--keyboards/snagpad/rules.mk8
-rw-r--r--keyboards/snampad/config.h2
-rw-r--r--keyboards/snampad/rules.mk12
-rw-r--r--keyboards/southpole/rules.mk8
-rw-r--r--keyboards/spacetime/rules.mk12
-rw-r--r--keyboards/speedo/rules.mk10
-rw-r--r--keyboards/standaside/config.h2
-rw-r--r--keyboards/standaside/rules.mk12
-rwxr-xr-xkeyboards/staryu/rules.mk12
-rw-r--r--keyboards/stella/rules.mk12
-rw-r--r--keyboards/subatomic/rules.mk8
-rw-r--r--keyboards/suihankey/rules.mk12
-rw-r--r--keyboards/switchplate/README.md4
-rw-r--r--keyboards/switchplate/southpaw_fullsize/config.h143
-rw-r--r--keyboards/switchplate/southpaw_fullsize/info.json242
-rw-r--r--keyboards/switchplate/southpaw_fullsize/keymaps/default/keymap.c42
-rw-r--r--keyboards/switchplate/southpaw_fullsize/keymaps/default/readme.md3
-rw-r--r--keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/keymap.c43
-rw-r--r--keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/readme.md3
-rw-r--r--keyboards/switchplate/southpaw_fullsize/readme.md15
-rw-r--r--keyboards/switchplate/southpaw_fullsize/rules.mk32
-rw-r--r--keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c51
-rw-r--r--keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.h70
-rwxr-xr-xkeyboards/sx60/rules.mk8
-rw-r--r--keyboards/tada68/keymaps/iso-nor/rules.mk8
-rw-r--r--keyboards/tada68/keymaps/iso-uk/rules.mk8
-rw-r--r--keyboards/tada68/keymaps/rgb/rules.mk8
-rw-r--r--keyboards/tanuki/config.h2
-rw-r--r--keyboards/tanuki/rules.mk12
-rw-r--r--keyboards/tartan/config.h248
-rw-r--r--keyboards/tartan/info.json34
-rw-r--r--keyboards/tartan/keymaps/default/keymap.c34
-rw-r--r--keyboards/tartan/keymaps/default/readme.md1
-rw-r--r--keyboards/tartan/readme.md25
-rw-r--r--keyboards/tartan/rules.mk41
-rw-r--r--keyboards/tartan/tartan.c16
-rw-r--r--keyboards/tartan/tartan.h111
-rw-r--r--keyboards/tartan/usbconfig.h383
-rw-r--r--keyboards/telophase/rules.mk8
-rwxr-xr-xkeyboards/tetris/rules.mk8
-rw-r--r--keyboards/tgr/alice/alice.c20
-rw-r--r--keyboards/tgr/alice/config.h3
-rw-r--r--keyboards/tgr/alice/rules.mk2
-rw-r--r--keyboards/tgr/jane/config.h3
-rw-r--r--keyboards/tgr/jane/jane.c34
-rw-r--r--keyboards/thevankeyboards/bananasplit/rules.mk8
-rw-r--r--keyboards/thevankeyboards/caravan/rules.mk8
-rw-r--r--keyboards/thevankeyboards/minivan/rules.mk8
-rw-r--r--keyboards/thevankeyboards/roadkit/rules.mk8
-rw-r--r--keyboards/tkc1800/rules.mk8
-rw-r--r--keyboards/tmo50/config.h4
-rw-r--r--keyboards/tmo50/keymaps/via/keymap.c52
-rw-r--r--keyboards/tmo50/keymaps/via/readme.md1
-rw-r--r--keyboards/tmo50/keymaps/via/rules.mk1
-rw-r--r--keyboards/tmo50/rules.mk12
-rw-r--r--keyboards/toad/rules.mk8
-rw-r--r--keyboards/tokyo60/rules.mk8
-rw-r--r--keyboards/touchpad/rules.mk8
-rw-r--r--keyboards/treadstone32/config.h2
-rw-r--r--keyboards/treadstone32/rules.mk8
-rw-r--r--keyboards/treadstone48/rev1/rules.mk3
-rw-r--r--keyboards/treasure/type9/rules.mk12
-rw-r--r--keyboards/uk78/rules.mk8
-rw-r--r--keyboards/unikorn/config.h4
-rw-r--r--keyboards/unikorn/unikorn.c34
-rw-r--r--keyboards/ut472/rules.mk10
-rw-r--r--keyboards/uzu42/rev1/config.h2
-rw-r--r--keyboards/uzu42/rules.mk8
-rw-r--r--keyboards/v60_type_r/rules.mk10
-rw-r--r--keyboards/vinta/chconf.h6
-rw-r--r--keyboards/vinta/rules.mk6
-rw-r--r--keyboards/vision_division/rules.mk8
-rw-r--r--keyboards/vitamins_included/rev1/config.h2
-rw-r--r--keyboards/vitamins_included/rev2/config.h2
-rw-r--r--keyboards/vitamins_included/rules.mk8
-rw-r--r--keyboards/vn66/rules.mk12
-rw-r--r--keyboards/waldo/rules.mk8
-rw-r--r--keyboards/westfoxtrot/aanzee/rules.mk12
-rw-r--r--keyboards/westfoxtrot/cyclops/rules.mk12
-rw-r--r--keyboards/westfoxtrot/cypher/cypher.c56
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/config.h (renamed from keyboards/westfoxtrot/cypher/config.h)2
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/info.json (renamed from keyboards/westfoxtrot/cypher/info.json)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/default/keymap.c (renamed from keyboards/westfoxtrot/cypher/keymaps/default/keymap.c)28
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/default/readme.md (renamed from keyboards/westfoxtrot/cypher/keymaps/default/readme.md)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/default_iso/keymap.c (renamed from keyboards/westfoxtrot/cypher/keymaps/default-iso/keymap.c)28
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/default_iso/readme.md (renamed from keyboards/westfoxtrot/cypher/keymaps/default-iso/readme.md)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/config.h (renamed from keyboards/westfoxtrot/cypher/keymaps/kwer/config.h)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/keymap.c (renamed from keyboards/westfoxtrot/cypher/keymaps/kwer/keymap.c)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/readme.md (renamed from keyboards/westfoxtrot/cypher/keymaps/kwer/readme.md)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/rules.mk (renamed from keyboards/westfoxtrot/cypher/keymaps/kwer/rules.mk)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/readme.md (renamed from keyboards/westfoxtrot/cypher/readme.md)10
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/rev1.c31
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/rev1.h (renamed from keyboards/westfoxtrot/cypher/cypher.h)0
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/rules.mk (renamed from keyboards/westfoxtrot/cypher/rules.mk)12
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/config.h81
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/info.json110
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/default/keymap.c37
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/default/readme.md1
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/keymap.c37
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/readme.md1
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/max/keymap.c49
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/keymaps/max/readme.md1
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/readme.md13
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/rev5.c31
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/rev5.h48
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/rules.mk33
-rw-r--r--keyboards/whitefox/chconf.h4
-rw-r--r--keyboards/whitefox/info.json74
-rw-r--r--keyboards/whitefox/rules.mk5
-rw-r--r--keyboards/whitefox/whitefox.h32
-rw-r--r--keyboards/wilba_tech/rama_works_koyu/config.h5
-rw-r--r--keyboards/wilba_tech/rama_works_koyu/info.json1
-rw-r--r--keyboards/wilba_tech/rama_works_koyu/rules.mk8
-rw-r--r--keyboards/wilba_tech/rama_works_m10_b/rules.mk10
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/config.h3
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/info.json1
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/rules.mk8
-rw-r--r--keyboards/wilba_tech/rama_works_m6_a/config.h3
-rw-r--r--keyboards/wilba_tech/rama_works_m6_a/rules.mk8
-rw-r--r--keyboards/wilba_tech/rama_works_m6_b/config.h3
-rw-r--r--keyboards/wilba_tech/rama_works_m6_b/rules.mk8
-rw-r--r--keyboards/wilba_tech/rama_works_u80_a/config.h3
-rw-r--r--keyboards/wilba_tech/rama_works_u80_a/info.json1
-rw-r--r--keyboards/wilba_tech/rama_works_u80_a/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt60_a/config.h2
-rw-r--r--keyboards/wilba_tech/wt60_a/info.json1
-rw-r--r--keyboards/wilba_tech/wt60_a/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt60_b/config.h118
-rw-r--r--keyboards/wilba_tech/wt60_b/info.json12
-rw-r--r--keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c38
-rw-r--r--keyboards/wilba_tech/wt60_b/keymaps/via/keymap.c38
-rw-r--r--keyboards/wilba_tech/wt60_b/keymaps/via/rules.mk1
-rw-r--r--keyboards/wilba_tech/wt60_b/readme.md18
-rw-r--r--keyboards/wilba_tech/wt60_b/rules.mk46
-rw-r--r--keyboards/wilba_tech/wt60_b/wt60_b.c1
-rw-r--r--keyboards/wilba_tech/wt60_b/wt60_b.h37
-rw-r--r--keyboards/wilba_tech/wt60_bx/config.h118
-rw-r--r--keyboards/wilba_tech/wt60_bx/info.json12
-rw-r--r--keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c38
-rw-r--r--keyboards/wilba_tech/wt60_bx/keymaps/via/keymap.c38
-rw-r--r--keyboards/wilba_tech/wt60_bx/keymaps/via/rules.mk1
-rw-r--r--keyboards/wilba_tech/wt60_bx/readme.md18
-rw-r--r--keyboards/wilba_tech/wt60_bx/rules.mk46
-rw-r--r--keyboards/wilba_tech/wt60_bx/wt60_bx.c1
-rw-r--r--keyboards/wilba_tech/wt60_bx/wt60_bx.h37
-rw-r--r--keyboards/wilba_tech/wt60_d/info.json1
-rw-r--r--keyboards/wilba_tech/wt60_d/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt65_a/config.h2
-rw-r--r--keyboards/wilba_tech/wt65_a/info.json1
-rw-r--r--keyboards/wilba_tech/wt65_a/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt65_b/config.h2
-rw-r--r--keyboards/wilba_tech/wt65_b/info.json1
-rw-r--r--keyboards/wilba_tech/wt65_b/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt69_a/info.json1
-rw-r--r--keyboards/wilba_tech/wt69_a/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt75_a/config.h2
-rw-r--r--keyboards/wilba_tech/wt75_a/info.json1
-rw-r--r--keyboards/wilba_tech/wt75_a/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt75_b/config.h2
-rw-r--r--keyboards/wilba_tech/wt75_b/info.json1
-rw-r--r--keyboards/wilba_tech/wt75_b/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt75_c/config.h2
-rw-r--r--keyboards/wilba_tech/wt75_c/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt80_a/config.h3
-rw-r--r--keyboards/wilba_tech/wt80_a/info.json1
-rw-r--r--keyboards/wilba_tech/wt80_a/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt8_a/info.json1
-rw-r--r--keyboards/wilba_tech/wt8_a/rules.mk10
-rw-r--r--keyboards/wilba_tech/wt_main.c6
-rw-r--r--keyboards/wilba_tech/wt_mono_backlight.c6
-rw-r--r--keyboards/wilba_tech/wt_rgb_backlight.c72
-rw-r--r--keyboards/wilba_tech/zeal60/config.h5
-rw-r--r--keyboards/wilba_tech/zeal60/info.json1
-rw-r--r--keyboards/wilba_tech/zeal60/rules.mk8
-rw-r--r--keyboards/wilba_tech/zeal65/config.h3
-rw-r--r--keyboards/wilba_tech/zeal65/info.json1
-rw-r--r--keyboards/wilba_tech/zeal65/rules.mk8
-rw-r--r--keyboards/winkeyless/bface/bface.c34
-rw-r--r--keyboards/winkeyless/bface/config.h9
-rw-r--r--keyboards/winkeyless/bface/rules.mk2
-rw-r--r--keyboards/winkeyless/bmini/bmini.c20
-rw-r--r--keyboards/winkeyless/bmini/config.h8
-rw-r--r--keyboards/winkeyless/bmini/readme.md8
-rw-r--r--keyboards/winkeyless/bmini/rules.mk2
-rw-r--r--keyboards/winkeyless/bminiex/backlight.c211
-rw-r--r--keyboards/winkeyless/bminiex/backlight_custom.h13
-rw-r--r--keyboards/winkeyless/bminiex/bminiex.c26
-rw-r--r--keyboards/winkeyless/bminiex/breathing_custom.h140
-rw-r--r--keyboards/winkeyless/bminiex/config.h1
-rw-r--r--keyboards/winkeyless/bminiex/rules.mk3
-rw-r--r--keyboards/winkeyless/readme.md12
-rw-r--r--keyboards/wsk/jerkin/config.h46
-rw-r--r--keyboards/wsk/jerkin/info.json12
-rw-r--r--keyboards/wsk/jerkin/jerkin.c1
-rw-r--r--keyboards/wsk/jerkin/jerkin.h13
-rw-r--r--keyboards/wsk/jerkin/keymaps/default/keymap.c65
-rw-r--r--keyboards/wsk/jerkin/readme.md15
-rw-r--r--keyboards/wsk/jerkin/rules.mk29
-rw-r--r--keyboards/wsk/tkl30/config.h48
-rw-r--r--keyboards/wsk/tkl30/info.json12
-rw-r--r--keyboards/wsk/tkl30/keymaps/default/keymap.c24
-rw-r--r--keyboards/wsk/tkl30/readme.md16
-rw-r--r--keyboards/wsk/tkl30/rules.mk32
-rw-r--r--keyboards/wsk/tkl30/tkl30.c1
-rw-r--r--keyboards/wsk/tkl30/tkl30.h14
-rw-r--r--keyboards/xbows/woody/rules.mk2
-rw-r--r--keyboards/xd004/v1/rules.mk6
-rw-r--r--keyboards/xd60/rev2/rules.mk8
-rw-r--r--keyboards/xd60/rev3/rules.mk8
-rw-r--r--keyboards/xd75/keymaps/atomic_style_jp/keymap.c81
-rw-r--r--keyboards/xd75/keymaps/atomic_style_jp/readme.md4
-rw-r--r--keyboards/xd75/rules.mk10
-rw-r--r--keyboards/xd84/rules.mk12
-rw-r--r--keyboards/xd87/rules.mk12
-rw-r--r--keyboards/xd96/rules.mk12
-rw-r--r--keyboards/xelus/dawn60/config.h3
-rw-r--r--keyboards/xelus/dawn60/dawn60.h4
-rw-r--r--keyboards/xelus/dawn60/info.json77
-rw-r--r--keyboards/xelus/dawn60/keymaps/default/keymap.c16
-rw-r--r--keyboards/xelus/dawn60/keymaps/via/keymap.c16
-rw-r--r--keyboards/xmmx/rules.mk8
-rw-r--r--keyboards/xw60/rules.mk8
-rw-r--r--keyboards/yatara/drink_me/config.h37
-rw-r--r--keyboards/yatara/drink_me/drink_me.c17
-rw-r--r--keyboards/yatara/drink_me/drink_me.h25
-rw-r--r--keyboards/yatara/drink_me/info.json34
-rw-r--r--keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c10
-rw-r--r--keyboards/yatara/drink_me/keymaps/caterpillar/readme.md9
-rw-r--r--keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c10
-rw-r--r--keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md13
-rw-r--r--keyboards/yatara/drink_me/keymaps/default/keymap.c10
-rw-r--r--keyboards/yatara/drink_me/keymaps/default/readme.md11
-rw-r--r--keyboards/yatara/drink_me/keymaps/dormouse/keymap.c10
-rw-r--r--keyboards/yatara/drink_me/keymaps/dormouse/readme.md11
-rw-r--r--keyboards/yatara/drink_me/keymaps/dormouse/rules.mk1
-rw-r--r--keyboards/yatara/drink_me/keymaps/queen/config.h1
-rw-r--r--keyboards/yatara/drink_me/keymaps/queen/keymap.c67
-rw-r--r--keyboards/yatara/drink_me/keymaps/queen/readme.md20
-rw-r--r--keyboards/yatara/drink_me/keymaps/queen/rules.mk2
-rw-r--r--keyboards/yatara/drink_me/keymaps/via/keymap.c28
-rw-r--r--keyboards/yatara/drink_me/keymaps/via/readme.md7
-rw-r--r--keyboards/yatara/drink_me/keymaps/via/rules.mk2
-rw-r--r--keyboards/yatara/drink_me/readme.md17
-rw-r--r--keyboards/yatara/drink_me/rules.mk32
-rw-r--r--keyboards/yd60mq/rules.mk8
-rw-r--r--keyboards/yd60mq/yd60mq.c1
-rw-r--r--keyboards/yd68/rules.mk12
-rw-r--r--keyboards/ymd75/backlight.c216
-rw-r--r--keyboards/ymd75/backlight_custom.h15
-rw-r--r--keyboards/ymd75/breathing_custom.h140
-rw-r--r--keyboards/ymd75/config.h6
-rw-r--r--keyboards/ymd75/rules.mk6
-rw-r--r--keyboards/ymd75/ymd75.c22
-rw-r--r--keyboards/ymd96/backlight.c214
-rw-r--r--keyboards/ymd96/backlight_custom.h15
-rw-r--r--keyboards/ymd96/breathing_custom.h140
-rw-r--r--keyboards/ymd96/config.h8
-rw-r--r--keyboards/ymd96/rules.mk3
-rw-r--r--keyboards/ymd96/ymd96.c24
-rw-r--r--keyboards/ymdk/bface/bface.c26
-rw-r--r--keyboards/ymdk/bface/config.h2
-rw-r--r--keyboards/ymdk/bface/rules.mk3
-rw-r--r--keyboards/ymdk_np21/backlight.c213
-rw-r--r--keyboards/ymdk_np21/backlight_custom.h15
-rw-r--r--keyboards/ymdk_np21/breathing_custom.h140
-rw-r--r--keyboards/ymdk_np21/config.h10
-rw-r--r--keyboards/ymdk_np21/rules.mk3
-rw-r--r--keyboards/ymdk_np21/ymdk_np21.c22
-rw-r--r--keyboards/yosino58/rules.mk8
-rw-r--r--keyboards/z150_blackheart/rules.mk8
-rw-r--r--keyboards/zinc/keymaps/default/rules.mk8
-rw-r--r--keyboards/zinc/rules.mk8
-rw-r--r--keyboards/zj68/rules.mk8
-rwxr-xr-xkeyboards/zlant/rules.mk8
1395 files changed, 24852 insertions, 16551 deletions
diff --git a/keyboards/1upkeyboards/1up60hse/config.h b/keyboards/1upkeyboards/1up60hse/config.h
index 9ab969797..e2de955c4 100644
--- a/keyboards/1upkeyboards/1up60hse/config.h
+++ b/keyboards/1upkeyboards/1up60hse/config.h
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x0000
+#define VENDOR_ID 0x6F75 // OU
+#define PRODUCT_ID 0x6873
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT 1up60hse
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/via/keymap.c b/keyboards/1upkeyboards/1up60hse/keymaps/via/keymap.c
new file mode 100644
index 000000000..cd4ea637a
--- /dev/null
+++ b/keyboards/1upkeyboards/1up60hse/keymaps/via/keymap.c
@@ -0,0 +1,91 @@
+/* Copyright 2018 MechMerlin
+ * Copyright 2018 Logan Huskins
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
+ * |-----------------------------------------------------------------------------------------+
+ * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | GUI | Alt | Space | Alt | GUI | L1 | Ctrl |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [0] = LAYOUT_60_ansi(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
+ ),
+
+ /* Function
+ * ,-----------------------------------------------------------------------------------------.
+ * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | Up | | | | | | | |PrtSc|ScrLk|Pause| |
+ * |-----------------------------------------------------------------------------------------+
+ * | |Left |Down |Right| | | | | | Ins |Home |PgUp | |
+ * |-----------------------------------------------------------------------------------------+
+ * | |VolUp|VolDn|VolMu| | | | | | End |PgDn | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | L2 | | |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [1] = LAYOUT_60_ansi(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
+ KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
+ ),
+
+ /* RGB
+ * ,-----------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | Reset |
+ * |-----------------------------------------------------------------------------------------+
+ * | BL Tog |BLInc|BLDec|BLStp| | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | RGB Tog |Mode |Hue I|Sat I|Val I|Spd I|Plain|Breat|Rnbow|Swirl| | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | |RMode|Hue D|Sat D|Val D|Spd D|Snake|Knigh|Xmas |Gradi| | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [2] = LAYOUT_60_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [3] = LAYOUT_60_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+};
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/via/readme.md b/keyboards/1upkeyboards/1up60hse/keymaps/via/readme.md
new file mode 100644
index 000000000..3eca32076
--- /dev/null
+++ b/keyboards/1upkeyboards/1up60hse/keymaps/via/readme.md
@@ -0,0 +1 @@
+# 1up60hse via keymap
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk
new file mode 100644
index 000000000..6305f94a3
--- /dev/null
+++ b/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+MOUSEKEY_ENABLE = no \ No newline at end of file
diff --git a/keyboards/1upkeyboards/1up60hse/rules.mk b/keyboards/1upkeyboards/1up60hse/rules.mk
index 09caf0045..bce414e25 100644
--- a/keyboards/1upkeyboards/1up60hse/rules.mk
+++ b/keyboards/1upkeyboards/1up60hse/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
EXTRAFLAGS += -flto
LAYOUTS = 60_ansi
diff --git a/keyboards/1upkeyboards/1up60hte/config.h b/keyboards/1upkeyboards/1up60hte/config.h
index bcf6329f7..8c4d2fc30 100644
--- a/keyboards/1upkeyboards/1up60hte/config.h
+++ b/keyboards/1upkeyboards/1up60hte/config.h
@@ -21,8 +21,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
+#define VENDOR_ID 0x6F75 // OU
+#define PRODUCT_ID 0x6874 // HT
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT 1up60hte
diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c
new file mode 100644
index 000000000..ecd5a9040
--- /dev/null
+++ b/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c
@@ -0,0 +1,47 @@
+/*
+Copyright 2020 MechMerlin
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_tsangan(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL),
+
+ [1] = LAYOUT_tsangan(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_tsangan(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [3] = LAYOUT_tsangan(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk
new file mode 100644
index 000000000..bee21da52
--- /dev/null
+++ b/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+MOUSEKEY_ENABLE = no \ No newline at end of file
diff --git a/keyboards/1upkeyboards/1up60hte/rules.mk b/keyboards/1upkeyboards/1up60hte/rules.mk
index d2bedea1b..048407bed 100644
--- a/keyboards/1upkeyboards/1up60hte/rules.mk
+++ b/keyboards/1upkeyboards/1up60hte/rules.mk
@@ -14,15 +14,16 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
+LTO_ENABLE = yes
LAYOUTS = 60_hhkb
diff --git a/keyboards/1upkeyboards/1up60rgb/config.h b/keyboards/1upkeyboards/1up60rgb/config.h
index 6cf5b6904..46e08a516 100644
--- a/keyboards/1upkeyboards/1up60rgb/config.h
+++ b/keyboards/1upkeyboards/1up60rgb/config.h
@@ -3,8 +3,8 @@
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
+#define VENDOR_ID 0x6F75 // OU
+#define PRODUCT_ID 0x7267 // RG
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT 1UP RGB Underglow PCB
diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/via/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/via/keymap.c
new file mode 100644
index 000000000..1ff6ef5b4
--- /dev/null
+++ b/keyboards/1upkeyboards/1up60rgb/keymaps/via/keymap.c
@@ -0,0 +1,34 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT,
+ KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
+
+ [1] = LAYOUT_all(
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+
+};
+
diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60rgb/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/1upkeyboards/1up60rgb/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/1up60rgb/rules.mk b/keyboards/1upkeyboards/1up60rgb/rules.mk
index 98a1e93a1..24f737398 100644
--- a/keyboards/1upkeyboards/1up60rgb/rules.mk
+++ b/keyboards/1upkeyboards/1up60rgb/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/1upkeyboards/super16/rules.mk b/keyboards/1upkeyboards/super16/rules.mk
index 07a403cc1..3a3cee8c6 100644
--- a/keyboards/1upkeyboards/super16/rules.mk
+++ b/keyboards/1upkeyboards/super16/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x4 numpad_4x4
diff --git a/keyboards/2_milk/rules.mk b/keyboards/2_milk/rules.mk
index 57c6d32c8..4e6c5f703 100644
--- a/keyboards/2_milk/rules.mk
+++ b/keyboards/2_milk/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/2key2crawl/rules.mk b/keyboards/2key2crawl/rules.mk
index c7bacab79..e6ef0a288 100644
--- a/keyboards/2key2crawl/rules.mk
+++ b/keyboards/2key2crawl/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/30wer/rules.mk b/keyboards/30wer/rules.mk
index 1aeca9a54..9a80d5a18 100644
--- a/keyboards/30wer/rules.mk
+++ b/keyboards/30wer/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/40percentclub/25/rules.mk b/keyboards/40percentclub/25/rules.mk
index 3321a8402..483619f18 100644
--- a/keyboards/40percentclub/25/rules.mk
+++ b/keyboards/40percentclub/25/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Enable generic behavior for split boards
SPLIT_KEYBOARD = yes
diff --git a/keyboards/40percentclub/4x4/rules.mk b/keyboards/40percentclub/4x4/rules.mk
index c653c6753..c4257a070 100644
--- a/keyboards/40percentclub/4x4/rules.mk
+++ b/keyboards/40percentclub/4x4/rules.mk
@@ -14,21 +14,21 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16
diff --git a/keyboards/40percentclub/5x5/rules.mk b/keyboards/40percentclub/5x5/rules.mk
index d8b82248c..ec0f656d0 100644
--- a/keyboards/40percentclub/5x5/rules.mk
+++ b/keyboards/40percentclub/5x5/rules.mk
@@ -14,21 +14,21 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x5 ortho_5x10 ortho_5x15
diff --git a/keyboards/40percentclub/6lit/rules.mk b/keyboards/40percentclub/6lit/rules.mk
index db09b6c5f..4faa9610b 100644
--- a/keyboards/40percentclub/6lit/rules.mk
+++ b/keyboards/40percentclub/6lit/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Enable generic behavior for split boards
SPLIT_KEYBOARD = yes
diff --git a/keyboards/40percentclub/foobar/rules.mk b/keyboards/40percentclub/foobar/rules.mk
index 4b77d4cdb..f378e39b6 100644
--- a/keyboards/40percentclub/foobar/rules.mk
+++ b/keyboards/40percentclub/foobar/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Enable generic behavior for split boards
SPLIT_KEYBOARD = yes
diff --git a/keyboards/40percentclub/gherkin/rules.mk b/keyboards/40percentclub/gherkin/rules.mk
index 190aea355..d8c4894a8 100644
--- a/keyboards/40percentclub/gherkin/rules.mk
+++ b/keyboards/40percentclub/gherkin/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/40percentclub/half_n_half/rules.mk b/keyboards/40percentclub/half_n_half/rules.mk
index 62d9e37ad..98b292470 100644
--- a/keyboards/40percentclub/half_n_half/rules.mk
+++ b/keyboards/40percentclub/half_n_half/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Enable generic behavior for split boards
SPLIT_KEYBOARD = yes
diff --git a/keyboards/40percentclub/i75/rules.mk b/keyboards/40percentclub/i75/rules.mk
index 6f79143a1..e99830b85 100644
--- a/keyboards/40percentclub/i75/rules.mk
+++ b/keyboards/40percentclub/i75/rules.mk
@@ -1,10 +1,10 @@
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -12,12 +12,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x15
DEFAULT_FOLDER = 40percentclub/i75/promicro
diff --git a/keyboards/40percentclub/luddite/config.h b/keyboards/40percentclub/luddite/config.h
index 36bda0614..005cb7a70 100644
--- a/keyboards/40percentclub/luddite/config.h
+++ b/keyboards/40percentclub/luddite/config.h
@@ -19,6 +19,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* number of backlight levels */
#define BACKLIGHT_PIN B5
#ifdef BACKLIGHT_PIN
diff --git a/keyboards/40percentclub/luddite/rules.mk b/keyboards/40percentclub/luddite/rules.mk
index 02e0abe9a..6da5cd05a 100644
--- a/keyboards/40percentclub/luddite/rules.mk
+++ b/keyboards/40percentclub/luddite/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c b/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c
index 546f862a6..eb281f5f1 100644
--- a/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c
+++ b/keyboards/40percentclub/mf68/keymaps/emdarcher/keymap.c
@@ -48,8 +48,6 @@ void led_set_user(uint8_t usb_led){
} else {
//set to Hi-Z
setPinInput(B0);
- writePinLow(B0);
setPinInput(D5);
- writePinLow(D5);
}
}
diff --git a/keyboards/40percentclub/mf68/rules.mk b/keyboards/40percentclub/mf68/rules.mk
index 1113d34a2..65d187035 100644
--- a/keyboards/40percentclub/mf68/rules.mk
+++ b/keyboards/40percentclub/mf68/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/40percentclub/nano/config.h b/keyboards/40percentclub/nano/config.h
index 5eb65c74a..8ee6963e4 100644
--- a/keyboards/40percentclub/nano/config.h
+++ b/keyboards/40percentclub/nano/config.h
@@ -50,9 +50,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
}
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
-//#define DIODE_DIRECTION CUSTOM_MATRIX
-
/* ws2812 RGB LED */
#define RGB_DI_PIN D3
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/40percentclub/nano/rules.mk b/keyboards/40percentclub/nano/rules.mk
index d55a40889..e9658c4b5 100644
--- a/keyboards/40percentclub/nano/rules.mk
+++ b/keyboards/40percentclub/nano/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/40percentclub/nein/rules.mk b/keyboards/40percentclub/nein/rules.mk
index 7805bac17..47742c4b4 100644
--- a/keyboards/40percentclub/nein/rules.mk
+++ b/keyboards/40percentclub/nein/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/40percentclub/nori/rules.mk b/keyboards/40percentclub/nori/rules.mk
index 75aa26e49..e9b24fc92 100644
--- a/keyboards/40percentclub/nori/rules.mk
+++ b/keyboards/40percentclub/nori/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12
diff --git a/keyboards/40percentclub/tomato/rules.mk b/keyboards/40percentclub/tomato/rules.mk
index a3e442e09..312134b7c 100644
--- a/keyboards/40percentclub/tomato/rules.mk
+++ b/keyboards/40percentclub/tomato/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk
index 043a62906..9d21750b4 100644
--- a/keyboards/40percentclub/ut47/rules.mk
+++ b/keyboards/40percentclub/ut47/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/6ball/rules.mk b/keyboards/6ball/rules.mk
index 05a642e6e..e4f7093f7 100644
--- a/keyboards/6ball/rules.mk
+++ b/keyboards/6ball/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/7skb/rev1/config.h b/keyboards/7skb/rev1/config.h
index 01b1ef4a1..b1096c4d6 100644
--- a/keyboards/7skb/rev1/config.h
+++ b/keyboards/7skb/rev1/config.h
@@ -34,6 +34,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B5 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/8pack/rules.mk b/keyboards/8pack/rules.mk
index 625f8b201..4ed443daa 100644
--- a/keyboards/8pack/rules.mk
+++ b/keyboards/8pack/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/9key/rules.mk b/keyboards/9key/rules.mk
index 5e6e882e9..b6c0c73be 100644
--- a/keyboards/9key/rules.mk
+++ b/keyboards/9key/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/abstract/ellipse/rev1/config.h b/keyboards/abstract/ellipse/rev1/config.h
index 36a4fc40f..15606f3d4 100644
--- a/keyboards/abstract/ellipse/rev1/config.h
+++ b/keyboards/abstract/ellipse/rev1/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F0, B6, B5 }
#define UNUSED_PINS { B0, D0, D1, D2, D4, D6, D7, F1, F4, F5, F6, F7 }
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN C6
diff --git a/keyboards/abstract/ellipse/rev1/rules.mk b/keyboards/abstract/ellipse/rev1/rules.mk
index 6c7f5fea3..214b0a397 100644
--- a/keyboards/abstract/ellipse/rev1/rules.mk
+++ b/keyboards/abstract/ellipse/rev1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes # Enable support for rotary encoders
diff --git a/keyboards/acr60/rules.mk b/keyboards/acr60/rules.mk
index 1e6d4bb7c..c1f1f22ba 100644
--- a/keyboards/acr60/rules.mk
+++ b/keyboards/acr60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/adkb96/rev1/config.h b/keyboards/adkb96/rev1/config.h
index cff135c26..42685123b 100644
--- a/keyboards/adkb96/rev1/config.h
+++ b/keyboards/adkb96/rev1/config.h
@@ -33,6 +33,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 }
+#define DIODE_DIRECTION COL2ROW
+
#define SOFT_SERIAL_PIN D0
/* define tapping term */
diff --git a/keyboards/adkb96/rules.mk b/keyboards/adkb96/rules.mk
index cb4ce2dd7..95fbc1d48 100644
--- a/keyboards/adkb96/rules.mk
+++ b/keyboards/adkb96/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/aeboards/aegis/rules.mk b/keyboards/aeboards/aegis/rules.mk
index 2e39dae17..cb9ad1acf 100644
--- a/keyboards/aeboards/aegis/rules.mk
+++ b/keyboards/aeboards/aegis/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/aeboards/ext65/rules.mk b/keyboards/aeboards/ext65/rules.mk
index a5c98a1c6..6e5ad12f8 100644
--- a/keyboards/aeboards/ext65/rules.mk
+++ b/keyboards/aeboards/ext65/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/ai03/lunar/rules.mk b/keyboards/ai03/lunar/rules.mk
index dd3d71baa..62da535e1 100644
--- a/keyboards/ai03/lunar/rules.mk
+++ b/keyboards/ai03/lunar/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h
index 00945ac79..051b924b8 100644
--- a/keyboards/ai03/orbit/config.h
+++ b/keyboards/ai03/orbit/config.h
@@ -54,7 +54,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/*
diff --git a/keyboards/ai03/orbit/rules.mk b/keyboards/ai03/orbit/rules.mk
index 758a73cd2..706ba9b06 100644
--- a/keyboards/ai03/orbit/rules.mk
+++ b/keyboards/ai03/orbit/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
USE_I2C = no # I2C for split communication
CUSTOM_MATRIX = yes # For providing custom matrix.c (in this case, override regular matrix.c with split matrix.c)
# SPLIT_KEYBOARD = yes # Split keyboard flag disabled as manual edits had to be done to the split common files
diff --git a/keyboards/ai03/quasar/rules.mk b/keyboards/ai03/quasar/rules.mk
index 6b6784779..3cb2d3ab7 100644
--- a/keyboards/ai03/quasar/rules.mk
+++ b/keyboards/ai03/quasar/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ai03/soyuz/rules.mk b/keyboards/ai03/soyuz/rules.mk
index f092cb35b..bcf4f80bb 100644
--- a/keyboards/ai03/soyuz/rules.mk
+++ b/keyboards/ai03/soyuz/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x4
diff --git a/keyboards/akb/eb46/rules.mk b/keyboards/akb/eb46/rules.mk
index 5360459cf..bd3cd09a9 100644
--- a/keyboards/akb/eb46/rules.mk
+++ b/keyboards/akb/eb46/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/akb/raine/keymaps/mehadviceguy/keymap.c b/keyboards/akb/raine/keymaps/mehadviceguy/keymap.c
new file mode 100644
index 000000000..0014d699a
--- /dev/null
+++ b/keyboards/akb/raine/keymaps/mehadviceguy/keymap.c
@@ -0,0 +1,75 @@
+/* Copyright 2019 Elliot Powell
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+/*
+BLANK
+ ,----------------------------------------------------------------. ,--------------.
+ | | | | | | | | | | | | | | | | | |
+ |----------------------------------------------------------------| |--------------|
+ | | | | | | | | | | | | | | | | |
+ |------------------------------------------------------------ | |--------------|
+ | | | | | | | | | | | | | | | | |
+ |----------------------------------------------------------------' |--------------|
+ | | | | | | | | | | | | ,----. | | | |
+ |-----------------------------------------------------------' | | `--------------|
+ | | | | | | ,--------------. | | |
+ `------` '------------------------------` '-----' | | | | `---------'
+ `--------------'
+*/
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT( /* Base
+ ,----------------------------------------------------------------. ,--------------.
+ |Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | Bac| | / | * | + |
+ |----------------------------------------------------------------| |--------------|
+ | Tab | Q | W | E | R | T | Y | U | I | O | P | Enter| | 7 | 8 | 9 |
+ |------------------------------------------------------------ | |--------------|
+ |CapsLock | A | S | D | F | G | H | J | K | L | : | | | 4 | 5 | 6 |
+ |----------------------------------------------------------------' |--------------|
+ |Shift | \ | Z | X | C | V | B | N | M | , | . | ,----. | 1 | 2 | 3 |
+ |-----------------------------------------------------------' | Up | `--------------|
+ | Ctrl | | SPACE | |AltGr| ,--------------. | 0 | . |
+ `------` '------------------------------` '-----' |L/fn|Down|Rght| `---------'
+ `--------------'
+ */
+KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_PSLS, KC_PAST, KC_PPLS,
+KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, _______, KC_P7, KC_P8, KC_P9,
+KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_P4, KC_P5, KC_P6,
+KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_UP, KC_P1, KC_P2, KC_P3,
+KC_LCTL, _______, _______, _______, KC_SPC, _______, _______, KC_RALT, LT(1, KC_LEFT), KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
+
+ [1] = LAYOUT( /* Second
+ ,----------------------------------------------------------------. ,--------------.
+ | GRV| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9| F10| F11| F12 | |Nlck|Pscr| = |
+ |----------------------------------------------------------------| |--------------|
+ | | | | | | | | | | | ? | DEL | |Home| Up |PgUp|
+ |------------------------------------------------------------ | |--------------|
+ | | | | | | | | | | | ' |DEL | |Left|ScrL|Rght|
+ |----------------------------------------------------------------' |--------------|
+ | | | | | | | | | | [ | ] | ,----. |End |Down|PgDn|
+ |-----------------------------------------------------------' | | `--------------|
+ | GUI | | | | | ,--------------. | |Rest|
+ `------` '------------------------------` '-----' | | | | `---------'
+ `--------------'
+ */
+KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NLCK, KC_PSCR, KC_EQUAL,
+_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, KC_HOME, KC_UP, KC_PGUP,
+_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_DEL, KC_LEFT, KC_SLCK, KC_RGHT,
+_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, KC_END, KC_DOWN, KC_PGDN,
+KC_LGUI, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, RESET),
+};
+
diff --git a/keyboards/akb/raine/keymaps/mehadviceguy/readme.md b/keyboards/akb/raine/keymaps/mehadviceguy/readme.md
new file mode 100644
index 000000000..e9e411bc5
--- /dev/null
+++ b/keyboards/akb/raine/keymaps/mehadviceguy/readme.md
@@ -0,0 +1,68 @@
+# Eyecandy
+![Eyecandy](https://i.imgur.com/gYWNDlF.png)
+
+# MehAdviceGuy Raine layout
+
+Welcome to one of the most useless layouts you will find this side of town!
+The layout is born out of the need for AltGr to get to æø and å when you don't have a full bottom row.
+
+## Base Layer (0)
+The base layer borrows alot from the Default Raine layer in regards to the alphas, and the numpad. But deviates ever so slightly by putting the layer key on the Left arrow key, relacing it from its original location with AltGr. And putting , and . on what was normally ? and right shift.
+```
+ ,----------------------------------------------------------------. ,--------------.
+ |Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | Bac| | / | * | + |
+ |----------------------------------------------------------------| |--------------|
+ | Tab | Q | W | E | R | T | Y | U | I | O | P | Enter| | 7 | 8 | 9 |
+ |------------------------------------------------------------ | |--------------|
+ |CapsLock | A | S | D | F | G | H | J | K | L | : | | | 4 | 5 | 6 |
+ |----------------------------------------------------------------' |--------------|
+ |Shift | \ | Z | X | C | V | B | N | M | , | . | ,----. | 1 | 2 | 3 |
+ |-----------------------------------------------------------' | Up | `--------------|
+ | Ctrl | | SPACE | |AltGr| ,--------------. | 0 | . |
+ `------` '------------------------------` '-----' |L/fn|Down|Rght| `---------'
+ `--------------'
+```
+
+## Modifier Layer (1)
+The Modifier layer also borrows a few things from the Default Raine layout, but changes a fair bit of things in it. These changes include:
+* Moving Delete to Enter and completing the F-row
+* Moving [ and ] to , and .
+* Adding GUI to Left Ctrl
+* Replacing insert with =
+* Adding / to the P position
+* Moving ' one to the left
+
+```
+ ,----------------------------------------------------------------. ,--------------.
+ | GRV| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9| F10| F11| F12 | |Nlck|Pscr| = |
+ |----------------------------------------------------------------| |--------------|
+ | | | | | | | | | | | ? | DEL | |Home| Up |PgUp|
+ |------------------------------------------------------------ | |--------------|
+ | | | | | | | | | | | ' |DEL | |Left|ScrL|Rght|
+ |----------------------------------------------------------------' |--------------|
+ | | | | | | | | | | [ | ] | ,----. |End |Down|PgDn|
+ |-----------------------------------------------------------' | | `--------------|
+ | GUI | | | | | ,--------------. | |Rest|
+ `------` '------------------------------` '-----' | | | | `---------'
+ `--------------'
+```
+
+### Blank ASKII version if anyone needs!
+```
+ ,----------------------------------------------------------------. ,--------------.
+ | | | | | | | | | | | | | | | | | |
+ |----------------------------------------------------------------| |--------------|
+ | | | | | | | | | | | | | | | | |
+ |------------------------------------------------------------ | |--------------|
+ | | | | | | | | | | | | | | | | |
+ |----------------------------------------------------------------' |--------------|
+ | | | | | | | | | | | | ,----. | | | |
+ |-----------------------------------------------------------' | | `--------------|
+ | | | | | | ,--------------. | | |
+ `------` '------------------------------` '-----' | | | | `---------'
+ `--------------'
+```
+
+### KLE
+![KLE Layout](https://i.imgur.com/JDc1oM4.png)
+![KLE Link](http://www.keyboard-layout-editor.com/##@@=Esc%0A%60&=!%0A1&=%2F@%0A2&=%23%0A3&=$%0A4&=%25%0A5&=%5E%0A6&=%2F&%0A7&=*%0A8&=(%0A9&=)%0A0&=%2F_%0A-&=+%0A%2F=&_x:0.25%3B&=%2F%2F&=*&=+%3B&@_w:1.5%3B&=Tab&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&_x:0.25&w:1.25&h:2&w2:1.5&h2:1&x2:-0.25%3B&=Enter&_x:0.25%3B&=7&=8&=9%3B&@_w:1.75%3B&=Caps%20Lock&=A&=S&=D&=F&=G&=H&=J&=K&=L&=%2F:%0A%2F%3B&_x:1.5%3B&=4&=5&=6%3B&@_w:1.25%3B&=Shift&=%7C%0A%5C&=Z&=X&=C&=V&=B&=N&=M&=%3C%0A,&_w:1.5%3B&=%3E%0A.&_x:1.5%3B&=1&=2&=3%3B&@_y:-0.75&x:12%3B&=%E2%86%91%3B&@_y:-0.25&w:1.25%3B&=Ctrl&_x:1&a:7&w:6.25%3B&=&_x:1&a:4&w:1.25%3B&=AltGr&_x:3.5%3B&=0&=.%3B&@_y:-0.75&x:11%3B&=%E2%86%90%0AFN&=%E2%86%93&=%E2%86%92%3B&@_y:0.25%3B&=%60&=F1&=F2&=F3&=F4&=F5&=F6&=F7&=F8&=F9&=F10&=F11&=F12&_x:0.25%3B&=NLock&=Print&=%2F=%3B&@_a:7&w:1.5%3B&=&=&=&=&=&=&=&=&=&=&_a:4%3B&=%2F%2F&_x:0.25&w:1.25&h:2&w2:1.5&h2:1&x2:-0.25%3B&=Del&_x:0.25%3B&=Home&=Up&=PgUp%3B&@_a:7&w:1.75%3B&=&=&=&=&=&=&=&=&=&=&_a:4%3B&='&_x:1.5%3B&=Left&=ScrLc&=Right%3B&@_a:7&w:1.25%3B&=&=&=&=&=&=&=&=&=&_a:4%3B&=%5B&_w:1.5%3B&=%5D&_x:1.5%3B&=End&=Down&=PgDn%3B&@_y:-0.75&x:12&a:7%3B&=%3B&@_y:-0.25&a:4&w:1.25%3B&=Win&_x:1&w:6.25%3B&=RAlt&_x:1&a:7&w:1.25%3B&=&_x:3.5%3B&=&_a:4%3B&=Rst%3B&@_y:-0.75&x:11&a:7%3B&=&=&=) \ No newline at end of file
diff --git a/keyboards/akb/raine/rules.mk b/keyboards/akb/raine/rules.mk
index 5360459cf..bd3cd09a9 100644
--- a/keyboards/akb/raine/rules.mk
+++ b/keyboards/akb/raine/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/al1/rules.mk b/keyboards/al1/rules.mk
index 175adfd5d..b4d4f87d9 100644
--- a/keyboards/al1/rules.mk
+++ b/keyboards/al1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/alf/dc60/rules.mk b/keyboards/alf/dc60/rules.mk
index 8df6c4c7c..7c87642ac 100644
--- a/keyboards/alf/dc60/rules.mk
+++ b/keyboards/alf/dc60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/alf/x11/rules.mk b/keyboards/alf/x11/rules.mk
index 3439ac47f..decff4f79 100644
--- a/keyboards/alf/x11/rules.mk
+++ b/keyboards/alf/x11/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
EXTRAFLAGS += -flto
diff --git a/keyboards/alf/x2/rules.mk b/keyboards/alf/x2/rules.mk
index 1e6d4bb7c..c1f1f22ba 100644
--- a/keyboards/alf/x2/rules.mk
+++ b/keyboards/alf/x2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/alpha/rules.mk b/keyboards/alpha/rules.mk
index 13a720d8c..773655f2f 100755
--- a/keyboards/alpha/rules.mk
+++ b/keyboards/alpha/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/alps64/config.h b/keyboards/alps64/config.h
index cc7eada11..237dfbbe7 100644
--- a/keyboards/alps64/config.h
+++ b/keyboards/alps64/config.h
@@ -35,6 +35,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, C2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/alps64/rules.mk b/keyboards/alps64/rules.mk
index 79d9cb360..7dbe8e7dd 100644
--- a/keyboards/alps64/rules.mk
+++ b/keyboards/alps64/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change to no to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/alu84/rules.mk b/keyboards/alu84/rules.mk
index 680b13dc0..b5f249057 100755
--- a/keyboards/alu84/rules.mk
+++ b/keyboards/alu84/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= no # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/amj40/keymaps/default/rules.mk b/keyboards/amj40/keymaps/default/rules.mk
index cbfa35e63..957f209b7 100644
--- a/keyboards/amj40/keymaps/default/rules.mk
+++ b/keyboards/amj40/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/amj40/rules.mk b/keyboards/amj40/rules.mk
index 423e66aee..5d6cff989 100755
--- a/keyboards/amj40/rules.mk
+++ b/keyboards/amj40/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= no # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
MIDI_ENABLE ?= no # MIDI controls
AUDIO_ENABLE ?= no
UNICODE_ENABLE ?= no # Unicode
diff --git a/keyboards/amj60/rules.mk b/keyboards/amj60/rules.mk
index bccdd6681..7bc8ffe18 100644
--- a/keyboards/amj60/rules.mk
+++ b/keyboards/amj60/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/amj96/config.h b/keyboards/amj96/config.h
index 1f1be03ce..8b56aaf7f 100644
--- a/keyboards/amj96/config.h
+++ b/keyboards/amj96/config.h
@@ -47,22 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
-// #define BACKLIGHT_PIN D4
-// #define BACKLIGHT_BREATHING
-// #define BACKLIGHT_LEVELS 3
-
-/* number of backlight levels */
-#ifdef BREATHING_LED_ENABLE
-#ifdef FADING_LED_ENABLE
-#define BACKLIGHT_LEVELS 8
-#else
-#define BACKLIGHT_LEVELS 6
-#endif
-#else
-#define BACKLIGHT_LEVELS 3
-#endif
-#define BACKLIGHT_CUSTOM
-
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/amj96/rules.mk b/keyboards/amj96/rules.mk
index 52f610d7d..4fd858509 100644
--- a/keyboards/amj96/rules.mk
+++ b/keyboards/amj96/rules.mk
@@ -14,18 +14,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE ?= yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/amjkeyboard/amj66/rules.mk b/keyboards/amjkeyboard/amj66/rules.mk
index 4102c0eb2..b5d3f1ee3 100644
--- a/keyboards/amjkeyboard/amj66/rules.mk
+++ b/keyboards/amjkeyboard/amj66/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/amjpad/rules.mk b/keyboards/amjpad/rules.mk
index fe2892485..f807eddc2 100644
--- a/keyboards/amjpad/rules.mk
+++ b/keyboards/amjpad/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/angel17/alpha/rules.mk b/keyboards/angel17/alpha/rules.mk
index 5a26a2e0b..51660ce5f 100644
--- a/keyboards/angel17/alpha/rules.mk
+++ b/keyboards/angel17/alpha/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = numpad_5x4
diff --git a/keyboards/angel17/rev1/rules.mk b/keyboards/angel17/rev1/rules.mk
index c76c0244a..7384c23de 100644
--- a/keyboards/angel17/rev1/rules.mk
+++ b/keyboards/angel17/rev1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = numpad_5x4
diff --git a/keyboards/angel17/rules.mk b/keyboards/angel17/rules.mk
index ca2563a6e..bd5ae48de 100644
--- a/keyboards/angel17/rules.mk
+++ b/keyboards/angel17/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = numpad_5x4
diff --git a/keyboards/angel64/rules.mk b/keyboards/angel64/rules.mk
index 0f2b29096..1c44782e2 100644
--- a/keyboards/angel64/rules.mk
+++ b/keyboards/angel64/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OLED_DRIVER_ENABLE = yes
CUSTOM_MATRIX = yes
diff --git a/keyboards/ares/ares.c b/keyboards/ares/ares.c
index 07276491c..95d4b878f 100644
--- a/keyboards/ares/ares.c
+++ b/keyboards/ares/ares.c
@@ -17,27 +17,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "ares.h"
-#ifdef BACKLIGHT_ENABLE
-void backlight_init_ports(void) {
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // Turn out the lights
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // Turn on the lights
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
- }
+void led_init_ports(void) {
+ setPinOutput(D1);
+}
+
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/ares/config.h b/keyboards/ares/config.h
index f0aa926ea..e298dfc95 100644
--- a/keyboards/ares/config.h
+++ b/keyboards/ares/config.h
@@ -37,7 +37,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
#define NO_UART 1
diff --git a/keyboards/ares/rules.mk b/keyboards/ares/rules.mk
index 58d36bc67..f54074172 100644
--- a/keyboards/ares/rules.mk
+++ b/keyboards/ares/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
WS2812_DRIVER = i2c
diff --git a/keyboards/at101_blackheart/rules.mk b/keyboards/at101_blackheart/rules.mk
index d8cfbd289..1930d9f27 100644
--- a/keyboards/at101_blackheart/rules.mk
+++ b/keyboards/at101_blackheart/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/at_at/660m/chconf.h b/keyboards/at_at/660m/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/at_at/660m/chconf.h
+++ b/keyboards/at_at/660m/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/at_at/660m/rules.mk b/keyboards/at_at/660m/rules.mk
index b893d8031..0b3685f09 100644
--- a/keyboards/at_at/660m/rules.mk
+++ b/keyboards/at_at/660m/rules.mk
@@ -17,3 +17,6 @@ CUSTOM_MATRIX = no # Custom matrix file
# RGBLIGHT_ENABLE = yes
NO_USB_STARTUP_CHECK = yes # Workaround for issue 6369
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/atomic/rules.mk b/keyboards/atomic/rules.mk
index 8ccbcb11b..5a057f973 100644
--- a/keyboards/atomic/rules.mk
+++ b/keyboards/atomic/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h
index 88dd4d9dc..a3d350775 100644
--- a/keyboards/atreus/atreus.h
+++ b/keyboards/atreus/atreus.h
@@ -24,6 +24,8 @@
#include "astar_mirrored.h"
#elif KEYBOARD_atreus_teensy2
#include "teensy2.h"
+#elif KEYBOARD_atreus_promicro
+ #include "promicro.h"
#endif
// This a shortcut to help you visually see your layout.
diff --git a/keyboards/atreus/keymaps/ibnuda/config.h b/keyboards/atreus/keymaps/ibnuda/config.h
new file mode 100644
index 000000000..625abe488
--- /dev/null
+++ b/keyboards/atreus/keymaps/ibnuda/config.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT
+#define COMBO_COUNT 15
diff --git a/keyboards/atreus/keymaps/ibnuda/keymap.c b/keyboards/atreus/keymaps/ibnuda/keymap.c
new file mode 100644
index 000000000..3c1c0f450
--- /dev/null
+++ b/keyboards/atreus/keymaps/ibnuda/keymap.c
@@ -0,0 +1,258 @@
+#include QMK_KEYBOARD_H
+
+typedef enum {
+ SINGLE_TAP,
+ SINGLE_HOLD,
+ DOUBLE_TAP,
+} td_state_t;
+
+static td_state_t td_state;
+
+int current_dance(qk_tap_dance_state_t *state);
+
+void dance_tmb_finished(qk_tap_dance_state_t *state, void *user_data);
+void dance_tmb_reset(qk_tap_dance_state_t *state, void *user_data);
+
+// enum for tap dances.
+enum {
+ TD_DLT_CTLDLT = 0,
+ TD_SCLN_CLN,
+ TD_LEFT_THUMB,
+};
+
+// enum for combos.
+enum combos {
+ // left hand combinations.
+ COLON_COMMA,
+ COMMA_DOT,
+ DOT_P,
+ Q_J,
+ J_K,
+
+ // right hand combinations.
+ L_R,
+ R_C,
+ C_G,
+ V_W,
+ W_M,
+
+ // both hands combinations.
+ DOT_C,
+ J_W,
+ P_G,
+ U_H,
+ K_M,
+};
+
+enum {
+ _BASE,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+ _MUIS
+};
+
+// thumb keys.
+#define ALT_ENT ALT_T(KC_ENT)
+#define SFT_ESC SFT_T(KC_ESC)
+
+// home row mods.
+#define CT_O RCTL_T(KC_O)
+#define CT_N RCTL_T(KC_N)
+#define SH_A RSFT_T(KC_A)
+#define SH_S RSFT_T(KC_S)
+#define AL_E RALT_T(KC_E)
+#define AL_T RALT_T(KC_T)
+#define GU_I RGUI_T(KC_I)
+#define GU_D RGUI_T(KC_D)
+
+// layer toggle.
+#define LW_BSPC LT(_LOWER, KC_BSPC)
+#define RS_SPC LT(_RAISE, KC_SPC)
+#define RS_D LT(_RAISE, KC_D)
+#define LW_I LT(_LOWER, KC_I)
+#define MU_QUOT LT(_MUIS, KC_QUOT)
+#define MU_Z LT(_MUIS, KC_Z)
+
+// idk, man. not used, i guess.
+#define RAISE MO(_RAISE)
+#define LOWER MO(_LOWER)
+#define ADDDD MO(_ADJUST)
+#define MUIS MO(_MUIS)
+
+// common shortcuts for windows and linux that i use.
+#define NXTTAB LCTL(KC_PGDN)
+#define PRVTAB LCTL(KC_PGUP)
+#define UPTAB LCTL(LSFT(KC_PGUP))
+#define DNTAB LCTL(LSFT(KC_PGDN))
+#define NXTWIN LALT(KC_TAB)
+#define PRVWIN LALT(LSFT(KC_TAB))
+#define CALDL LCTL(LALT(KC_DELT))
+#define TSKMGR LCTL(LSFT(KC_ESC))
+#define EXPLR LGUI(KC_E)
+#define LCKGUI LGUI(KC_L)
+#define CONPST LSFT(KC_INS)
+#define CLSGUI LALT(KC_F4)
+
+// tap dances
+#define CTL_DLT TD(TD_DLT_CTLDLT)
+#define SM_CLN TD(TD_SCLN_CLN)
+#define LFT_TMB TD(TD_LEFT_THUMB)
+
+// left hand combinations.
+const uint16_t PROGMEM colon_comma_combo[] = {KC_SCLN, KC_COMM, COMBO_END};
+const uint16_t PROGMEM comma_dot_combo[] = {KC_COMM, KC_DOT, COMBO_END};
+const uint16_t PROGMEM dot_p_combo[] = {KC_DOT, KC_P, COMBO_END};
+const uint16_t PROGMEM q_j_combo[] = {KC_Q, KC_J, COMBO_END};
+const uint16_t PROGMEM j_k_combo[] = {KC_J, KC_K, COMBO_END};
+
+// right hand combinations.
+const uint16_t PROGMEM l_r_combo[] = {KC_L, KC_R, COMBO_END};
+const uint16_t PROGMEM r_c_combo[] = {KC_R, KC_C, COMBO_END};
+const uint16_t PROGMEM c_g_combo[] = {KC_C, KC_G, COMBO_END};
+const uint16_t PROGMEM v_w_combo[] = {KC_V, KC_W, COMBO_END};
+const uint16_t PROGMEM w_m_combo[] = {KC_W, KC_M, COMBO_END};
+
+// both hand combinations.
+const uint16_t PROGMEM dot_c_combo[] = {KC_DOT, KC_C, COMBO_END};
+const uint16_t PROGMEM j_w_combo[] = {KC_J, KC_W, COMBO_END};
+const uint16_t PROGMEM u_h_combo[] = {KC_U, KC_H, COMBO_END};
+const uint16_t PROGMEM p_g_combo[] = {KC_P, KC_G, COMBO_END};
+const uint16_t PROGMEM k_m_combo[] = {KC_K, KC_M, COMBO_END};
+
+combo_t key_combos[COMBO_COUNT] = {
+ // left hand combinations.
+ [COLON_COMMA] = COMBO(colon_comma_combo, KC_TAB),
+ [COMMA_DOT] = COMBO(comma_dot_combo, KC_QUES),
+ [DOT_P] = COMBO(dot_p_combo, KC_UNDS),
+ [Q_J] = COMBO(q_j_combo, LCTL(KC_W)),
+ [J_K] = COMBO(j_k_combo, KC_DELT),
+
+ // right hand combinations.
+ [L_R] = COMBO(l_r_combo, KC_BSPC),
+ [R_C] = COMBO(r_c_combo, KC_SLSH),
+ [C_G] = COMBO(c_g_combo, KC_MINS),
+ [V_W] = COMBO(v_w_combo, KC_APP),
+ [W_M] = COMBO(w_m_combo, KC_DELT),
+
+ // both hand combinations.
+ [DOT_C] = COMBO(dot_c_combo, KC_PGUP),
+ [J_W] = COMBO(j_w_combo, KC_PGDN),
+ [U_H] = COMBO(u_h_combo, KC_ENT),
+ [P_G] = COMBO(p_g_combo, KC_HOME),
+ [K_M] = COMBO(k_m_combo, KC_END),
+};
+
+void dance_dlt_finished(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code16(KC_DELT);
+ } else {
+ register_code16(C(KC_DELT));
+ }
+}
+
+void dance_dlt_reset(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code16(KC_DELT);
+ } else {
+ unregister_code16(C(KC_DELT));
+ }
+}
+
+void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code(KC_LSFT);
+ }
+ register_code(KC_SCLN);
+}
+
+void dance_cln_reset(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code(KC_LSFT);
+ }
+ unregister_code(KC_SCLN);
+}
+
+int current_dance(qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (state->interrupted || !state->pressed) {
+ return SINGLE_TAP;
+ } else {
+ return SINGLE_HOLD;
+ }
+ }
+ if (state->count == 2) {
+ return DOUBLE_TAP;
+ } else {
+ return 3;
+ }
+}
+
+void dance_tmb_finished(qk_tap_dance_state_t *state, void *user_data) {
+ td_state = current_dance(state);
+ switch (td_state) {
+ case SINGLE_TAP:
+ register_code16(KC_ESC);
+ break;
+ case SINGLE_HOLD:
+ register_mods(MOD_BIT(KC_LSFT));
+ break;
+ case DOUBLE_TAP:
+ register_code16(KC_DELT);
+ break;
+ }
+}
+
+void dance_tmb_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (td_state) {
+ case SINGLE_TAP:
+ unregister_code16(KC_ESC);
+ break;
+ case SINGLE_HOLD:
+ unregister_mods(MOD_BIT(KC_LSFT));
+ break;
+ case DOUBLE_TAP:
+ unregister_code16(KC_DELT);
+ break;
+ }
+}
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_DLT_CTLDLT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_dlt_finished, dance_dlt_reset),
+ [TD_SCLN_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset),
+ [TD_LEFT_THUMB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_tmb_finished, dance_tmb_reset),
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_BASE] = LAYOUT(
+ SM_CLN, KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
+ SH_A, CT_O, AL_E, KC_U, GU_I, GU_D, KC_H, AL_T, CT_N, SH_S,
+ MU_QUOT,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, MU_Z,
+ _______,_______,_______,_______,LW_BSPC,SFT_ESC, ALT_ENT,RS_SPC, _______,_______,_______,_______
+),
+
+[_RAISE] = LAYOUT(
+ KC_EXLM,KC_AT, KC_UP, KC_LCBR,KC_RCBR, KC_BSLS,KC_7, KC_8, KC_9, KC_ASTR ,
+ KC_HASH,KC_LEFT,KC_DOWN,KC_RGHT,KC_DLR, KC_EQL, KC_4, KC_5, KC_6, KC_TILD ,
+ KC_LBRC,KC_RBRC,KC_LPRN,KC_RPRN,KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS ,
+ _______,_______,_______,_______,ADDDD, _______, ALT_ENT,RS_SPC, _______,KC_0, _______,_______
+),
+[_LOWER] = LAYOUT(
+ KC_ESC, KC_QUES,KC_UNDS,KC_F1, KC_F2, KC_F3, KC_F4, KC_MINS,KC_SLSH,KC_BSPC ,
+ KC_LSFT,KC_TAB, KC_PGUP,KC_F5, KC_F6, KC_F7, KC_F8, KC_HOME,KC_LALT,KC_ENT ,
+ KC_CLCK,KC_SLCK,KC_PGDN,KC_F9, KC_F10, KC_F11, KC_F12, KC_END, KC_INS, KC_SLSH ,
+ _______,_______,_______,_______,ADDDD, _______, KC_DELT,ADDDD, _______,_______,_______,_______
+),
+[_ADJUST] = LAYOUT(
+ _______,EXPLR, KC_UP, PRVTAB, PRVWIN, NXTWIN, NXTTAB, _______,_______,LCKGUI,
+ TSKMGR, KC_LEFT,KC_DOWN,KC_RGHT,UPTAB, DNTAB, KC_ENT, KC_LGUI,_______,CALDL,
+ _______,CLSGUI, _______,CONPST, RESET, _______,_______,_______,_______,_______,
+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______
+),
+[_MUIS] = LAYOUT(
+ _______,KC_BTN2,KC_MS_U,KC_BTN1,_______, _______,KC_BTN1,KC_MS_U,KC_BTN2,_______,
+ _______,KC_MS_L,KC_MS_D,KC_MS_R,_______, _______,KC_MS_L,KC_MS_D,KC_MS_R,_______,
+ _______,_______,KC_WH_D,KC_WH_U,_______, _______,KC_WH_U,KC_WH_D,_______,_______,
+ _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______
+),
+};
diff --git a/keyboards/atreus/keymaps/ibnuda/rules.mk b/keyboards/atreus/keymaps/ibnuda/rules.mk
new file mode 100644
index 000000000..ce80219d1
--- /dev/null
+++ b/keyboards/atreus/keymaps/ibnuda/rules.mk
@@ -0,0 +1,7 @@
+# Build Options
+# change yes to no to disable
+#
+
+MOUSEKEY_ENABLE = yes
+COMBO_ENABLE = yes
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/atreus/keymaps/ridingqwerty/keymap.c b/keyboards/atreus/keymaps/ridingqwerty/keymap.c
index 336df4973..1eeb17fd1 100644
--- a/keyboards/atreus/keymaps/ridingqwerty/keymap.c
+++ b/keyboards/atreus/keymaps/ridingqwerty/keymap.c
@@ -30,9 +30,7 @@
MODS // LAYERS // MODS //
*/
-#ifdef LAYOUT
-#undef LAYOUT
-#define LAYOUT( \
+#define LAYOUT_atreus( \
K00, K01, K02, K03, K04, K40, K41, K42, K43, K44, \
K10, K11, K12, K13, K14, K50, K51, K52, K53, K54, \
K20, K21, K22, K23, K24, K60, K61, K62, K63, K64, \
@@ -47,70 +45,109 @@
{ K64, K63, K62, K61, K60, KC_NO }, \
{ K75, K74, K73, K72, K71, K70 } \
}
-#endif
+
+//#define ALPHA XP(UCM_LDEL, UCM_UDEL)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT( /* Qwerty */
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
- ED_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NM_SCLN,
- LS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK_DOT, RS_SLSH,
- LC_ESC, LG_TAB, LA_LBRC, LS_RBRC, NM_BSPC, ED_ESC, SC_TAB, SM_SPC, RS_MINS, RA_EQL, RG_QUOT, RC_ENT
+ [_QWERTY] = LAYOUT_atreus_wrapper( /* Qwerty */
+ ________________ATREUS_L1__________________, ________________ATREUS_R1__________________,
+ ________________ATREUS_L2__________________, ________________ATREUS_R2__________________,
+ ________________ATREUS_L3__________________, ________________ATREUS_R3__________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
+ ),
+ [_DVORAK] = LAYOUT_atreus_wrapper( /* Qwerty */
+ ________________DVORAK_L1__________________, ________________DVORAK_R1__________________,
+ ________________DVORAK_L2__________________, ________________DVORAK_R2__________________,
+ ________________DVORAK_L3__________________, ________________DVORAK_R3__________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
+ ),
+ [_COLEMAK] = LAYOUT_atreus_wrapper( /* Qwerty */
+ ________________COLEMAK_L1_________________, ________________COLEMAK_R1_________________,
+ ________________COLEMAK_L2_________________, ________________COLEMAK_R2_________________,
+ ________________COLEMAK_L3_________________, ________________COLEMAK_R3_________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
+ ),
+//#if defined(UNICODEMAP_ENABLE)
+//#ifdef UNICODE_H
+#ifdef UNICODEMAP_ENABLE
+ [_GREEK] = LAYOUT_atreus_wrapper(
+ ________________GREEK_L1___________________, ________________GREEK_R1___________________,
+ ________________GREEK_L2___________________, ________________GREEK_R2___________________,
+ ________________GREEK_L3___________________, ________________GREEK_R3___________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
+ ),
+ [_RUSSIAN] = LAYOUT_atreus_wrapper(
+ ________________CYRLC_L1___________________, ________________CYRLC_R1___________________,
+ ________________CYRLC_L2___________________, ________________CYRLC_R2___________________,
+ ________________CYRLC_L3___________________, ________________CYRLC_R3___________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________CYRLC_R4___________________
+ ),
+ [_RUNES] = LAYOUT_atreus_wrapper(
+ ________________FTHRK_L1___________________, ________________FTHRK_R1___________________,
+ ________________FTHRK_L2___________________, ________________FTHRK_R2___________________,
+ ________________FTHRK_L3___________________, ________________FTHRK_R3___________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
+ ),
+ [_HIRA1] = LAYOUT_atreus_wrapper(
+ ________________JIS1_L1____________________, ________________JIS1_R1____________________,
+ ________________JIS1_L2____________________, ________________JIS1_R2____________________,
+ ________________JIS1_L3____________________, ________________JIS1_R3____________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
),
- [_EDITOR] = LAYOUT( /* ED_A, ED_ESC */
- KC_GRV, _______, KC_END, _______, KC_TAB, _______, _______, KC_INS, _______, KC_PGUP,
- KC_HOME, _______, KC_DELT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT,
- _______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, KC_BSLS,
- _______, _______, _______, _______, _______, _______, KC_ENT, _______, _______, _______, _______, _______
+ [_HIRA2] = LAYOUT_atreus_wrapper(
+ ________________JIS2_L1____________________, ________________JIS2_R1____________________,
+ ________________JIS2_L2____________________, ________________JIS2_R2____________________,
+ ________________JIS2_L3____________________, ________________JIS2_R3____________________,
+ ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
),
- [_NUMBER] = LAYOUT( /* NM_SCLN, NM_BSPC */
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_4, KC_5, KC_6, _______,
- _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS,
- _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_0, KC_0, KC_DOT, _______, _______
+#endif
+ [_EDITOR] = LAYOUT_atreus_wrapper( /* ED_A, ED_ESC */
+ ________________EDITOR_L1__________________, ________________EDITOR_R1__________________,
+ ________________EDITOR_L2__________________, ________________EDITOR_R2__________________,
+ ________________EDITOR_L3__________________, ________________EDITOR_R3__________________,
+ _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
+ ),
+ [_NUMBER] = LAYOUT_atreus_wrapper( /* NM_SCLN, NM_BSPC */
+ ________________NUMROW_L1__________________, ________________NUMROW_R1__________________,
+ ________________NUMROW_R1__________________, ________________NUMPAD_R2__________________,
+ ___________________________________________, ________________NUMPAD_R3__________________,
+ ___________________________________________, ________________, ________________NUMPAD_R4__________________
),
- [_SYMBOL] = LAYOUT( /* SM_SPC */
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, _______, KC_COLN,
+ [_SYMBOL] = LAYOUT_atreus_wrapper( /* SM_SPC */
+ ________________SYMROW_L1__________________, ________________SYMROW_R1__________________,
+ ________________SYMROW_R1__________________, ________________SYMROW_R1__________________,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
- _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______
+ KC_LBRC, _______, _______, _______, _______, ________________, _______, _______, _______, _______, KC_RBRC
),
- [_F_KEYS] = LAYOUT( /* FK_DOT */
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_F11,
- KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_F12,
+ [_F_KEYS] = LAYOUT_atreus_wrapper( /* FK_DOT */
+ ________________FKEYROW_L1_________________, ________________FKEYROW_R1_________________,
+ ________________FKEYROW_R1_________________, ________________FKEYROW_L1_________________,
+ KC_F11, KC_F12, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
- [_SECRET] = LAYOUT( /* shhhh... */
- RESET, _______, _______, RUSTY, FUEL, KC_F13, _______, _______, _______, _______,
+ [_DEBUG] = LAYOUT_atreus_wrapper( /* shhhh... */
+ ________________DEBUG_L1___________________, ________________DEBUG_R1___________________,
+ ________________DEBUG_L2___________________, ________________DEBUG_R2___________________,
+ ________________DEBUG_L3___________________, ________________DEBUG_R3___________________,
+ _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
+ ),
+ [_SECRET] = LAYOUT_atreus_wrapper( /* shhhh... */
+/*
+ _______, _______, _______, RUSTY, FUEL, _______, _______, _______, _______, _______,
AR1ST, SYSNOC, _______, _______, _______, _______, _______, _______, OS_LAB, _______,
- CDLOCAL, _______, C0RE, VAXIS, _______, _______, MUNKY, _______, _______, _______,
+ CDLOCAL, _______, C0RE, VAXIS, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+*/
+ ________________SECRET_L1__________________, ________________SECRET_R1__________________,
+ ________________SECRET_L2__________________, ________________SECRET_R2__________________,
+ ________________SECRET_L3__________________, ________________SECRET_R3__________________,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+
),
- [_FINAL] = LAYOUT( /* . */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ [_FINAL] = LAYOUT_atreus( /* . */
+ _______, _______, _______, _______, TESTING, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
-
-// custom tap/hold keys
-uint16_t key_timer;
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case RG_QUOT:
- if (record->event.pressed) {
- key_timer = timer_read();
- layer_on(_NUMBER);
- register_mods(MOD_BIT(KC_RGUI));
- } else {
- unregister_mods(MOD_BIT(KC_RGUI));
- layer_off(_NUMBER);
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code(KC_QUOT);
- }
- }
- return false; break;
- }
- return true;
-};
diff --git a/keyboards/atreus/keymaps/ridingqwerty/rules.mk b/keyboards/atreus/keymaps/ridingqwerty/rules.mk
index 95b257f75..5c89d5481 100644
--- a/keyboards/atreus/keymaps/ridingqwerty/rules.mk
+++ b/keyboards/atreus/keymaps/ridingqwerty/rules.mk
@@ -5,13 +5,14 @@ MCU = STM32F303
#
BACKLIGHT_ENABLE = no
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
-#MOUSEKEY_ENABLE = yes # Mouse keys
+MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
-AUDIO_ENABLE = yes
+AUDIO_ENABLE = yes # Doot
RGBLIGHT_ENABLE = no
-# SERIAL_LINK_ENABLE = yes
-#TAP_DANCE_ENABLE = yes
+TAP_DANCE_ENABLE = no
+UNICODE_ENABLE = no
+UNICODEMAP_ENABLE = yes
+
diff --git a/keyboards/atreus/promicro/config.h b/keyboards/atreus/promicro/config.h
new file mode 100644
index 000000000..03b63f6ff
--- /dev/null
+++ b/keyboards/atreus/promicro/config.h
@@ -0,0 +1,40 @@
+/* Copyright 2019
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F4, B2, B4, B5 }
+#if defined(PCBDOWN)
+ #define MATRIX_COL_PINS { D0, D4, C6, D7, E6, B6, B3, B1, F7, F6, F5 }
+#else
+ #define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B6, E6, D7, C6, D4, D0 }
+#endif
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/atreus/promicro/promicro.c b/keyboards/atreus/promicro/promicro.c
new file mode 100644
index 000000000..ad08ac9f0
--- /dev/null
+++ b/keyboards/atreus/promicro/promicro.c
@@ -0,0 +1,16 @@
+/* Copyright 2020
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "promicro.h"
diff --git a/keyboards/mechlovin/hannah910/keymaps/default/config.h b/keyboards/atreus/promicro/promicro.h
index 3d1156ac0..bf74ceb17 100644
--- a/keyboards/mechlovin/hannah910/keymaps/default/config.h
+++ b/keyboards/atreus/promicro/promicro.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Mechlovin
+/* Copyright 2019
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -15,5 +15,3 @@
*/
#pragma once
-
-// place overrides here
diff --git a/keyboards/atreus/promicro/rules.mk b/keyboards/atreus/promicro/rules.mk
new file mode 100644
index 000000000..e6fef5172
--- /dev/null
+++ b/keyboards/atreus/promicro/rules.mk
@@ -0,0 +1,12 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
diff --git a/keyboards/atreus/readme.md b/keyboards/atreus/readme.md
index 0dbd098ca..0f499ca2a 100644
--- a/keyboards/atreus/readme.md
+++ b/keyboards/atreus/readme.md
@@ -16,8 +16,9 @@ Make example for this keyboard (after setting up your build environment):
If you would like to use one of the alternative controllers:
- make atreus/astar:default:avrdude
- make atreus/teensy2:default:teensy
+ make atreus/astar:default:flash
+ make atreus/teensy2:default:flash
+ make atreus/promicro:default:flash
If your keyboard layout is a mirror image of what you expected (i.e. you do not get QWERTY on the left but YTREWQ on the right), then you have an A-Star powered Atreus (older than March 2016) with PCB labels facing *down* instead of up. Specify that by adding `PCBDOWN=yes` to your `make` commands, e.g.
diff --git a/keyboards/atreus/rules.mk b/keyboards/atreus/rules.mk
index 403b0b0ca..eb16f2f46 100644
--- a/keyboards/atreus/rules.mk
+++ b/keyboards/atreus/rules.mk
@@ -1,10 +1,10 @@
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -12,11 +12,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = yes # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEFAULT_FOLDER = atreus/astar
diff --git a/keyboards/atreus62/keymaps/xyverz/keymap.c b/keyboards/atreus62/keymaps/xyverz/keymap.c
index 4babed4c1..b852d5d7b 100644
--- a/keyboards/atreus62/keymaps/xyverz/keymap.c
+++ b/keyboards/atreus62/keymaps/xyverz/keymap.c
@@ -30,6 +30,7 @@ CHANGELOG:
0.6 - Swapped ESC and GRV in all layers.
0.7 - Brought code up to current standards.
0.8 - Added MACLOCK macro.
+ 0.9 - Updated code to correspond to new setPinInput behaviour
TODO:
@@ -124,9 +125,7 @@ void matrix_init_user(void) {
#ifdef BOOTLOADER_CATERINA
// This will disable the red LEDs on the ProMicros
setPinInput(D5);
- writePinLow(D5);
setPinInput(B0);
- writePinLow(B0);
#endif
};
diff --git a/keyboards/atreus62/keymaps/xyverz/readme.md b/keyboards/atreus62/keymaps/xyverz/readme.md
index f91a87da4..531e3b28d 100644
--- a/keyboards/atreus62/keymaps/xyverz/readme.md
+++ b/keyboards/atreus62/keymaps/xyverz/readme.md
@@ -30,6 +30,10 @@ The bottom row is fairly Kinesis-ish since the Contour and Advantage keyboards h
### 0.7
* Brought code up to new standards (as of 27 June 2019).
* Updated this readme file.
+### 0.8
+ * Added MACLOCK macro.
+### 0.9
+ * Updated code to correspond to new setPinInput behaviour.
### TODO:
diff --git a/keyboards/atreus62/rules.mk b/keyboards/atreus62/rules.mk
index 323976c2c..5f9cd6c78 100644
--- a/keyboards/atreus62/rules.mk
+++ b/keyboards/atreus62/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
#BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/baguette/rules.mk b/keyboards/baguette/rules.mk
index 351322b85..f911fb5d3 100644
--- a/keyboards/baguette/rules.mk
+++ b/keyboards/baguette/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/bantam44/rules.mk b/keyboards/bantam44/rules.mk
index a15b451f3..d90f8155e 100644
--- a/keyboards/bantam44/rules.mk
+++ b/keyboards/bantam44/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
diff --git a/keyboards/bfake/bfake.c b/keyboards/bfake/bfake.c
index 9039fe546..6d0c92746 100644
--- a/keyboards/bfake/bfake.c
+++ b/keyboards/bfake/bfake.c
@@ -17,30 +17,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "bfake.h"
-void backlight_init_ports(void) {
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // Turn out the lights
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // Turn on the lights
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
- }
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
diff --git a/keyboards/bfake/config.h b/keyboards/bfake/config.h
index 65f1f3a75..ef7a866d3 100644
--- a/keyboards/bfake/config.h
+++ b/keyboards/bfake/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef BFAKE_CONFIG_H
-#define BFAKE_CONFIG_H
+#pragma once
#include "config_common.h"
@@ -38,9 +37,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
#define NO_UART 1
-
-#endif
diff --git a/keyboards/bfake/rules.mk b/keyboards/bfake/rules.mk
index 107bb4fa9..ab6af983c 100644
--- a/keyboards/bfake/rules.mk
+++ b/keyboards/bfake/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = no
WS2812_DRIVER = i2c
diff --git a/keyboards/bigseries/rules.mk b/keyboards/bigseries/rules.mk
index a3dd1ad6c..2f52d9558 100755
--- a/keyboards/bigseries/rules.mk
+++ b/keyboards/bigseries/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/bigswitch/rules.mk b/keyboards/bigswitch/rules.mk
index 14cc0c85b..88844733f 100755
--- a/keyboards/bigswitch/rules.mk
+++ b/keyboards/bigswitch/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h
index 0fd7e21cb..256603744 100644
--- a/keyboards/blackplum/config.h
+++ b/keyboards/blackplum/config.h
@@ -19,6 +19,8 @@
#define MATRIX_COL_PINS { D0, D1, D2, F7, F6, F5, F4, F1 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/blockey/rules.mk b/keyboards/blockey/rules.mk
index 83bc96c11..3233ee2f7 100644
--- a/keyboards/blockey/rules.mk
+++ b/keyboards/blockey/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/bm16a/rules.mk b/keyboards/bm16a/rules.mk
index 50f0ff121..3e994588f 100644
--- a/keyboards/bm16a/rules.mk
+++ b/keyboards/bm16a/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x4
diff --git a/keyboards/bm43a/rules.mk b/keyboards/bm43a/rules.mk
index 66a778b6c..5fa842c8b 100644
--- a/keyboards/bm43a/rules.mk
+++ b/keyboards/bm43a/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/boardwalk/config.h b/keyboards/boardwalk/config.h
index 774750208..fa80673d8 100644
--- a/keyboards/boardwalk/config.h
+++ b/keyboards/boardwalk/config.h
@@ -43,7 +43,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, D0 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
// #define BACKLIGHT_PIN F5
diff --git a/keyboards/boardwalk/rules.mk b/keyboards/boardwalk/rules.mk
index 215dfe34e..88cce1631 100644
--- a/keyboards/boardwalk/rules.mk
+++ b/keyboards/boardwalk/rules.mk
@@ -15,14 +15,14 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = yes # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk
index 5dcea8467..a5a411e8f 100644
--- a/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk
+++ b/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/bpiphany/frosty_flake/rules.mk b/keyboards/bpiphany/frosty_flake/rules.mk
index a890c4a59..d5f943430 100644
--- a/keyboards/bpiphany/frosty_flake/rules.mk
+++ b/keyboards/bpiphany/frosty_flake/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/bpiphany/kitten_paw/rules.mk b/keyboards/bpiphany/kitten_paw/rules.mk
index 72a7f14b3..23546e4f0 100644
--- a/keyboards/bpiphany/kitten_paw/rules.mk
+++ b/keyboards/bpiphany/kitten_paw/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk
index 8254a8389..d6ebcd5d7 100644
--- a/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk
+++ b/keyboards/bpiphany/pegasushoof/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file for the Pegasus Hoof due to the 2x74HC42
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk
index 0910feb61..ffb642a9c 100644
--- a/keyboards/bpiphany/pegasushoof/rules.mk
+++ b/keyboards/bpiphany/pegasushoof/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/bpiphany/sixshooter/rules.mk b/keyboards/bpiphany/sixshooter/rules.mk
index ad76051eb..ed6caaa5d 100644
--- a/keyboards/bpiphany/sixshooter/rules.mk
+++ b/keyboards/bpiphany/sixshooter/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/bpiphany/tiger_lily/keymaps/default/rules.mk b/keyboards/bpiphany/tiger_lily/keymaps/default/rules.mk
index 7a331cd53..46af5cd7b 100644
--- a/keyboards/bpiphany/tiger_lily/keymaps/default/rules.mk
+++ b/keyboards/bpiphany/tiger_lily/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/bpiphany/tiger_lily/rules.mk b/keyboards/bpiphany/tiger_lily/rules.mk
index edd3ab6a4..f6c3a4894 100644
--- a/keyboards/bpiphany/tiger_lily/rules.mk
+++ b/keyboards/bpiphany/tiger_lily/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/bpiphany/unloved_bastard/rules.mk b/keyboards/bpiphany/unloved_bastard/rules.mk
index 65123020f..7afc2d039 100644
--- a/keyboards/bpiphany/unloved_bastard/rules.mk
+++ b/keyboards/bpiphany/unloved_bastard/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/bthlabs/geekpad/rules.mk b/keyboards/bthlabs/geekpad/rules.mk
index e05730c69..4b7193da4 100644
--- a/keyboards/bthlabs/geekpad/rules.mk
+++ b/keyboards/bthlabs/geekpad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/business_card/alpha/rules.mk b/keyboards/business_card/alpha/rules.mk
index e03f942e9..13cbddc3c 100644
--- a/keyboards/business_card/alpha/rules.mk
+++ b/keyboards/business_card/alpha/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/business_card/beta/rules.mk b/keyboards/business_card/beta/rules.mk
index e03f942e9..13cbddc3c 100644
--- a/keyboards/business_card/beta/rules.mk
+++ b/keyboards/business_card/beta/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/business_card/rules.mk b/keyboards/business_card/rules.mk
index 7e37685de..591261d28 100644
--- a/keyboards/business_card/rules.mk
+++ b/keyboards/business_card/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEFAULT_FOLDER = business_card/beta
diff --git a/keyboards/butterstick/rules.mk b/keyboards/butterstick/rules.mk
index 764e7d6aa..b73ed405a 100644
--- a/keyboards/butterstick/rules.mk
+++ b/keyboards/butterstick/rules.mk
@@ -11,9 +11,9 @@ MCU = atmega32u4
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
STENO_ENABLE = yes # Needed for chording
diff --git a/keyboards/c39/rules.mk b/keyboards/c39/rules.mk
index c7a902045..ed3554aac 100755
--- a/keyboards/c39/rules.mk
+++ b/keyboards/c39/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/candybar/chconf.h b/keyboards/candybar/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/candybar/chconf.h
+++ b/keyboards/candybar/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/candybar/rules.mk b/keyboards/candybar/rules.mk
index 0e1a8517f..cb1b83288 100644
--- a/keyboards/candybar/rules.mk
+++ b/keyboards/candybar/rules.mk
@@ -18,3 +18,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no
SERIAL_LINK_ENABLE = no
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/an_c/chconf.h b/keyboards/cannonkeys/an_c/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/cannonkeys/an_c/chconf.h
+++ b/keyboards/cannonkeys/an_c/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h
index 55414ba50..6390e0789 100644
--- a/keyboards/cannonkeys/an_c/config.h
+++ b/keyboards/cannonkeys/an_c/config.h
@@ -62,6 +62,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
+
+// Let VIA handle the QMK RGBLIGHT
+#define VIA_QMK_RGBLIGHT_ENABLE
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/cannonkeys/an_c/rules.mk b/keyboards/cannonkeys/an_c/rules.mk
index 151f72fd0..2050ba34c 100644
--- a/keyboards/cannonkeys/an_c/rules.mk
+++ b/keyboards/cannonkeys/an_c/rules.mk
@@ -22,3 +22,7 @@ CUSTOM_MATRIX = no # Custom matrix file
RGBLIGHT_ENABLE = yes
LAYOUTS = 60_ansi 60_tsangan_hhkb
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/bluepill/keyboard.c b/keyboards/cannonkeys/bluepill/keyboard.c
index 865628ecc..7eb30ea13 100644
--- a/keyboards/cannonkeys/bluepill/keyboard.c
+++ b/keyboards/cannonkeys/bluepill/keyboard.c
@@ -4,10 +4,14 @@
#include "util.h"
#include "quantum.h"
-#ifdef BOARD_GENERIC_STM32_F103
+#ifdef BOARD_STM32_F103_STM32DUINO
#define LED_ON() do { palClearPad(GPIOC, 13) ;} while (0)
#define LED_OFF() do { palSetPad(GPIOC, 13); } while (0)
#define LED_TGL() do { palTogglePad(GPIOC, 13); } while (0)
+#else
+#define LED_ON()
+#define LED_OFF()
+#define LED_TGL()
#endif
void matrix_init_kb(void){
diff --git a/keyboards/cannonkeys/chimera65/chconf.h b/keyboards/cannonkeys/chimera65/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/cannonkeys/chimera65/chconf.h
+++ b/keyboards/cannonkeys/chimera65/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/chimera65/rules.mk b/keyboards/cannonkeys/chimera65/rules.mk
index 1e300a99c..9b1ab5899 100644
--- a/keyboards/cannonkeys/chimera65/rules.mk
+++ b/keyboards/cannonkeys/chimera65/rules.mk
@@ -20,3 +20,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = no # Custom matrix file
# BACKLIGHT_ENABLE = yes # This is broken on 072 for some reason
RGBLIGHT_ENABLE = no
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/instant60/chconf.h b/keyboards/cannonkeys/instant60/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/cannonkeys/instant60/chconf.h
+++ b/keyboards/cannonkeys/instant60/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h
index 2d23d5f83..4fa76cb88 100644
--- a/keyboards/cannonkeys/instant60/config.h
+++ b/keyboards/cannonkeys/instant60/config.h
@@ -62,6 +62,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
+
+// Let VIA handle the QMK RGBLIGHT
+#define VIA_QMK_RGBLIGHT_ENABLE
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/cannonkeys/instant60/rules.mk b/keyboards/cannonkeys/instant60/rules.mk
index db753884d..0b4afd8da 100644
--- a/keyboards/cannonkeys/instant60/rules.mk
+++ b/keyboards/cannonkeys/instant60/rules.mk
@@ -22,3 +22,7 @@ CUSTOM_MATRIX = no # Custom matrix file
RGBLIGHT_ENABLE = yes
LAYOUTS = 60_ansi 60_tsangan_hhkb
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/iron165/chconf.h b/keyboards/cannonkeys/iron165/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/cannonkeys/iron165/chconf.h
+++ b/keyboards/cannonkeys/iron165/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/iron165/config.h b/keyboards/cannonkeys/iron165/config.h
index 640f6fb65..6350514d7 100644
--- a/keyboards/cannonkeys/iron165/config.h
+++ b/keyboards/cannonkeys/iron165/config.h
@@ -54,6 +54,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/cannonkeys/iron165/rules.mk b/keyboards/cannonkeys/iron165/rules.mk
index edc84edd5..33529718e 100644
--- a/keyboards/cannonkeys/iron165/rules.mk
+++ b/keyboards/cannonkeys/iron165/rules.mk
@@ -20,3 +20,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = no # Custom matrix file
# BACKLIGHT_ENABLE = yes # This is broken on 072 for some reason
RGBLIGHT_ENABLE = no
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.c
deleted file mode 100644
index 8c5a87f35..000000000
--- a/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-// Value to place in RTC backup register 10 for persistent bootloader mode
-#define RTC_BOOTLOADER_FLAG 0x424C
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
- //JTAG-DP Disabled and SW-DP Enabled
- AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
- //Set backup register DR10 to enter bootloader on reset
- BKP->DR10 = RTC_BOOTLOADER_FLAG;
-}
diff --git a/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.h
deleted file mode 100644
index 9427adabf..000000000
--- a/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOA_LED 8
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
diff --git a/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.mk
deleted file mode 100644
index 6b8b312fd..000000000
--- a/keyboards/cannonkeys/ortho48/boards/GENERIC_STM32_F103/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/cannonkeys/ortho48/chconf.h b/keyboards/cannonkeys/ortho48/chconf.h
index bbd9b2da6..9299be587 100644
--- a/keyboards/cannonkeys/ortho48/chconf.h
+++ b/keyboards/cannonkeys/ortho48/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/ortho48/ld/MKL26Z64.ld b/keyboards/cannonkeys/ortho48/ld/MKL26Z64.ld
deleted file mode 100644
index c4ca8b874..000000000
--- a/keyboards/cannonkeys/ortho48/ld/MKL26Z64.ld
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * KL26Z64 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x100
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 62k - 0x410
- flash3 : org = 0x0000F800, len = 2k
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFFF800, len = 8k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-__eeprom_workarea_start__ = ORIGIN(flash3);
-__eeprom_workarea_size__ = LENGTH(flash3);
-__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/ortho48/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/ortho48/ld/STM32F103x8_stm32duino_bootloader.ld
deleted file mode 100644
index d0688ef60..000000000
--- a/keyboards/cannonkeys/ortho48/ld/STM32F103x8_stm32duino_bootloader.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 64k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/ortho48/rules.mk b/keyboards/cannonkeys/ortho48/rules.mk
index 4bca8fde0..59c12681c 100644
--- a/keyboards/cannonkeys/ortho48/rules.mk
+++ b/keyboards/cannonkeys/ortho48/rules.mk
@@ -4,7 +4,7 @@ MCU = STM32F103
# GENERIC STM32F103C8T6 board - stm32duino bootloader
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
+BOARD = STM32_F103_STM32DUINO
DFU_ARGS = -d 1eaf:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
@@ -22,6 +22,11 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
RGBLIGHT_ENABLE = yes
LAYOUTS = ortho_4x12
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.c
deleted file mode 100644
index 8c5a87f35..000000000
--- a/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-// Value to place in RTC backup register 10 for persistent bootloader mode
-#define RTC_BOOTLOADER_FLAG 0x424C
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
- //JTAG-DP Disabled and SW-DP Enabled
- AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
- //Set backup register DR10 to enter bootloader on reset
- BKP->DR10 = RTC_BOOTLOADER_FLAG;
-}
diff --git a/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.h
deleted file mode 100644
index 9427adabf..000000000
--- a/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOA_LED 8
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
diff --git a/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.mk
deleted file mode 100644
index 6b8b312fd..000000000
--- a/keyboards/cannonkeys/ortho60/boards/GENERIC_STM32_F103/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/cannonkeys/ortho60/chconf.h b/keyboards/cannonkeys/ortho60/chconf.h
index bbd9b2da6..9299be587 100644
--- a/keyboards/cannonkeys/ortho60/chconf.h
+++ b/keyboards/cannonkeys/ortho60/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/ortho60/ld/MKL26Z64.ld b/keyboards/cannonkeys/ortho60/ld/MKL26Z64.ld
deleted file mode 100644
index c4ca8b874..000000000
--- a/keyboards/cannonkeys/ortho60/ld/MKL26Z64.ld
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * KL26Z64 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x100
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 62k - 0x410
- flash3 : org = 0x0000F800, len = 2k
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFFF800, len = 8k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-__eeprom_workarea_start__ = ORIGIN(flash3);
-__eeprom_workarea_size__ = LENGTH(flash3);
-__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld
deleted file mode 100644
index d0688ef60..000000000
--- a/keyboards/cannonkeys/ortho60/ld/STM32F103x8_stm32duino_bootloader.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 64k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/ortho60/rules.mk b/keyboards/cannonkeys/ortho60/rules.mk
index d2fa535f4..2077eea66 100644
--- a/keyboards/cannonkeys/ortho60/rules.mk
+++ b/keyboards/cannonkeys/ortho60/rules.mk
@@ -4,7 +4,7 @@ MCU = STM32F103
# GENERIC STM32F103C8T6 board - stm32duino bootloader
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
+BOARD = STM32_F103_STM32DUINO
DFU_ARGS = -d 1eaf:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
@@ -22,6 +22,11 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
RGBLIGHT_ENABLE = yes
LAYOUTS = ortho_5x12
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.c
deleted file mode 100644
index 8c5a87f35..000000000
--- a/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-// Value to place in RTC backup register 10 for persistent bootloader mode
-#define RTC_BOOTLOADER_FLAG 0x424C
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
- //JTAG-DP Disabled and SW-DP Enabled
- AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
- //Set backup register DR10 to enter bootloader on reset
- BKP->DR10 = RTC_BOOTLOADER_FLAG;
-}
diff --git a/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.h
deleted file mode 100644
index 9427adabf..000000000
--- a/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOA_LED 8
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
diff --git a/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.mk
deleted file mode 100644
index 6b8b312fd..000000000
--- a/keyboards/cannonkeys/ortho75/boards/GENERIC_STM32_F103/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/cannonkeys/ortho75/chconf.h b/keyboards/cannonkeys/ortho75/chconf.h
index bbd9b2da6..9299be587 100644
--- a/keyboards/cannonkeys/ortho75/chconf.h
+++ b/keyboards/cannonkeys/ortho75/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/ortho75/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/ortho75/ld/STM32F103x8_stm32duino_bootloader.ld
deleted file mode 100644
index d0688ef60..000000000
--- a/keyboards/cannonkeys/ortho75/ld/STM32F103x8_stm32duino_bootloader.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 64k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/ortho75/rules.mk b/keyboards/cannonkeys/ortho75/rules.mk
index 5b90e87fd..3be309924 100644
--- a/keyboards/cannonkeys/ortho75/rules.mk
+++ b/keyboards/cannonkeys/ortho75/rules.mk
@@ -4,7 +4,7 @@ MCU = STM32F103
# GENERIC STM32F103C8T6 board - stm32duino bootloader
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
+BOARD = STM32_F103_STM32DUINO
DFU_ARGS = -d 1eaf:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
@@ -22,7 +22,12 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
RGBLIGHT_ENABLE = yes
ENCODER_ENABLE = yes
LAYOUTS = ortho_5x15
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c
deleted file mode 100644
index 8c5a87f35..000000000
--- a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-// Value to place in RTC backup register 10 for persistent bootloader mode
-#define RTC_BOOTLOADER_FLAG 0x424C
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
- //JTAG-DP Disabled and SW-DP Enabled
- AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
- //Set backup register DR10 to enter bootloader on reset
- BKP->DR10 = RTC_BOOTLOADER_FLAG;
-}
diff --git a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h
deleted file mode 100644
index 9427adabf..000000000
--- a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOA_LED 8
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
diff --git a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk
deleted file mode 100644
index 6b8b312fd..000000000
--- a/keyboards/cannonkeys/practice60/boards/GENERIC_STM32_F103/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/cannonkeys/practice60/chconf.h b/keyboards/cannonkeys/practice60/chconf.h
index bbd9b2da6..9299be587 100644
--- a/keyboards/cannonkeys/practice60/chconf.h
+++ b/keyboards/cannonkeys/practice60/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/practice60/ld/MKL26Z64.ld b/keyboards/cannonkeys/practice60/ld/MKL26Z64.ld
deleted file mode 100644
index c4ca8b874..000000000
--- a/keyboards/cannonkeys/practice60/ld/MKL26Z64.ld
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * KL26Z64 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x100
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 62k - 0x410
- flash3 : org = 0x0000F800, len = 2k
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFFF800, len = 8k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-__eeprom_workarea_start__ = ORIGIN(flash3);
-__eeprom_workarea_size__ = LENGTH(flash3);
-__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld
deleted file mode 100644
index d0688ef60..000000000
--- a/keyboards/cannonkeys/practice60/ld/STM32F103x8_stm32duino_bootloader.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 64k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/practice60/rules.mk b/keyboards/cannonkeys/practice60/rules.mk
index 7c3fec31e..be1584d72 100644
--- a/keyboards/cannonkeys/practice60/rules.mk
+++ b/keyboards/cannonkeys/practice60/rules.mk
@@ -4,7 +4,7 @@ MCU = STM32F103
# GENERIC STM32F103C8T6 board - stm32duino bootloader
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
+BOARD = STM32_F103_STM32DUINO
DFU_ARGS = -d 1eaf:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
@@ -22,8 +22,13 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
RGBLIGHT_ENABLE = yes
LAYOUTS = 60_ansi
DEFAULT_FOLDER = cannonkeys/practice60
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.c b/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.c
deleted file mode 100644
index 8c5a87f35..000000000
--- a/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-// Value to place in RTC backup register 10 for persistent bootloader mode
-#define RTC_BOOTLOADER_FLAG 0x424C
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
- //JTAG-DP Disabled and SW-DP Enabled
- AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
- //Set backup register DR10 to enter bootloader on reset
- BKP->DR10 = RTC_BOOTLOADER_FLAG;
-}
diff --git a/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.h b/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.h
deleted file mode 100644
index 9427adabf..000000000
--- a/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOA_LED 8
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
diff --git a/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.mk b/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.mk
deleted file mode 100644
index 6b8b312fd..000000000
--- a/keyboards/cannonkeys/practice65/boards/GENERIC_STM32_F103/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/cannonkeys/practice65/chconf.h b/keyboards/cannonkeys/practice65/chconf.h
index bbd9b2da6..9299be587 100644
--- a/keyboards/cannonkeys/practice65/chconf.h
+++ b/keyboards/cannonkeys/practice65/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/practice65/ld/MKL26Z64.ld b/keyboards/cannonkeys/practice65/ld/MKL26Z64.ld
deleted file mode 100644
index c4ca8b874..000000000
--- a/keyboards/cannonkeys/practice65/ld/MKL26Z64.ld
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * KL26Z64 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x100
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 62k - 0x410
- flash3 : org = 0x0000F800, len = 2k
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFFF800, len = 8k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-__eeprom_workarea_start__ = ORIGIN(flash3);
-__eeprom_workarea_size__ = LENGTH(flash3);
-__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/practice65/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/cannonkeys/practice65/ld/STM32F103x8_stm32duino_bootloader.ld
deleted file mode 100644
index d0688ef60..000000000
--- a/keyboards/cannonkeys/practice65/ld/STM32F103x8_stm32duino_bootloader.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 64k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/cannonkeys/practice65/rules.mk b/keyboards/cannonkeys/practice65/rules.mk
index b43e591ae..d4a396120 100644
--- a/keyboards/cannonkeys/practice65/rules.mk
+++ b/keyboards/cannonkeys/practice65/rules.mk
@@ -4,7 +4,7 @@ MCU = STM32F103
# GENERIC STM32F103C8T6 board - stm32duino bootloader
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
+BOARD = STM32_F103_STM32DUINO
DFU_ARGS = -d 1eaf:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
@@ -22,4 +22,9 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
RGBLIGHT_ENABLE = yes
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/satisfaction75/chconf.h b/keyboards/cannonkeys/satisfaction75/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/cannonkeys/satisfaction75/chconf.h
+++ b/keyboards/cannonkeys/satisfaction75/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h
index 7a4354c8a..69d02806e 100644
--- a/keyboards/cannonkeys/satisfaction75/config.h
+++ b/keyboards/cannonkeys/satisfaction75/config.h
@@ -73,6 +73,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// 6 for 3x custom encoder settings, left, right, and press (18 bytes)
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 21
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/cannonkeys/satisfaction75/keymaps/default/keymap.c b/keyboards/cannonkeys/satisfaction75/keymaps/default/keymap.c
index 61a9d097a..10a4b60ee 100644
--- a/keyboards/cannonkeys/satisfaction75/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/satisfaction75/keymaps/default/keymap.c
@@ -32,6 +32,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/cannonkeys/satisfaction75/led_custom.h b/keyboards/cannonkeys/satisfaction75/led_custom.h
index fe5c9e5dc..d818b48ce 100644
--- a/keyboards/cannonkeys/satisfaction75/led_custom.h
+++ b/keyboards/cannonkeys/satisfaction75/led_custom.h
@@ -3,3 +3,5 @@
void backlight_task(void);
void breathing_interrupt_disable(void);
void breathing_interrupt_enable(void);
+void breathing_enable(void);
+void breathing_disable(void);
diff --git a/keyboards/cannonkeys/satisfaction75/rules.mk b/keyboards/cannonkeys/satisfaction75/rules.mk
index 7e0b15b92..5fd801819 100644
--- a/keyboards/cannonkeys/satisfaction75/rules.mk
+++ b/keyboards/cannonkeys/satisfaction75/rules.mk
@@ -22,3 +22,7 @@ QWIIC_ENABLE += MICRO_OLED
#BACKLIGHT_ENABLE = yes
DEFAULT_FOLDER = cannonkeys/satisfaction75/rev1
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.c b/keyboards/cannonkeys/satisfaction75/satisfaction75.c
index 0fe09c384..f92067c98 100644
--- a/keyboards/cannonkeys/satisfaction75/satisfaction75.c
+++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.c
@@ -55,6 +55,54 @@ backlight_config_t kb_backlight_config = {
};
#ifdef VIA_ENABLE
+
+void backlight_get_value( uint8_t *data )
+{
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+ switch (*value_id)
+ {
+ case id_qmk_backlight_brightness:
+ {
+ // level / BACKLIGHT_LEVELS * 255
+ value_data[0] = ((uint16_t)kb_backlight_config.level) * 255 / BACKLIGHT_LEVELS;
+ break;
+ }
+ case id_qmk_backlight_effect:
+ {
+ value_data[0] = kb_backlight_config.breathing ? 1 : 0;
+ break;
+ }
+ }
+}
+
+void backlight_set_value( uint8_t *data )
+{
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+ switch (*value_id)
+ {
+ case id_qmk_backlight_brightness:
+ {
+ // level / 255 * BACKLIGHT_LEVELS
+ kb_backlight_config.level = ((uint16_t)value_data[0]) * BACKLIGHT_LEVELS / 255;
+ backlight_set(kb_backlight_config.level);
+ break;
+ }
+ case id_qmk_backlight_effect:
+ {
+ if ( value_data[0] == 0 ) {
+ kb_backlight_config.breathing = false;
+ breathing_disable();
+ } else {
+ kb_backlight_config.breathing = true;
+ breathing_enable();
+ }
+ break;
+ }
+ }
+}
+
void raw_hid_receive_kb( uint8_t *data, uint8_t length )
{
uint8_t *command_id = &(data[0]);
@@ -139,6 +187,21 @@ void raw_hid_receive_kb( uint8_t *data, uint8_t length )
}
break;
}
+ case id_lighting_set_value:
+ {
+ backlight_set_value(command_data);
+ break;
+ }
+ case id_lighting_get_value:
+ {
+ backlight_get_value(command_data);
+ break;
+ }
+ case id_lighting_save:
+ {
+ backlight_config_save();
+ break;
+ }
default:
{
// Unhandled message.
diff --git a/keyboards/cannonkeys/savage65/chconf.h b/keyboards/cannonkeys/savage65/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/cannonkeys/savage65/chconf.h
+++ b/keyboards/cannonkeys/savage65/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h
index b69aba39e..98ec1067a 100644
--- a/keyboards/cannonkeys/savage65/config.h
+++ b/keyboards/cannonkeys/savage65/config.h
@@ -62,6 +62,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
+
+// Let VIA handle the QMK RGBLIGHT
+#define VIA_QMK_RGBLIGHT_ENABLE
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/cannonkeys/savage65/rules.mk b/keyboards/cannonkeys/savage65/rules.mk
index 199dd1078..1c1c4c2ec 100644
--- a/keyboards/cannonkeys/savage65/rules.mk
+++ b/keyboards/cannonkeys/savage65/rules.mk
@@ -21,3 +21,6 @@ CUSTOM_MATRIX = no # Custom matrix file
# BACKLIGHT_ENABLE = yes # This is broken on 072 for some reason
RGBLIGHT_ENABLE = yes
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/cannonkeys/stm32f072/keyboard.c b/keyboards/cannonkeys/stm32f072/keyboard.c
index bf35a76c1..fdda018fc 100644
--- a/keyboards/cannonkeys/stm32f072/keyboard.c
+++ b/keyboards/cannonkeys/stm32f072/keyboard.c
@@ -126,8 +126,86 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
return process_record_user(keycode, record);;
}
+#ifdef VIA_ENABLE
+void backlight_get_value( uint8_t *data )
+{
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+ switch (*value_id)
+ {
+ case id_qmk_backlight_brightness:
+ {
+ // level / BACKLIGHT_LEVELS * 255
+ value_data[0] = ((uint16_t)kb_backlight_config.level) * 255 / BACKLIGHT_LEVELS;
+ break;
+ }
+ case id_qmk_backlight_effect:
+ {
+ value_data[0] = kb_backlight_config.breathing ? 1 : 0;
+ break;
+ }
+ }
+}
+void backlight_set_value( uint8_t *data )
+{
+ uint8_t *value_id = &(data[0]);
+ uint8_t *value_data = &(data[1]);
+ switch (*value_id)
+ {
+ case id_qmk_backlight_brightness:
+ {
+ // level / 255 * BACKLIGHT_LEVELS
+ kb_backlight_config.level = ((uint16_t)value_data[0]) * BACKLIGHT_LEVELS / 255;
+ backlight_set(kb_backlight_config.level);
+ break;
+ }
+ case id_qmk_backlight_effect:
+ {
+ if ( value_data[0] == 0 ) {
+ kb_backlight_config.breathing = false;
+ breathing_disable();
+ } else {
+ kb_backlight_config.breathing = true;
+ breathing_enable();
+ }
+ break;
+ }
+ }
+}
+
+void raw_hid_receive_kb( uint8_t *data, uint8_t length )
+{
+ uint8_t *command_id = &(data[0]);
+ uint8_t *command_data = &(data[1]);
+ switch ( *command_id )
+ {
+ case id_lighting_set_value:
+ {
+ backlight_set_value(command_data);
+ break;
+ }
+ case id_lighting_get_value:
+ {
+ backlight_get_value(command_data);
+ break;
+ }
+ case id_lighting_save:
+ {
+ backlight_config_save();
+ break;
+ }
+ default:
+ {
+ // Unhandled message.
+ *command_id = id_unhandled;
+ break;
+ }
+ }
+ // DO NOT call raw_hid_send(data,length) here, let caller do this
+}
+#endif
//
// In the case of VIA being disabled, we still need to check if
diff --git a/keyboards/cannonkeys/stm32f072/led_custom.h b/keyboards/cannonkeys/stm32f072/led_custom.h
index 28e0f02ed..550d5b84c 100644
--- a/keyboards/cannonkeys/stm32f072/led_custom.h
+++ b/keyboards/cannonkeys/stm32f072/led_custom.h
@@ -4,3 +4,5 @@ void backlight_task(void);
void breathing_interrupt_disable(void);
void breathing_interrupt_enable(void);
void breathing_toggle(void);
+void breathing_enable(void);
+void breathing_disable(void);
diff --git a/keyboards/cannonkeys/tmov2/chconf.h b/keyboards/cannonkeys/tmov2/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/cannonkeys/tmov2/chconf.h
+++ b/keyboards/cannonkeys/tmov2/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h
index d5f1d0788..159382fbc 100644
--- a/keyboards/cannonkeys/tmov2/config.h
+++ b/keyboards/cannonkeys/tmov2/config.h
@@ -62,6 +62,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
+
+// Let VIA handle the QMK RGBLIGHT
+#define VIA_QMK_RGBLIGHT_ENABLE
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/cannonkeys/tmov2/rules.mk b/keyboards/cannonkeys/tmov2/rules.mk
index e6f0ce30a..646288504 100644
--- a/keyboards/cannonkeys/tmov2/rules.mk
+++ b/keyboards/cannonkeys/tmov2/rules.mk
@@ -21,3 +21,6 @@ CUSTOM_MATRIX = no # Custom matrix file
# BACKLIGHT_ENABLE = yes # This is broken on 072 right now
RGBLIGHT_ENABLE = yes
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/catch22/rules.mk b/keyboards/catch22/rules.mk
index 227117b76..1622b95c5 100644
--- a/keyboards/catch22/rules.mk
+++ b/keyboards/catch22/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/chidori/board.c b/keyboards/chidori/board.c
new file mode 100644
index 000000000..ff5b76a3a
--- /dev/null
+++ b/keyboards/chidori/board.c
@@ -0,0 +1,366 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include <stdint.h>
+#include <stdbool.h>
+#include "wait.h"
+#include "print.h"
+#include "debug.h"
+#include "matrix.h"
+#include "quantum.h"
+#include "board.h"
+#include "i2c_master.h"
+
+static board_info_t boards[NUM_BOARDS] = BOARD_INFOS;
+static board_info_t* master_board = NULL;
+
+static bool board_is_master(board_info_t* board);
+static bool board_is_initialized(board_info_t* board);
+static board_info_t* get_board_by_index(uint8_t board_index);
+static uint8_t board_merge_led_config(board_info_t* board, uint8_t iodir);
+static uint8_t board_merge_led_status(board_info_t* board, uint8_t data);
+static void board_master_init(void);
+static void board_slave_init(void);
+
+//
+// board interface
+//
+static void board_select_master_row(board_info_t* board, uint8_t row);
+static void board_unselect_master_row(board_info_t* board, uint8_t row);
+static void board_unselect_master_rows(board_info_t* board);
+static bool board_read_cols_on_master_row(board_info_t* board, matrix_row_t current_matrix[], uint8_t row);
+static void board_set_master_led(board_info_t* board, uint8_t led_index, bool status);
+static void board_select_slave_row(board_info_t* board, uint8_t row);
+static void board_unselect_slave_row(board_info_t* board, uint8_t row);
+static void board_unselect_slave_rows(board_info_t* board);
+static bool board_read_cols_on_slave_row(board_info_t* board, matrix_row_t current_matrix[], uint8_t row);
+static void board_set_slave_led(board_info_t* board, uint8_t led_index, bool status);
+
+static board_interface_t master_interface = {board_select_master_row, board_unselect_master_row, board_unselect_master_rows, board_read_cols_on_master_row, board_set_master_led};
+static board_interface_t slave_interface = {board_select_slave_row, board_unselect_slave_row, board_unselect_slave_rows, board_read_cols_on_slave_row, board_set_slave_led};
+
+static board_interface_t* get_interface(board_info_t* board) {
+ if (board_is_master(board)) {
+ return &master_interface;
+ }
+ return &slave_interface;
+}
+
+static void board_set_master_led(board_info_t* board, uint8_t led_index, bool status) {
+ pin_t pin = board->led_pins[led_index];
+ board->led_status[led_index] = status;
+ setPinOutput(pin);
+ status ? writePinHigh(pin) : writePinLow(pin);
+}
+
+static void board_set_slave_led(board_info_t* board, uint8_t led_index, bool status) {
+ board->led_status[led_index] = status;
+ uint8_t iodir = board_merge_led_config(board, 0xff);
+ uint8_t data = board_merge_led_status(board, 0x00);
+ i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_IODIRB, (const uint8_t*)&iodir, sizeof(iodir), BOARD_I2C_TIMEOUT);
+ i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_OLATB, (const uint8_t*)&data, sizeof(data), BOARD_I2C_TIMEOUT);
+}
+
+static uint8_t board_merge_led_config(board_info_t* board, uint8_t iodir) {
+ for (uint8_t i = 0; i < NUM_LEDS; i++) {
+ iodir &= PIN2MASK(board->led_pins[i]);
+ }
+ return iodir;
+}
+
+static bool board_slave_config(board_info_t* board) {
+ uint8_t set = 0xff;
+ uint8_t clear = 0x00;
+ i2c_status_t res = 0;
+
+ // Set to input
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_IODIRA, (const uint8_t*)&set, sizeof(set), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+ // RESTRICTION: LEDs only on PORT B.
+ set = board_merge_led_config(board, set);
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_IODIRB, (const uint8_t*)&set, sizeof(set), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+ set = 0xff;
+
+ // Pull up for input - enable
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_GPPUA, (const uint8_t*)&set, sizeof(set), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_GPPUB, (const uint8_t*)&set, sizeof(set), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+
+ // Disable interrupt
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_GPINTENA, (const uint8_t*)&clear, sizeof(clear), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_GPINTENB, (const uint8_t*)&clear, sizeof(clear), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+
+ // Polarity - same logic
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_IPOLA, (const uint8_t*)&clear, sizeof(clear), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+ res = i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_IPOLB, (const uint8_t*)&clear, sizeof(clear), BOARD_I2C_TIMEOUT);
+ if (res < 0) return false;
+
+ return true;
+}
+
+static void board_slave_init(void) {
+ i2c_init();
+ _delay_ms(500);
+
+ for (uint8_t i = 0; i < NUM_BOARDS; i++) {
+ board_info_t* board = &boards[i];
+ if (board_is_master(board)) {
+ continue;
+ }
+ if (i2c_start(EXPANDER_ADDR(board->i2c_address), BOARD_I2C_TIMEOUT) != I2C_STATUS_SUCCESS) {
+ continue;
+ }
+ i2c_stop();
+ if (board_slave_config(board)) {
+ board->initialized = true;
+ }
+ }
+}
+
+inline bool board_is_master(board_info_t* board) {
+ if (board) {
+ return board->master;
+ }
+ return false;
+}
+
+inline uint8_t matrix_rows(void) { return MATRIX_ROWS; }
+
+inline uint8_t matrix2board(uint8_t row) { return row % NUM_ROWS; }
+
+inline uint8_t board_index(uint8_t row) { return row / NUM_ROWS; }
+
+static board_info_t* get_master_board(void) {
+ if (master_board == NULL) {
+ for (uint8_t i = 0; i < NUM_BOARDS; i++) {
+ if (boards[i].master) {
+ master_board = &boards[i];
+ return master_board;
+ }
+ }
+ }
+ return NULL;
+}
+
+inline bool board_is_initialized(board_info_t* board) { return board == NULL ? false : board->initialized; }
+
+static board_info_t* get_board_by_index(uint8_t board_index) {
+ if (board_index >= 0 && board_index < NUM_BOARDS) {
+ if (!board_is_initialized(&boards[board_index])) {
+ return NULL;
+ }
+ return &boards[board_index];
+ }
+ return NULL;
+}
+
+static board_info_t* get_board(uint8_t row) {
+ uint8_t idx = board_index(row);
+ if (idx >= 0 && idx < NUM_BOARDS) {
+ if (!board_is_initialized(&boards[idx])) {
+ return NULL;
+ }
+ return &boards[idx];
+ }
+ return NULL;
+}
+
+static uint8_t board_merge_led_status(board_info_t* board, uint8_t data) {
+ if (!board_is_initialized(board)) {
+ return data;
+ }
+ for (uint8_t i = 0; i < NUM_LEDS; i++) {
+ bool status = board->led_status[i];
+ if (status) {
+ data |= (uint8_t)1 << PIN2INDEX(board->led_pins[i]);
+ } else {
+ data &= PIN2MASK(board->led_pins[i]);
+ }
+ }
+ return data;
+}
+
+//
+// Functions for slave
+//
+static uint8_t board_read_slave_cols(board_info_t* board) {
+ if (!board_is_initialized(board)) {
+ return 0xff;
+ }
+ uint8_t data = 0xff;
+ i2c_status_t res = i2c_readReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_GPIOA, &data, sizeof(data), BOARD_I2C_TIMEOUT);
+ return (res < 0) ? 0xff : data;
+}
+
+static void board_select_slave_row(board_info_t* board, uint8_t board_row) {
+ if (!board_is_initialized(board)) {
+ return;
+ }
+ uint8_t pin = board->row_pins[board_row];
+ uint8_t iodir = board_merge_led_config(board, PIN2MASK(pin));
+ uint8_t status = board_merge_led_status(board, PIN2MASK(pin));
+ i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_IODIRB, (const uint8_t*)&iodir, sizeof(iodir), BOARD_I2C_TIMEOUT);
+ i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_OLATB, (const uint8_t*)&status, sizeof(status), BOARD_I2C_TIMEOUT);
+}
+
+static void board_unselect_slave_rows(board_info_t* board) {
+ if (!board_is_initialized(board)) {
+ return;
+ }
+ uint8_t iodir = board_merge_led_config(board, 0xff);
+ uint8_t data = board_merge_led_status(board, 0x00);
+ i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_IODIRB, (const uint8_t*)&iodir, sizeof(iodir), BOARD_I2C_TIMEOUT);
+ i2c_writeReg(EXPANDER_ADDR(board->i2c_address), EXPANDER_OLATB, (const uint8_t*)&data, sizeof(data), BOARD_I2C_TIMEOUT);
+}
+
+static void board_unselect_slave_row(board_info_t* board, uint8_t board_row) { board_unselect_slave_rows(board); }
+
+/*
+ * row : matrix row (not board row)
+ */
+static bool board_read_cols_on_slave_row(board_info_t* board, matrix_row_t current_matrix[], uint8_t row) {
+ matrix_row_t last_row_value = current_matrix[row];
+ current_matrix[row] = 0;
+
+ uint8_t board_row = matrix2board(row);
+ board_select_slave_row(board, board_row);
+ wait_us(30);
+
+ uint8_t cols = board_read_slave_cols(board);
+ for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
+ uint8_t pin = board->col_pins[col_index];
+ uint8_t pin_state = cols & PIN2BIT(pin);
+ current_matrix[row] |= pin_state ? 0 : (1 << col_index);
+ }
+ board_unselect_slave_row(board, board_row);
+
+ return (last_row_value != current_matrix[row]);
+}
+
+//
+// Functions for master board
+//
+static void board_select_master_row(board_info_t* board, uint8_t board_row) {
+ setPinOutput(board->row_pins[board_row]);
+ writePinLow(board->row_pins[board_row]);
+}
+
+static void board_unselect_master_row(board_info_t* board, uint8_t board_row) { setPinInputHigh(board->row_pins[board_row]); }
+
+static void board_unselect_master_rows(board_info_t* board) {
+ if (!board) {
+ return;
+ }
+ for (uint8_t x = 0; x < NUM_ROWS; x++) {
+ setPinInput(board->row_pins[x]);
+ }
+}
+
+/*
+ * row : matrix row (not board row)
+ */
+static bool board_read_cols_on_master_row(board_info_t* board, matrix_row_t current_matrix[], uint8_t row) {
+ matrix_row_t last_row_value = current_matrix[row];
+ current_matrix[row] = 0;
+
+ uint8_t board_row = matrix2board(row);
+ board_select_master_row(board, board_row);
+ wait_us(30);
+
+ for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
+ uint8_t pin_state = readPin(board->col_pins[col_index]);
+ current_matrix[row] |= pin_state ? 0 : (1 << col_index);
+ }
+ board_unselect_master_row(board, board_row);
+
+ return (last_row_value != current_matrix[row]);
+}
+
+static void board_master_init(void) {
+ board_info_t* board = get_master_board();
+ if (!board) {
+ return;
+ }
+ for (uint8_t x = 0; x < NUM_COLS; x++) {
+ setPinInputHigh(board->col_pins[x]);
+ }
+ board->initialized = true;
+}
+
+static void board_setup(void) {
+ for (uint8_t i = 0; i < NUM_BOARDS; i++) {
+ board_info_t* board = &boards[i];
+ board->interface = get_interface(board);
+ }
+}
+
+//
+// Public functions
+//
+
+// NOTE: Do not call this while matrix scanning...
+void board_set_led_by_index(uint8_t board_index, uint8_t led_index, bool status) {
+ board_info_t* board = get_board_by_index(board_index);
+ if (!board) return;
+ if (led_index < 0 || led_index > NUM_LEDS) return;
+ (*board->interface->set_led)(board, led_index, status);
+}
+
+bool board_read_cols_on_row(matrix_row_t current_matrix[], uint8_t row) {
+ bool result = false;
+ board_info_t* board = get_board(row);
+ if (!board) {
+ return false;
+ }
+ result = (*board->interface->read_cols_on_row)(board, current_matrix, row);
+ return result;
+}
+
+void board_select_row(uint8_t row) {
+ board_info_t* board = get_board(row);
+ if (!board) {
+ return;
+ }
+ uint8_t board_row = matrix2board(row);
+ (*board->interface->select_row)(board, board_row);
+}
+
+void board_unselect_row(uint8_t row) {
+ board_info_t* board = get_board(row);
+ if (!board) {
+ return;
+ }
+ uint8_t board_row = matrix2board(row);
+ (*board->interface->unselect_row)(board, board_row);
+}
+
+void board_unselect_rows(void) {
+ for (uint8_t i = 0; i < NUM_BOARDS; i++) {
+ board_info_t* board = &boards[i];
+ (*board->interface->unselect_rows)(board);
+ }
+}
+
+void board_init(void) {
+ board_setup();
+ board_master_init();
+ board_slave_init();
+ board_unselect_rows();
+}
diff --git a/keyboards/chidori/board.h b/keyboards/chidori/board.h
new file mode 100644
index 000000000..892ea6c0f
--- /dev/null
+++ b/keyboards/chidori/board.h
@@ -0,0 +1,190 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#define NUM_ROWS 4
+#define NUM_COLS 6
+#define NUM_LEDS 2
+
+#define LED_GREEN 0
+#define LED_YELLOW 1
+
+typedef struct board_info_t board_info_t;
+typedef struct board_interface_t board_interface_t;
+
+struct board_info_t {
+ bool master;
+ bool initialized;
+ uint8_t i2c_address;
+ pin_t row_pins[NUM_ROWS];
+ pin_t col_pins[NUM_COLS];
+ pin_t led_pins[NUM_LEDS];
+ bool led_status[NUM_LEDS];
+ board_interface_t* interface;
+};
+
+struct board_interface_t {
+ void (*select_row)(board_info_t* board, uint8_t row);
+ void (*unselect_row)(board_info_t* board, uint8_t row);
+ void (*unselect_rows)(board_info_t* board);
+ bool (*read_cols_on_row)(board_info_t* board, matrix_row_t current_matrix[], uint8_t row);
+ void (*set_led)(board_info_t* board, uint8_t led_index, bool status);
+};
+
+#define BOARD_I2C_TIMEOUT 20
+
+#define GPA0 0x00
+#define GPA1 0x01
+#define GPA2 0x02
+#define GPA3 0x03
+#define GPA4 0x04
+#define GPA5 0x05
+#define GPA6 0x06
+#define GPA7 0x07
+#define GPB0 0x08
+#define GPB1 0x09
+#define GPB2 0x0A
+#define GPB3 0x0B
+#define GPB4 0x0C
+#define GPB5 0x0D
+#define GPB6 0x0E
+#define GPB7 0x0F
+
+//#define PORTA 0x00
+//#define PORTB 0x01
+#define PORT_MASK 0x08
+#define PIN_MASK 0x07
+
+#define PIN2REGISTER(reg, pin) (reg & ((pin & PORT_MASK) >> 3))
+#define PIN2PORT(pin) ((pin & PORT_MASK) >> 3)
+#define PIN2MASK(pin) (~(1 << PIN2INDEX(pin)))
+#define PIN2INDEX(pin) (pin & ~PORT_MASK)
+#define PIN2BIT(pin) (1 << PIN2INDEX(pin))
+
+#define EXPANDER_ADDR(addr) (addr << 1)
+
+#define EXPANDER_IODIR(pin) (0x00 | PIN2PORT(pin))
+#define EXPANDER_IPOL(pin) (0x02 | PIN2PORT(pin))
+#define EXPANDER_GPINTEN(pin) (0x04 | PIN2PORT(pin))
+#define EXPANDER_DEFVAL(pin) (0x06 | PIN2PORT(pin))
+#define EXPANDER_INTCON(pin) (0x08 | PIN2PORT(pin))
+#define EXPANDER_IOCON(pin) (0x0A | PIN2PORT(pin))
+#define EXPANDER_GPPU(pin) (0x0C | PIN2PORT(pin))
+#define EXPANDER_INTF(pin) (0x0E | PIN2PORT(pin))
+#define EXPANDER_INTCAP(pin) (0x10 | PIN2PORT(pin))
+#define EXPANDER_GPIO(pin) (0x12 | PIN2PORT(pin))
+#define EXPANDER_OLAT(pin) (0x14 | PIN2PORT(pin))
+
+#define EXPANDER_IODIRA 0x00
+#define EXPANDER_IODIRB 0x01
+#define EXPANDER_IPOLA 0x02
+#define EXPANDER_IPOLB 0x03
+#define EXPANDER_GPINTENA 0x04
+#define EXPANDER_GPINTENB 0x05
+#define EXPANDER_DEFVALA 0x06
+#define EXPANDER_DEFVALB 0x07
+#define EXPANDER_INTCONA 0x08
+#define EXPANDER_INTCONB 0x09
+#define EXPANDER_IOCONA 0x0A
+#define EXPANDER_IOCONB 0x0B
+#define EXPANDER_GPPUA 0x0C
+#define EXPANDER_GPPUB 0x0D
+#define EXPANDER_INTFA 0x0E
+#define EXPANDER_INTFB 0x0F
+#define EXPANDER_INTCAPA 0x10
+#define EXPANDER_INTCAPB 0x11
+#define EXPANDER_GPIOA 0x12
+#define EXPANDER_GPIOB 0x13
+#define EXPANDER_OLATA 0x14
+#define EXPANDER_OLATB 0x15
+
+//
+// Default board config
+//
+#ifndef NUM_BOARDS
+# define NUM_BOARDS 2
+#endif
+
+// clang-format off
+#ifndef BOARD_INFOS
+#if NUM_BOARDS == 2
+#define BOARD_INFOS \
+{ \
+ { \
+ true, \
+ false, \
+ 0x00, \
+ { D4, D5, D6, D7 }, \
+ { D1, D0, C3, C2, C1, C0 }, \
+ { B1, B2 }, \
+ { false, false }, \
+ NULL \
+ }, \
+ { \
+ false, \
+ false, \
+ 0x20, \
+ { GPB4, GPB5, GPB6, GPB7 }, \
+ { GPA7, GPA6, GPA5, GPA4, GPA3, GPA2 }, \
+ { GPB0, GPB1 }, \
+ { false, false }, \
+ NULL \
+ }, \
+}
+#elif NUM_BOARDS == 3
+#define BOARD_INFOS \
+{ \
+ { \
+ true, \
+ false, \
+ 0x00, \
+ { D4, D5, D6, D7 }, \
+ { D1, D0, C3, C2, C1, C0 }, \
+ { B1, B2 }, \
+ { false, false }, \
+ NULL \
+ }, \
+ { \
+ false, \
+ false, \
+ 0x20, \
+ { GPB4, GPB5, GPB6, GPB7 }, \
+ { GPA7, GPA6, GPA5, GPA4, GPA3, GPA2 }, \
+ { GPB0, GPB1 }, \
+ { false, false }, \
+ NULL \
+ }, \
+ { \
+ false, \
+ false, \
+ 0x21, \
+ { GPB4, GPB5, GPB6, GPB7 }, \
+ { GPA7, GPA6, GPA5, GPA4, GPA3, GPA2 }, \
+ { GPB0, GPB1 }, \
+ { false, false }, \
+ NULL \
+ }, \
+}
+#endif
+#endif
+// clang-format on
+
+void board_set_led_by_index(uint8_t board_index, uint8_t led_index, bool status);
+bool board_read_cols_on_row(matrix_row_t current_matrix[], uint8_t row);
+void board_select_row(uint8_t row);
+void board_unselect_row(uint8_t row);
+void board_unselect_rows(void);
+void board_init(void);
diff --git a/keyboards/chidori/chidori.c b/keyboards/chidori/chidori.c
new file mode 100644
index 000000000..a3b6f2c04
--- /dev/null
+++ b/keyboards/chidori/chidori.c
@@ -0,0 +1,15 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
diff --git a/keyboards/chidori/chidori.h b/keyboards/chidori/chidori.h
new file mode 100644
index 000000000..efaff7194
--- /dev/null
+++ b/keyboards/chidori/chidori.h
@@ -0,0 +1,59 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+// clang-format off
+#define LAYOUT( \
+ L01, L02, L03, L04, L05, L06, R01, R02, R03, R04, R05, R06, \
+ L07, L08, L09, L10, L11, L12, R07, R08, R09, R10, R11, R12, \
+ L13, L14, L15, L16, L17, L18, R13, R14, R15, R16, R17, R18, \
+ L19, L20, L21, L22, L23, L24, R19, R20, R21, R22, R23, R24 \
+ ) \
+ { \
+ { L01, L02, L03, L04, L05, L06 }, \
+ { L07, L08, L09, L10, L11, L12 }, \
+ { L13, L14, L15, L16, L17, L18 }, \
+ { L19, L20, L21, L22, L23, L24 }, \
+ { R01, R02, R03, R04, R05, R06 }, \
+ { R07, R08, R09, R10, R11, R12 }, \
+ { R13, R14, R15, R16, R17, R18 }, \
+ { R19, R20, R21, R22, R23, R24 } \
+ }
+
+#define LAYOUT_extended( \
+ L01, L02, L03, L04, L05, L06, M01, M02, M03, M04, M05, M06, R01, R02, R03, R04, R05, R06, \
+ L07, L08, L09, L10, L11, L12, M07, M08, M09, M10, M11, M12, R07, R08, R09, R10, R11, R12, \
+ L13, L14, L15, L16, L17, L18, M13, M14, M15, M16, M17, M18, R13, R14, R15, R16, R17, R18, \
+ L19, L20, L21, L22, L23, L24, M19, M20, M21, M22, M23, M24, R19, R20, R21, R22, R23, R24 \
+ ) \
+ { \
+ { L01, L02, L03, L04, L05, L06 }, \
+ { L07, L08, L09, L10, L11, L12 }, \
+ { L13, L14, L15, L16, L17, L18 }, \
+ { L19, L20, L21, L22, L23, L24 }, \
+ { M01, M02, M03, M04, M05, M06 }, \
+ { M07, M08, M09, M10, M11, M12 }, \
+ { M13, M14, M15, M16, M17, M18 }, \
+ { M19, M20, M21, M22, M23, M24 }, \
+ { R01, R02, R03, R04, R05, R06 }, \
+ { R07, R08, R09, R10, R11, R12 }, \
+ { R13, R14, R15, R16, R17, R18 }, \
+ { R19, R20, R21, R22, R23, R24 } \
+ }
+
+// clang-format on
diff --git a/keyboards/chidori/config.h b/keyboards/chidori/config.h
new file mode 100644
index 000000000..669b68a24
--- /dev/null
+++ b/keyboards/chidori/config.h
@@ -0,0 +1,253 @@
+/*
+Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x3942
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Kagizaraya
+#define PRODUCT Chidori
+#define DESCRIPTION Yet another split keyboard made with only through - hole components
+
+/* key matrix size */
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 6
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+/*
+#define MATRIX_ROW_PINS \
+ { D0, D5 }
+#define MATRIX_COL_PINS \
+ { F1, F0, B0 }
+*/
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+// #define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)))
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/chidori/info.json b/keyboards/chidori/info.json
new file mode 100644
index 000000000..49e8c5d40
--- /dev/null
+++ b/keyboards/chidori/info.json
@@ -0,0 +1,25 @@
+{
+ "keyboard_name": "Chidori",
+ "url": "",
+ "maintainer": "ka2hiro",
+ "width": 12,
+ "height": 4,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0},
+ {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1},
+ {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2},
+ {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}
+ ]
+ },
+ "LAYOUT_extended": {
+ "layout": [
+ {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15, "y":0},
+ {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1},
+ {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2},
+ {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":15, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/chidori/keymaps/default/config.h b/keyboards/chidori/keymaps/default/config.h
new file mode 100644
index 000000000..1501061e7
--- /dev/null
+++ b/keyboards/chidori/keymaps/default/config.h
@@ -0,0 +1,48 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/*
+ * Board config
+ */
+/*
+#define NUM_BOARDS 2
+
+#define BOARD_INFOS \
+{ \
+ { \
+ true, \
+ false, \
+ 0x00, \
+ { D4, D5, D6, D7 }, \
+ { D1, D0, C3, C2, C1, C0 }, \
+ { B1, B2 }, \
+ { false, false }, \
+ NULL \
+ }, \
+ { \
+ false, \
+ false, \
+ 0x20, \
+ { GPB4, GPB5, GPB6, GPB7 }, \
+ { GPA7, GPA6, GPA5, GPA4, GPA3, GPA2 }, \
+ { GPB0, GPB1 }, \
+ { false, false }, \
+ NULL \
+ }, \
+}
+*/
diff --git a/keyboards/chidori/keymaps/default/keymap.c b/keyboards/chidori/keymaps/default/keymap.c
new file mode 100644
index 000000000..4aacdfb74
--- /dev/null
+++ b/keyboards/chidori/keymaps/default/keymap.c
@@ -0,0 +1,176 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#include "board.h"
+
+enum layer_number { _QWERTY = 0, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST };
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK };
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define ADJUST MO(_ADJUST)
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Qwerty
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right|
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_QWERTY] = LAYOUT(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+ /* Colemak
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right|
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_COLEMAK] = LAYOUT(
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* Dvorak
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right|
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_DVORAK] = LAYOUT(
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* Lower
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | - | _ | + | { | } | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | Home | End | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_LOWER] = LAYOUT(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, _______, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+ /* Raise
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_RAISE] = LAYOUT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+ /* Adjust (Lower + Raise)
+ * ,-----------------------------------------. ,-----------------------------------------.
+ * | | Reset| | | | | | |Qwerty|Colemk|Dvorak| | Ins |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Caps | | | | | Mac | | Win | - | = |Print |ScLock|Pause |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | KANA | | Home |PageDn|PageUp| End |
+ * `-----------------------------------------' `-----------------------------------------'
+ */
+ [_ADJUST] = LAYOUT(
+ _______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_INS,
+ KC_CAPS, _______, _______, _______, _______, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SLCK, KC_PAUS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+ )
+};
+// clang-format on
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ }
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+ if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
+ board_set_led_by_index(0, LED_YELLOW, true);
+ } else {
+ board_set_led_by_index(0, LED_YELLOW, false);
+ }
+ if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
+ board_set_led_by_index(1, LED_YELLOW, true);
+ } else {
+ board_set_led_by_index(1, LED_YELLOW, false);
+ }
+}
diff --git a/keyboards/chidori/keymaps/default/readme.md b/keyboards/chidori/keymaps/default/readme.md
new file mode 100644
index 000000000..8e66dc4b3
--- /dev/null
+++ b/keyboards/chidori/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for chidori
diff --git a/keyboards/chidori/keymaps/extended/config.h b/keyboards/chidori/keymaps/extended/config.h
new file mode 100644
index 000000000..0c07b315a
--- /dev/null
+++ b/keyboards/chidori/keymaps/extended/config.h
@@ -0,0 +1,59 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/*
+ * Board config
+ */
+#define NUM_BOARDS 3
+
+/*
+#define BOARD_INFOS \
+{ \
+ { \
+ true, \
+ false, \
+ 0x00, \
+ { D4, D5, D6, D7 }, \
+ { D1, D0, C3, C2, C1, C0 }, \
+ { B1, B2 }, \
+ { false, false }, \
+ NULL \
+ }, \
+ { \
+ false, \
+ false, \
+ 0x20, \
+ { GPB4, GPB5, GPB6, GPB7 }, \
+ { GPA7, GPA6, GPA5, GPA4, GPA3, GPA2 }, \
+ { GPB0, GPB1 }, \
+ { false, false }, \
+ NULL \
+ }, \
+ { \
+ false, \
+ false, \
+ 0x21, \
+ { GPB4, GPB5, GPB6, GPB7 }, \
+ { GPA7, GPA6, GPA5, GPA4, GPA3, GPA2 }, \
+ { GPB0, GPB1 }, \
+ { false, false }, \
+ NULL \
+ }, \
+}
+*/
+
diff --git a/keyboards/chidori/keymaps/extended/keymap.c b/keyboards/chidori/keymaps/extended/keymap.c
new file mode 100644
index 000000000..a5c9769f0
--- /dev/null
+++ b/keyboards/chidori/keymaps/extended/keymap.c
@@ -0,0 +1,181 @@
+/* Copyright 2019 ENDO Katsuhiro <ka2hiro@kagizaraya.jp>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#include "board.h"
+
+enum layer_number { _QWERTY = 0, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST };
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK };
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define ADJUST MO(_ADJUST)
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Qwerty
+ * ,-----------------------------------------. ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | | 7 | 8 | 9 | |NumLck| Esc |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------| + |------+------|
+ * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' | | 4 | 5 | 6 | | / | Tab |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | | 1 | 2 | 3 | | * | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |-------------+------|Enter |------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right| | 0 | . | | - | Bksp |
+ * `-----------------------------------------' `-----------------------------------------' `-----------------------------------------'
+ */
+ [_QWERTY] = LAYOUT_extended(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_ESC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_P4, KC_P5, KC_P6, _______, KC_PSLS, KC_TAB,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , KC_P1, KC_P2, KC_P3, KC_PENT, KC_PAST, KC_PEQL,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_P0, _______, KC_PDOT,_______, KC_PMNS, KC_BSPC
+ ),
+ /* Colemak
+ * ,-----------------------------------------. ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | | 7 | 8 | 9 | |NumLck| Esc |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------| + |------+------|
+ * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' | | 4 | 5 | 6 | | / | Tab |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter | | 1 | 2 | 3 | | * | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |-------------+------|Enter |------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right| | 0 | . | | - | Bksp |
+ * `-----------------------------------------' `-----------------------------------------' `-----------------------------------------'
+ */
+ [_COLEMAK] = LAYOUT_extended(
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_ESC,
+ KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_P4, KC_P5, KC_P6, _______, KC_PSLS, KC_TAB,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , KC_P1, KC_P2, KC_P3, KC_PENT, KC_PAST, KC_PEQL,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_P0, _______, KC_PDOT,_______, KC_PMNS, KC_BSPC
+ ),
+
+ /* Dvorak
+ * ,-----------------------------------------. ,-----------------------------------------. ,-----------------------------------------.
+ * | Tab | ' | , | . | P | Y | | F | G | C | R | L | Del | | 7 | 8 | 9 | |NumLck| Esc |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------| + |------+------|
+ * | Ctrl | A | O | E | U | I | | D | H | T | N | S | / | | 4 | 5 | 6 | | / | Tab |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter | | 1 | 2 | 3 | | * | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |-------------+------|Enter |------+------|
+ * |ADJUST| Esc | Alt | GUI |LOWER |Space | | Space| RAISE| Left | Down | Up | Right| | 0 | . | | - | Bksp |
+ * `-----------------------------------------' `-----------------------------------------' `-----------------------------------------'
+ */
+ [_DVORAK] = LAYOUT_extended(
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_ESC,
+ KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_P4, KC_P5, KC_P6, _______, KC_PSLS, KC_TAB,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , KC_P1, KC_P2, KC_P3, KC_PENT, KC_PAST, KC_PEQL,
+ ADJUST, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_P0, _______, KC_PDOT,_______, KC_PMNS, KC_BSPC
+ ),
+
+ /* Lower
+ * ,-----------------------------------------. ,-----------------------------------------. ,-----------------------------------------.
+ * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | | 7 | 8 | 9 | |NumLck| Esc |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------| + |------+------|
+ * | | | | | | | | - | _ | + | { | } | | | | 4 | 5 | 6 | | / | Tab |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | Home | End | | | 1 | 2 | 3 | | * | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |-------------+------|Enter |------+------|
+ * | | | | | | | | | | Next | Vol- | Vol+ | Play | | 0 | . | | - | Bksp |
+ * `-----------------------------------------' `-----------------------------------------' `-----------------------------------------'
+ */
+ [_LOWER] = LAYOUT_extended(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_ESC,
+ _______, _______, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_P4, KC_P5, KC_P6, _______, KC_PSLS, KC_TAB,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PAST, KC_PEQL,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_P0, _______, KC_PDOT,_______, KC_PMNS, KC_BSPC
+ ),
+
+ /* Raise
+ * ,-----------------------------------------. ,-----------------------------------------. ,-----------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | | 7 | 8 | 9 | |NumLck| Esc |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------| + |------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ | | 4 | 5 | 6 | | / | Tab |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | | | 1 | 2 | 3 | | * | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |-------------+------|Enter |------+------|
+ * | | | | | | | | | | Next | Vol- | Vol+ | Play | | 0 | . | | - | Bksp |
+ * `-----------------------------------------' `-----------------------------------------' `-----------------------------------------'
+ */
+ [_RAISE] = LAYOUT_extended(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_ESC,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_P4, KC_P5, KC_P6, _______, KC_PSLS, KC_TAB,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PAST, KC_PEQL,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, KC_P0, _______, KC_PDOT,_______, KC_PMNS, KC_BSPC
+ ),
+
+ /* Adjust (Lower + Raise)
+ * ,-----------------------------------------. ,-----------------------------------------. ,-----------------------------------------.
+ * | | Reset| | | | | | |Qwerty|Colemk|Dvorak| | Ins | | 7 | 8 | 9 | |NumLck| Esc |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------| + |------+------|
+ * | Caps | | | | | Mac | | Win | - | = |Print |ScLock|Pause | | 4 | 5 | 6 | | / | Tab |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |------+------+------+------+------+------|
+ * | | | | | | | | | | | | | | | 1 | 2 | 3 | | * | = |
+ * |------+------+------+------+------+------| |------+------+------+------+------+------| |-------------+------|Enter |------+------|
+ * | | | | | | | | | | Home |PageDn|PageUp| End | | 0 | . | | - | Bksp |
+ * `-----------------------------------------' `-----------------------------------------' `-----------------------------------------'
+ */
+ [_ADJUST] = LAYOUT_extended(
+ _______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_INS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NLCK, KC_ESC,
+ KC_CAPS, _______, _______, _______, _______, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SLCK, KC_PAUS, KC_P4, KC_P5, KC_P6, _______, KC_PSLS, KC_TAB,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PAST, KC_PEQL,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_P0, _______, KC_PDOT,_______, KC_PMNS, KC_BSPC
+ )
+};
+// clang-format on
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ }
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+ if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
+ board_set_led_by_index(0, LED_YELLOW, true);
+ } else {
+ board_set_led_by_index(0, LED_YELLOW, false);
+ }
+ if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
+ board_set_led_by_index(1, LED_YELLOW, true);
+ } else {
+ board_set_led_by_index(1, LED_YELLOW, false);
+ }
+ if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
+ board_set_led_by_index(2, LED_YELLOW, true);
+ } else {
+ board_set_led_by_index(2, LED_YELLOW, false);
+ }
+}
diff --git a/keyboards/chidori/keymaps/extended/readme.md b/keyboards/chidori/keymaps/extended/readme.md
new file mode 100644
index 000000000..5bfdbedcc
--- /dev/null
+++ b/keyboards/chidori/keymaps/extended/readme.md
@@ -0,0 +1 @@
+# The extended keymap for chidori
diff --git a/keyboards/chidori/matrix.c b/keyboards/chidori/matrix.c
new file mode 100644
index 000000000..204f236a6
--- /dev/null
+++ b/keyboards/chidori/matrix.c
@@ -0,0 +1,113 @@
+/*
+Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include <stdint.h>
+#include <stdbool.h>
+#include "wait.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+#include "debounce.h"
+#include "quantum.h"
+#include "board.h"
+
+#if (MATRIX_COLS <= 8)
+# define print_matrix_header() print("\nr/c 01234567\n")
+# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
+# define matrix_bitpop(i) bitpop(matrix[i])
+# define ROW_SHIFTER ((uint8_t)1)
+#elif (MATRIX_COLS <= 16)
+# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n")
+# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row))
+# define matrix_bitpop(i) bitpop16(matrix[i])
+# define ROW_SHIFTER ((uint16_t)1)
+#elif (MATRIX_COLS <= 32)
+# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n")
+# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row))
+# define matrix_bitpop(i) bitpop32(matrix[i])
+# define ROW_SHIFTER ((uint32_t)1)
+#endif
+
+#ifdef MATRIX_MASKED
+extern const matrix_row_t matrix_mask[];
+#endif
+
+/* matrix state(1:on, 0:off) */
+static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
+static matrix_row_t matrix[MATRIX_ROWS]; // debounced values
+
+__attribute__((weak)) void matrix_init_quantum(void) { matrix_init_kb(); }
+
+__attribute__((weak)) void matrix_scan_quantum(void) { matrix_scan_kb(); }
+
+__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
+
+__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
+
+__attribute__((weak)) void matrix_init_user(void) {}
+
+__attribute__((weak)) void matrix_scan_user(void) {}
+
+inline matrix_row_t matrix_get_row(uint8_t row) {
+ // Matrix mask lets you disable switches in the returned matrix data. For example, if you have a
+ // switch blocker installed and the switch is always pressed.
+#ifdef MATRIX_MASKED
+ return matrix[row] & matrix_mask[row];
+#else
+ return matrix[row];
+#endif
+}
+
+void matrix_print(void) {
+ print_matrix_header();
+
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ phex(row);
+ print(": ");
+ print_matrix_row(row);
+ print("\n");
+ }
+}
+
+void matrix_init(void) {
+ // initialize key pins
+ board_init();
+
+ // initialize matrix state: all keys off
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ raw_matrix[i] = 0;
+ matrix[i] = 0;
+ }
+
+ debounce_init(MATRIX_ROWS);
+
+ matrix_init_quantum();
+}
+
+uint8_t matrix_scan(void) {
+ bool changed = false;
+
+ // Set row, read cols
+ for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
+ changed |= board_read_cols_on_row(raw_matrix, current_row);
+ }
+
+ debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
+
+ matrix_scan_quantum();
+ return 1;
+}
diff --git a/keyboards/chidori/readme.md b/keyboards/chidori/readme.md
new file mode 100644
index 000000000..d02b50a75
--- /dev/null
+++ b/keyboards/chidori/readme.md
@@ -0,0 +1,15 @@
+# chidori
+
+![Chidori](https://i.imgur.com/QvpLiOvl.jpg)
+
+Yet another split keyboard made with only through-hole components.
+
+* Keyboard Maintainer: [ka2hiro](https://github.com/ka2hiro) [@ka2hiro](https://twitter.com/ka2hiro)
+* Hardware Supported: Chidori PCB, ATMEGA328P
+* Hardware Availability: [@kagizaraya](https://twitter.com/kagizaraya)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make chidori:default:usbasp
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/chidori/rules.mk b/keyboards/chidori/rules.mk
new file mode 100644
index 000000000..2e88146ba
--- /dev/null
+++ b/keyboards/chidori/rules.mk
@@ -0,0 +1,44 @@
+# MCU name
+MCU = atmega328p
+ARCH = AVR8
+F_USB = $(F_CPU)
+
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = USBasp
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+CUSTOM_MATRIX = yes
+
+# project specific files
+SRC += matrix.c
+SRC += board.c
+QUANTUM_LIB_SRC += i2c_master.c
diff --git a/keyboards/chidori/usbconfig.h b/keyboards/chidori/usbconfig.h
new file mode 100644
index 000000000..361868d28
--- /dev/null
+++ b/keyboards/chidori/usbconfig.h
@@ -0,0 +1,397 @@
+/* Name: usbconfig.h
+ * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
+ * Author: Christian Starkjohann
+ * Creation Date: 2005-04-01
+ * Tabsize: 4
+ * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
+ * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
+ * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
+ */
+
+#ifndef __usbconfig_h_included__
+#define __usbconfig_h_included__
+
+#include "config.h"
+
+/*
+General Description:
+This file is an example configuration (with inline documentation) for the USB
+driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
+also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
+wire the lines to any other port, as long as D+ is also wired to INT0 (or any
+other hardware interrupt, as long as it is the highest level interrupt, see
+section at the end of this file).
+*/
+
+/* ---------------------------- Hardware Config ---------------------------- */
+
+#define USB_CFG_IOPORTNAME D
+/* This is the port where the USB bus is connected. When you configure it to
+ * "B", the registers PORTB, PINB and DDRB will be used.
+ */
+#define USB_CFG_DMINUS_BIT 3
+/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
+ * This may be any bit in the port.
+ */
+#define USB_CFG_DPLUS_BIT 2
+/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
+ * This may be any bit in the port. Please note that D+ must also be connected
+ * to interrupt pin INT0! [You can also use other interrupts, see section
+ * "Optional MCU Description" below, or you can connect D- to the interrupt, as
+ * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
+ * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
+ * markers every millisecond.]
+ */
+#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
+/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
+ * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
+ * require no crystal, they tolerate +/- 1% deviation from the nominal
+ * frequency. All other rates require a precision of 2000 ppm and thus a
+ * crystal!
+ * Since F_CPU should be defined to your actual clock rate anyway, you should
+ * not need to modify this setting.
+ */
+#define USB_CFG_CHECK_CRC 0
+/* Define this to 1 if you want that the driver checks integrity of incoming
+ * data packets (CRC checks). CRC checks cost quite a bit of code size and are
+ * currently only available for 18 MHz crystal clock. You must choose
+ * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
+ */
+
+/* ----------------------- Optional Hardware Config ------------------------ */
+
+/* #define USB_CFG_PULLUP_IOPORTNAME D */
+/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
+ * V+, you can connect and disconnect the device from firmware by calling
+ * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
+ * This constant defines the port on which the pullup resistor is connected.
+ */
+/* #define USB_CFG_PULLUP_BIT 4 */
+/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
+ * above) where the 1.5k pullup resistor is connected. See description
+ * above for details.
+ */
+
+/* --------------------------- Functional Range ---------------------------- */
+
+#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
+/* Define this to 1 if you want to compile a version with two endpoints: The
+ * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
+ * number).
+ */
+#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
+/* Define this to 1 if you want to compile a version with three endpoints: The
+ * default control endpoint 0, an interrupt-in endpoint 3 (or the number
+ * configured below) and a catch-all default interrupt-in endpoint as above.
+ * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
+ */
+#define USB_CFG_EP3_NUMBER 3
+/* If the so-called endpoint 3 is used, it can now be configured to any other
+ * endpoint number (except 0) with this macro. Default if undefined is 3.
+ */
+/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
+/* The above macro defines the startup condition for data toggling on the
+ * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
+ * Since the token is toggled BEFORE sending any data, the first packet is
+ * sent with the oposite value of this configuration!
+ */
+#define USB_CFG_IMPLEMENT_HALT 0
+/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
+ * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
+ * it is required by the standard. We have made it a config option because it
+ * bloats the code considerably.
+ */
+#define USB_CFG_SUPPRESS_INTR_CODE 0
+/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
+ * want to send any data over them. If this macro is defined to 1, functions
+ * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
+ * you need the interrupt-in endpoints in order to comply to an interface
+ * (e.g. HID), but never want to send any data. This option saves a couple
+ * of bytes in flash memory and the transmit buffers in RAM.
+ */
+#define USB_CFG_INTR_POLL_INTERVAL 1
+/* If you compile a version with endpoint 1 (interrupt-in), this is the poll
+ * interval. The value is in milliseconds and must not be less than 10 ms for
+ * low speed devices.
+ */
+#define USB_CFG_IS_SELF_POWERED 0
+/* Define this to 1 if the device has its own power supply. Set it to 0 if the
+ * device is powered from the USB bus.
+ */
+// max power draw with maxed white underglow measured at 120 mA (peaks)
+#define USB_CFG_MAX_BUS_POWER 100
+/* Set this variable to the maximum USB bus power consumption of your device.
+ * The value is in milliamperes. [It will be divided by two since USB
+ * communicates power requirements in units of 2 mA.]
+ */
+#define USB_CFG_IMPLEMENT_FN_WRITE 1
+/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
+ * transfers. Set it to 0 if you don't need it and want to save a couple of
+ * bytes.
+ */
+#define USB_CFG_IMPLEMENT_FN_READ 0
+/* Set this to 1 if you need to send control replies which are generated
+ * "on the fly" when usbFunctionRead() is called. If you only want to send
+ * data from a static buffer, set it to 0 and return the data from
+ * usbFunctionSetup(). This saves a couple of bytes.
+ */
+#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
+/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
+ * You must implement the function usbFunctionWriteOut() which receives all
+ * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
+ * can be found in 'usbRxToken'.
+ */
+#define USB_CFG_HAVE_FLOWCONTROL 0
+/* Define this to 1 if you want flowcontrol over USB data. See the definition
+ * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
+ * usbdrv.h.
+ */
+#define USB_CFG_DRIVER_FLASH_PAGE 0
+/* If the device has more than 64 kBytes of flash, define this to the 64 k page
+ * where the driver's constants (descriptors) are located. Or in other words:
+ * Define this to 1 for boot loaders on the ATMega128.
+ */
+#define USB_CFG_LONG_TRANSFERS 0
+/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
+ * in a single control-in or control-out transfer. Note that the capability
+ * for long transfers increases the driver size.
+ */
+/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
+/* This macro is a hook if you want to do unconventional things. If it is
+ * defined, it's inserted at the beginning of received message processing.
+ * If you eat the received message and don't want default processing to
+ * proceed, do a return after doing your things. One possible application
+ * (besides debugging) is to flash a status LED on each packet.
+ */
+/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
+/* This macro is a hook if you need to know when an USB RESET occurs. It has
+ * one parameter which distinguishes between the start of RESET state and its
+ * end.
+ */
+/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
+/* This macro (if defined) is executed when a USB SET_ADDRESS request was
+ * received.
+ */
+#define USB_COUNT_SOF 0
+/* define this macro to 1 if you need the global variable "usbSofCount" which
+ * counts SOF packets. This feature requires that the hardware interrupt is
+ * connected to D- instead of D+.
+ */
+/* #ifdef __ASSEMBLER__
+ * macro myAssemblerMacro
+ * in YL, TCNT0
+ * sts timer0Snapshot, YL
+ * endm
+ * #endif
+ * #define USB_SOF_HOOK myAssemblerMacro
+ * This macro (if defined) is executed in the assembler module when a
+ * Start Of Frame condition is detected. It is recommended to define it to
+ * the name of an assembler macro which is defined here as well so that more
+ * than one assembler instruction can be used. The macro may use the register
+ * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
+ * immediately after an SOF pulse may be lost and must be retried by the host.
+ * What can you do with this hook? Since the SOF signal occurs exactly every
+ * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
+ * designs running on the internal RC oscillator.
+ * Please note that Start Of Frame detection works only if D- is wired to the
+ * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
+ */
+#define USB_CFG_CHECK_DATA_TOGGLING 0
+/* define this macro to 1 if you want to filter out duplicate data packets
+ * sent by the host. Duplicates occur only as a consequence of communication
+ * errors, when the host does not receive an ACK. Please note that you need to
+ * implement the filtering yourself in usbFunctionWriteOut() and
+ * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
+ * for each control- and out-endpoint to check for duplicate packets.
+ */
+#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
+/* define this macro to 1 if you want the function usbMeasureFrameLength()
+ * compiled in. This function can be used to calibrate the AVR's RC oscillator.
+ */
+#define USB_USE_FAST_CRC 0
+/* The assembler module has two implementations for the CRC algorithm. One is
+ * faster, the other is smaller. This CRC routine is only used for transmitted
+ * messages where timing is not critical. The faster routine needs 31 cycles
+ * per byte while the smaller one needs 61 to 69 cycles. The faster routine
+ * may be worth the 32 bytes bigger code size if you transmit lots of data and
+ * run the AVR close to its limit.
+ */
+
+/* -------------------------- Device Description --------------------------- */
+
+#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xED), ((VENDOR_ID >> 8) & 0xFE)
+/* USB vendor ID for the device, low byte first. If you have registered your
+ * own Vendor ID, define it here. Otherwise you may use one of obdev's free
+ * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
+ * *** IMPORTANT NOTE ***
+ * This template uses obdev's shared VID/PID pair for Vendor Class devices
+ * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
+ * the implications!
+ */
+#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0x00), ((PRODUCT_ID >> 8) & 0x00)
+/* This is the ID of the product, low byte first. It is interpreted in the
+ * scope of the vendor ID. If you have registered your own VID with usb.org
+ * or if you have licensed a PID from somebody else, define it here. Otherwise
+ * you may use one of obdev's free shared VID/PID pairs. See the file
+ * USB-IDs-for-free.txt for details!
+ * *** IMPORTANT NOTE ***
+ * This template uses obdev's shared VID/PID pair for Vendor Class devices
+ * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
+ * the implications!
+ */
+#define USB_CFG_DEVICE_VERSION 0x00, 0x01
+/* Version number of the device: Minor number first, then major number.
+ */
+#define USB_CFG_VENDOR_NAME 'k','a','g','i','z','a','r','a','y','a'
+#define USB_CFG_VENDOR_NAME_LEN 10
+/* These two values define the vendor name returned by the USB device. The name
+ * must be given as a list of characters under single quotes. The characters
+ * are interpreted as Unicode (UTF-16) entities.
+ * If you don't want a vendor name string, undefine these macros.
+ * ALWAYS define a vendor name containing your Internet domain name if you use
+ * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for
+ * details.
+ */
+#define USB_CFG_DEVICE_NAME 'C', 'h', 'i', 'd', 'o', 'r', 'i'
+#define USB_CFG_DEVICE_NAME_LEN 7
+/* Same as above for the device name. If you don't want a device name, undefine
+ * the macros. See the file USB-IDs-for-free.txt before you assign a name if
+ * you use a shared VID/PID.
+ */
+//#define USB_CFG_SERIAL_NUMBER 'd','m','9','r','e','c','o','r','d','s','.','c','o','m',':','p','1'
+//#define USB_CFG_SERIAL_NUMBER_LEN 17
+/* Same as above for the serial number. If you don't want a serial number,
+ * undefine the macros.
+ * It may be useful to provide the serial number through other means than at
+ * compile time. See the section about descriptor properties below for how
+ * to fine tune control over USB descriptors such as the string descriptor
+ * for the serial number.
+ */
+#define USB_CFG_DEVICE_CLASS 0
+#define USB_CFG_DEVICE_SUBCLASS 0
+/* See USB specification if you want to conform to an existing device class.
+ * Class 0xff is "vendor specific".
+ */
+#define USB_CFG_INTERFACE_CLASS 3 /* HID */
+#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
+#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
+/* See USB specification if you want to conform to an existing device class or
+ * protocol. The following classes must be set at interface level:
+ * HID class is 3, no subclass and protocol required (but may be useful!)
+ * CDC class is 2, use subclass 2 and protocol 1 for ACM
+ */
+#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
+/* Define this to the length of the HID report descriptor, if you implement
+ * an HID device. Otherwise don't define it or define it to 0.
+ * If you use this define, you must add a PROGMEM character array named
+ * "usbHidReportDescriptor" to your code which contains the report descriptor.
+ * Don't forget to keep the array and this define in sync!
+ */
+
+/* #define USB_PUBLIC static */
+/* Use the define above if you #include usbdrv.c instead of linking against it.
+ * This technique saves a couple of bytes in flash memory.
+ */
+
+/* ------------------- Fine Control over USB Descriptors ------------------- */
+/* If you don't want to use the driver's default USB descriptors, you can
+ * provide our own. These can be provided as (1) fixed length static data in
+ * flash memory, (2) fixed length static data in RAM or (3) dynamically at
+ * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
+ * information about this function.
+ * Descriptor handling is configured through the descriptor's properties. If
+ * no properties are defined or if they are 0, the default descriptor is used.
+ * Possible properties are:
+ * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
+ * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
+ * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
+ * you want RAM pointers.
+ * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
+ * in static memory is in RAM, not in flash memory.
+ * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
+ * the driver must know the descriptor's length. The descriptor itself is
+ * found at the address of a well known identifier (see below).
+ * List of static descriptor names (must be declared PROGMEM if in flash):
+ * char usbDescriptorDevice[];
+ * char usbDescriptorConfiguration[];
+ * char usbDescriptorHidReport[];
+ * char usbDescriptorString0[];
+ * int usbDescriptorStringVendor[];
+ * int usbDescriptorStringDevice[];
+ * int usbDescriptorStringSerialNumber[];
+ * Other descriptors can't be provided statically, they must be provided
+ * dynamically at runtime.
+ *
+ * Descriptor properties are or-ed or added together, e.g.:
+ * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
+ *
+ * The following descriptors are defined:
+ * USB_CFG_DESCR_PROPS_DEVICE
+ * USB_CFG_DESCR_PROPS_CONFIGURATION
+ * USB_CFG_DESCR_PROPS_STRINGS
+ * USB_CFG_DESCR_PROPS_STRING_0
+ * USB_CFG_DESCR_PROPS_STRING_VENDOR
+ * USB_CFG_DESCR_PROPS_STRING_PRODUCT
+ * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
+ * USB_CFG_DESCR_PROPS_HID
+ * USB_CFG_DESCR_PROPS_HID_REPORT
+ * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
+ *
+ * Note about string descriptors: String descriptors are not just strings, they
+ * are Unicode strings prefixed with a 2 byte header. Example:
+ * int serialNumberDescriptor[] = {
+ * USB_STRING_DESCRIPTOR_HEADER(6),
+ * 'S', 'e', 'r', 'i', 'a', 'l'
+ * };
+ */
+
+#define USB_CFG_DESCR_PROPS_DEVICE 0
+#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0
+#define USB_CFG_DESCR_PROPS_STRINGS 0
+#define USB_CFG_DESCR_PROPS_STRING_0 0
+#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0
+#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0
+#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0
+#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_HID 0
+#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_HID_REPORT 0
+#define USB_CFG_DESCR_PROPS_UNKNOWN 0
+
+#define usbMsgPtr_t unsigned short
+/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
+ * a scalar type here because gcc generates slightly shorter code for scalar
+ * arithmetics than for pointer arithmetics. Remove this define for backward
+ * type compatibility or define it to an 8 bit type if you use data in RAM only
+ * and all RAM is below 256 bytes (tiny memory model in IAR CC).
+ */
+
+/* ----------------------- Optional MCU Description ------------------------ */
+
+/* The following configurations have working defaults in usbdrv.h. You
+ * usually don't need to set them explicitly. Only if you want to run
+ * the driver on a device which is not yet supported or with a compiler
+ * which is not fully supported (such as IAR C) or if you use a differnt
+ * interrupt than INT0, you may have to define some of these.
+ */
+/* #define USB_INTR_CFG MCUCR */
+/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
+/* #define USB_INTR_CFG_CLR 0 */
+/* #define USB_INTR_ENABLE GIMSK */
+/* #define USB_INTR_ENABLE_BIT INT0 */
+/* #define USB_INTR_PENDING GIFR */
+/* #define USB_INTR_PENDING_BIT INTF0 */
+/* #define USB_INTR_VECTOR INT0_vect */
+
+/* Set INT1 for D- falling edge to count SOF */
+/* #define USB_INTR_CFG EICRA */
+// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
+// /* #define USB_INTR_CFG_CLR 0 */
+// /* #define USB_INTR_ENABLE EIMSK */
+// #define USB_INTR_ENABLE_BIT INT1
+// /* #define USB_INTR_PENDING EIFR */
+// #define USB_INTR_PENDING_BIT INTF1
+// #define USB_INTR_VECTOR INT1_vect
+
+#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/chimera_ergo/rules.mk b/keyboards/chimera_ergo/rules.mk
index 0e26588e3..f37d14107 100644
--- a/keyboards/chimera_ergo/rules.mk
+++ b/keyboards/chimera_ergo/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/chimera_ls/rules.mk b/keyboards/chimera_ls/rules.mk
index 5060b9ebf..ecab7133a 100644
--- a/keyboards/chimera_ls/rules.mk
+++ b/keyboards/chimera_ls/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/chimera_ortho/rules.mk b/keyboards/chimera_ortho/rules.mk
index 549f31149..bf341ab5d 100644
--- a/keyboards/chimera_ortho/rules.mk
+++ b/keyboards/chimera_ortho/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/choco60/rules.mk b/keyboards/choco60/rules.mk
index 65b98b73b..63b982146 100644
--- a/keyboards/choco60/rules.mk
+++ b/keyboards/choco60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Enable split keyboard
diff --git a/keyboards/christmas_tree/rules.mk b/keyboards/christmas_tree/rules.mk
index 7e5269baf..da85eb372 100644
--- a/keyboards/christmas_tree/rules.mk
+++ b/keyboards/christmas_tree/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/ckeys/handwire_101/rules.mk b/keyboards/ckeys/handwire_101/rules.mk
index 07b0c57b4..41a29b353 100755
--- a/keyboards/ckeys/handwire_101/rules.mk
+++ b/keyboards/ckeys/handwire_101/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
TERMINAL_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/ckeys/nakey/rules.mk b/keyboards/ckeys/nakey/rules.mk
index afd508247..95fd5e462 100644
--- a/keyboards/ckeys/nakey/rules.mk
+++ b/keyboards/ckeys/nakey/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE ?= no # MIDI support
UNICODE_ENABLE ?= no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/ckeys/obelus/rules.mk b/keyboards/ckeys/obelus/rules.mk
index 0c5504300..686511ff8 100644
--- a/keyboards/ckeys/obelus/rules.mk
+++ b/keyboards/ckeys/obelus/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/ckeys/thedora/config.h b/keyboards/ckeys/thedora/config.h
index f2b93ee70..a3d30c304 100755
--- a/keyboards/ckeys/thedora/config.h
+++ b/keyboards/ckeys/thedora/config.h
@@ -39,7 +39,7 @@
// #define UNUSED_PINS { B14 }
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
//#define BACKLIGHT_PIN B7
diff --git a/keyboards/ckeys/thedora/readme.md b/keyboards/ckeys/thedora/readme.md
index 920162075..273811d0f 100755
--- a/keyboards/ckeys/thedora/readme.md
+++ b/keyboards/ckeys/thedora/readme.md
@@ -32,7 +32,15 @@ All cKeys PCBs are open source. However, this one has not been posted yet becaus
If you want to reflash the pre-installed firmware, use the `.bin` file for Proton C. Flash with the QMK Toolbox or via the command line.
-Building for Proton C: `make ckeys/thedora:default`
+**Building for Proton C:**
+`make ckeys/thedora:default`
+
+**Search for Bootloader Device:**
+`make ckeys/thedora:default:flash`
+You will begin seeing output of the host searching for the bootloader device, `ERROR: Bootloader not found. Trying again in 5s.`
+
+**Enter DFU-Bootloader Mode:**
+Reset the controller. Press [ADMIN](https://ckeys.org/slides/exboard/assets/player/keynotedhtmlplayer#21) + [RESET](https://ckeys.org/slides/exboard/assets/player/keynotedhtmlplayer#25) or, if accessible, press the reset button on the Proton C microcontroller.
## Default Layout
diff --git a/keyboards/claw44/rev1/rules.mk b/keyboards/claw44/rev1/rules.mk
index ae95ec401..016bc362a 100644
--- a/keyboards/claw44/rev1/rules.mk
+++ b/keyboards/claw44/rev1/rules.mk
@@ -3,10 +3,10 @@ SRC += rev1/split_util.c
SRC += rev1/split_scomm.c
# Build Options
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/claw44/rules.mk b/keyboards/claw44/rules.mk
index b2c3b436e..f872b9ebf 100644
--- a/keyboards/claw44/rules.mk
+++ b/keyboards/claw44/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/clueboard/17/rules.mk b/keyboards/clueboard/17/rules.mk
index 68274a8b2..703bf3d2d 100644
--- a/keyboards/clueboard/17/rules.mk
+++ b/keyboards/clueboard/17/rules.mk
@@ -12,13 +12,14 @@ MCU = atmega32u4
BOOTLOADER = atmel-dfu
# Build Options
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/clueboard/2x1800/rules.mk b/keyboards/clueboard/2x1800/rules.mk
index f5a41ff14..34d9c2a24 100644
--- a/keyboards/clueboard/2x1800/rules.mk
+++ b/keyboards/clueboard/2x1800/rules.mk
@@ -12,13 +12,13 @@ MCU = at90usb1286
BOOTLOADER = halfkay
# Build Options
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
RGBLIGHT_ENABLE = yes # RGB on port C6
AUDIO_ENABLE = yes # Audio output on port C4 and B7
diff --git a/keyboards/clueboard/66/rev1/rules.mk b/keyboards/clueboard/66/rev1/rules.mk
index 39fd55921..84b5dee21 100644
--- a/keyboards/clueboard/66/rev1/rules.mk
+++ b/keyboards/clueboard/66/rev1/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# comment out to disable the options.
#
BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
diff --git a/keyboards/clueboard/66/rev2/rules.mk b/keyboards/clueboard/66/rev2/rules.mk
index ec623ec63..16d9251d6 100644
--- a/keyboards/clueboard/66/rev2/rules.mk
+++ b/keyboards/clueboard/66/rev2/rules.mk
@@ -13,10 +13,11 @@ BOOTLOADER = atmel-dfu
# Build Options
BACKLIGHT_ENABLE = yes
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BACKLIGHT_DRIVER = custom
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
diff --git a/keyboards/clueboard/66/rev3/rules.mk b/keyboards/clueboard/66/rev3/rules.mk
index ca7817af1..55f3050e3 100644
--- a/keyboards/clueboard/66/rev3/rules.mk
+++ b/keyboards/clueboard/66/rev3/rules.mk
@@ -15,10 +15,11 @@ BOOTLOADER = atmel-dfu
# comment out to disable the options.
#
BACKLIGHT_ENABLE = yes
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BACKLIGHT_DRIVER = custom
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
diff --git a/keyboards/clueboard/66/rev4/rules.mk b/keyboards/clueboard/66/rev4/rules.mk
index ef7989aa0..54264c128 100644
--- a/keyboards/clueboard/66/rev4/rules.mk
+++ b/keyboards/clueboard/66/rev4/rules.mk
@@ -5,10 +5,10 @@ MCU = STM32F303
# comment out to disable the options.
#
BACKLIGHT_ENABLE = yes
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
diff --git a/keyboards/clueboard/66_hotswap/gen1/led.c b/keyboards/clueboard/66_hotswap/gen1/led.c
index efbf53202..f67259d2e 100644
--- a/keyboards/clueboard/66_hotswap/gen1/led.c
+++ b/keyboards/clueboard/66_hotswap/gen1/led.c
@@ -16,6 +16,5 @@
*/
#include "hal.h"
-#include "backlight.h"
#include "led.h"
#include "printf.h"
diff --git a/keyboards/clueboard/66_hotswap/gen1/matrix.c b/keyboards/clueboard/66_hotswap/gen1/matrix.c
index c3e59b564..05386215e 100644
--- a/keyboards/clueboard/66_hotswap/gen1/matrix.c
+++ b/keyboards/clueboard/66_hotswap/gen1/matrix.c
@@ -5,7 +5,6 @@
#include "timer.h"
#include "wait.h"
#include "printf.h"
-#include "backlight.h"
#include "matrix.h"
#include "action.h"
#include "keycode.h"
diff --git a/keyboards/clueboard/66_hotswap/gen1/rules.mk b/keyboards/clueboard/66_hotswap/gen1/rules.mk
index 50f140def..1de003ce5 100644
--- a/keyboards/clueboard/66_hotswap/gen1/rules.mk
+++ b/keyboards/clueboard/66_hotswap/gen1/rules.mk
@@ -7,7 +7,6 @@ LED_MATRIX_ENABLE = IS31FL3731
# Build Options
# comment out to disable the options.
#
-BACKLIGHT_ENABLE = yes
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
MOUSEKEY_ENABLE = yes # Mouse keys
diff --git a/keyboards/clueboard/66_hotswap/prototype/rules.mk b/keyboards/clueboard/66_hotswap/prototype/rules.mk
index 0a2a734cf..7f5afcf73 100644
--- a/keyboards/clueboard/66_hotswap/prototype/rules.mk
+++ b/keyboards/clueboard/66_hotswap/prototype/rules.mk
@@ -15,6 +15,7 @@ BOOTLOADER = atmel-dfu
# comment out to disable the options.
#
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
BOOTMAGIC_ENABLE = no
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
diff --git a/keyboards/clueboard/card/keymaps/default/rules.mk b/keyboards/clueboard/card/keymaps/default/rules.mk
index 3b11f550f..998bb5e0e 100644
--- a/keyboards/clueboard/card/keymaps/default/rules.mk
+++ b/keyboards/clueboard/card/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/clueboard/card/rules.mk b/keyboards/clueboard/card/rules.mk
index 9e3f19dc0..37d1d866e 100644
--- a/keyboards/clueboard/card/rules.mk
+++ b/keyboards/clueboard/card/rules.mk
@@ -12,14 +12,15 @@ MCU = atmega32u4
BOOTLOADER = atmel-dfu
# Build Options
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # USB Nkey Rollover
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality by default
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/cocoa40/rules.mk b/keyboards/cocoa40/rules.mk
index ad0ffbf0f..2fb303116 100644
--- a/keyboards/cocoa40/rules.mk
+++ b/keyboards/cocoa40/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE =no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE =no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/comet46/rules.mk b/keyboards/comet46/rules.mk
index d38f16734..2aaa5483c 100644
--- a/keyboards/comet46/rules.mk
+++ b/keyboards/comet46/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/contra/rules.mk b/keyboards/contra/rules.mk
index 0aded0f29..de553f57d 100755
--- a/keyboards/contra/rules.mk
+++ b/keyboards/contra/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
diff --git a/keyboards/converter/adb_usb/rules.mk b/keyboards/converter/adb_usb/rules.mk
index 66ca76526..70df2561d 100644
--- a/keyboards/converter/adb_usb/rules.mk
+++ b/keyboards/converter/adb_usb/rules.mk
@@ -14,9 +14,9 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/converter/hp_46010a/rules.mk b/keyboards/converter/hp_46010a/rules.mk
index b23aaadec..b7199d7f9 100644
--- a/keyboards/converter/hp_46010a/rules.mk
+++ b/keyboards/converter/hp_46010a/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = halfkay
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/converter/ibm_5291/rules.mk b/keyboards/converter/ibm_5291/rules.mk
index edb456a7d..0b53753eb 100644
--- a/keyboards/converter/ibm_5291/rules.mk
+++ b/keyboards/converter/ibm_5291/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = halfkay
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/converter/ibm_terminal/keymaps/default/rules.mk b/keyboards/converter/ibm_terminal/keymaps/default/rules.mk
index 8ff095047..749b93312 100644
--- a/keyboards/converter/ibm_terminal/keymaps/default/rules.mk
+++ b/keyboards/converter/ibm_terminal/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/converter/ibm_terminal/rules.mk b/keyboards/converter/ibm_terminal/rules.mk
index 36913ef33..059d7b303 100644
--- a/keyboards/converter/ibm_terminal/rules.mk
+++ b/keyboards/converter/ibm_terminal/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/converter/m0110_usb/rules.mk b/keyboards/converter/m0110_usb/rules.mk
index 36c3dfa3f..a0f0c5ce4 100644
--- a/keyboards/converter/m0110_usb/rules.mk
+++ b/keyboards/converter/m0110_usb/rules.mk
@@ -17,9 +17,9 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/converter/modelm101/rules.mk b/keyboards/converter/modelm101/rules.mk
index dada3f22d..03c8bda35 100644
--- a/keyboards/converter/modelm101/rules.mk
+++ b/keyboards/converter/modelm101/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/converter/numeric_keypad_IIe/rules.mk b/keyboards/converter/numeric_keypad_IIe/rules.mk
index 03c1bc8f8..fa1864891 100644
--- a/keyboards/converter/numeric_keypad_IIe/rules.mk
+++ b/keyboards/converter/numeric_keypad_IIe/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/converter/palm_usb/config.h b/keyboards/converter/palm_usb/config.h
index 4233a53ef..8414c47a7 100644
--- a/keyboards/converter/palm_usb/config.h
+++ b/keyboards/converter/palm_usb/config.h
@@ -23,8 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define CUSTOM_MATRIX 2
-
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x0100
diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk
index 2cd2c47e5..15114192e 100644
--- a/keyboards/converter/palm_usb/rules.mk
+++ b/keyboards/converter/palm_usb/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.c b/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.c
deleted file mode 100644
index 8c5a87f35..000000000
--- a/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-// Value to place in RTC backup register 10 for persistent bootloader mode
-#define RTC_BOOTLOADER_FLAG 0x424C
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
- //JTAG-DP Disabled and SW-DP Enabled
- AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
- //Set backup register DR10 to enter bootloader on reset
- BKP->DR10 = RTC_BOOTLOADER_FLAG;
-}
diff --git a/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.h b/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.h
deleted file mode 100644
index 9427adabf..000000000
--- a/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOA_LED 8
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
diff --git a/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.mk b/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.mk
deleted file mode 100644
index 6b8b312fd..000000000
--- a/keyboards/converter/siemens_tastatur/boards/GENERIC_STM32_F103/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/converter/siemens_tastatur/chconf.h b/keyboards/converter/siemens_tastatur/chconf.h
index bbd9b2da6..9299be587 100644
--- a/keyboards/converter/siemens_tastatur/chconf.h
+++ b/keyboards/converter/siemens_tastatur/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/converter/siemens_tastatur/ld/MKL26Z64.ld b/keyboards/converter/siemens_tastatur/ld/MKL26Z64.ld
deleted file mode 100644
index c4ca8b874..000000000
--- a/keyboards/converter/siemens_tastatur/ld/MKL26Z64.ld
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * KL26Z64 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x100
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 62k - 0x410
- flash3 : org = 0x0000F800, len = 2k
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFFF800, len = 8k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-__eeprom_workarea_start__ = ORIGIN(flash3);
-__eeprom_workarea_size__ = LENGTH(flash3);
-__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/converter/siemens_tastatur/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/converter/siemens_tastatur/ld/STM32F103x8_stm32duino_bootloader.ld
deleted file mode 100644
index d0688ef60..000000000
--- a/keyboards/converter/siemens_tastatur/ld/STM32F103x8_stm32duino_bootloader.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 64k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/converter/siemens_tastatur/rules.mk b/keyboards/converter/siemens_tastatur/rules.mk
index d89f7f5f6..bc5875962 100644
--- a/keyboards/converter/siemens_tastatur/rules.mk
+++ b/keyboards/converter/siemens_tastatur/rules.mk
@@ -4,7 +4,7 @@ MCU = STM32F103
# GENERIC STM32F103C8T6 board - stm32duino bootloader
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
+BOARD = STM32_F103_STM32DUINO
DFU_ARGS = -d 1eaf:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
@@ -22,3 +22,6 @@ BACKLIGHT_ENABLE = no
RGBLIGHT_ENABLE = no
CUSTOM_MATRIX = yes
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/converter/sun_usb/config.h b/keyboards/converter/sun_usb/config.h
index 7713e0a91..455d6423b 100644
--- a/keyboards/converter/sun_usb/config.h
+++ b/keyboards/converter/sun_usb/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_H
#define CONFIG_H
-#define CUSTOM_MATRIX 2
-
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x3333
#define DEVICE_VER 0x0100
diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk
index 60beb4d9b..5a1a117c0 100644
--- a/keyboards/converter/sun_usb/rules.mk
+++ b/keyboards/converter/sun_usb/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = lufa-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/converter/usb_usb/ble/rules.mk b/keyboards/converter/usb_usb/ble/rules.mk
index a882bd145..cb2910bd9 100644
--- a/keyboards/converter/usb_usb/ble/rules.mk
+++ b/keyboards/converter/usb_usb/ble/rules.mk
@@ -1,10 +1,10 @@
# Processor frequency
F_CPU = 8000000
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -12,12 +12,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
BLUETOOTH = AdafruitBLE
ADAFRUIT_BLE_ENABLE = yes
diff --git a/keyboards/converter/usb_usb/config.h b/keyboards/converter/usb_usb/config.h
index fdaf42eda..7af895027 100644
--- a/keyboards/converter/usb_usb/config.h
+++ b/keyboards/converter/usb_usb/config.h
@@ -18,12 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_H
#define CONFIG_H
-// do not #include "config_common.h" because the pin names conflict with the USB HID code.
-// CUSTOM_MATRIX is defined it that file, though, and we need it, so we define it ourselves.
-// It's a hack, yeah...
-
-#define CUSTOM_MATRIX 2
-
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x005B
@@ -36,9 +30,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 16
#define MATRIX_COLS 16
-/* matrix scanning is done in custom_matrix.cpp */
-//#define DIODE_DIRECTION
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/converter/usb_usb/rules.mk b/keyboards/converter/usb_usb/rules.mk
index b4f37d3ad..d277853cf 100644
--- a/keyboards/converter/usb_usb/rules.mk
+++ b/keyboards/converter/usb_usb/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-#MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-#CONSOLE_ENABLE = yes # Console for debug(+400)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+#MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+#CONSOLE_ENABLE = yes # Console for debug
#COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/converter/xt_usb/rules.mk b/keyboards/converter/xt_usb/rules.mk
index 444e5f02d..986cdd4dc 100644
--- a/keyboards/converter/xt_usb/rules.mk
+++ b/keyboards/converter/xt_usb/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
XT_ENABLE = yes
diff --git a/keyboards/copenhagen_click/click_pad_v1/rules.mk b/keyboards/copenhagen_click/click_pad_v1/rules.mk
index dd7a086de..0372e3cb2 100755
--- a/keyboards/copenhagen_click/click_pad_v1/rules.mk
+++ b/keyboards/copenhagen_click/click_pad_v1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/coseyfannitutti/discipad/rules.mk b/keyboards/coseyfannitutti/discipad/rules.mk
index 52e06f6e7..53e16a4e9 100644
--- a/keyboards/coseyfannitutti/discipad/rules.mk
+++ b/keyboards/coseyfannitutti/discipad/rules.mk
@@ -17,10 +17,10 @@ OPT_DEFS = -DDEBUG_LEVEL=0
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -28,9 +28,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/coseyfannitutti/discipline/rules.mk b/keyboards/coseyfannitutti/discipline/rules.mk
index 5666501ef..ce71857a9 100644
--- a/keyboards/coseyfannitutti/discipline/rules.mk
+++ b/keyboards/coseyfannitutti/discipline/rules.mk
@@ -20,10 +20,10 @@ OPT_DEFS = -DDEBUG_LEVEL=0
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -31,11 +31,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi
diff --git a/keyboards/coseyfannitutti/mullet/config.h b/keyboards/coseyfannitutti/mullet/config.h
index 2025cb433..f9aef2911 100644
--- a/keyboards/coseyfannitutti/mullet/config.h
+++ b/keyboards/coseyfannitutti/mullet/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { B2, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D3 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
// #define BACKLIGHT_PIN B7
diff --git a/keyboards/coseyfannitutti/mullet/rules.mk b/keyboards/coseyfannitutti/mullet/rules.mk
index f390cfbe0..b42558a30 100644
--- a/keyboards/coseyfannitutti/mullet/rules.mk
+++ b/keyboards/coseyfannitutti/mullet/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/coseyfannitutti/mulletpad/config.h b/keyboards/coseyfannitutti/mulletpad/config.h
index 2174d6492..4e25ec033 100644
--- a/keyboards/coseyfannitutti/mulletpad/config.h
+++ b/keyboards/coseyfannitutti/mulletpad/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F0, C7, C6, B6, }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
// #define BACKLIGHT_PIN B7
diff --git a/keyboards/coseyfannitutti/mulletpad/rules.mk b/keyboards/coseyfannitutti/mulletpad/rules.mk
index 282a4a365..1b9994cd3 100644
--- a/keyboards/coseyfannitutti/mulletpad/rules.mk
+++ b/keyboards/coseyfannitutti/mulletpad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = numpad_5x4
diff --git a/keyboards/coseyfannitutti/mysterium/rules.mk b/keyboards/coseyfannitutti/mysterium/rules.mk
index 4147cfec9..9c518e938 100644
--- a/keyboards/coseyfannitutti/mysterium/rules.mk
+++ b/keyboards/coseyfannitutti/mysterium/rules.mk
@@ -2,7 +2,7 @@
MCU = atmega32a
# Processor frequency
-F_USB = 16000000
+F_CPU = 16000000
# Bootloader selection
# Teensy halfkay
diff --git a/keyboards/cospad/config.h b/keyboards/cospad/config.h
index 9844f2724..cfc2d59f6 100644
--- a/keyboards/cospad/config.h
+++ b/keyboards/cospad/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2020
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,11 +21,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
+#define PRODUCT_ID 0xB1E5
#define DEVICE_VER 0x0001
-#define MANUFACTURER KPREPUBLIC
-#define PRODUCT COSPAD
-#define DESCRIPTION QMK keyboard firmware for COSPAD
+#define MANUFACTURER KPrepublic
+#define PRODUCT Cospad
+#define DESCRIPTION 6x4 numpad with underglow and backlighting
/* key matrix size */
#define MATRIX_ROWS 6
@@ -40,22 +40,51 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
-*/
+ */
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5 }
#define MATRIX_COL_PINS { F0, F1, E6, C7 }
#define UNUSED_PINS
-/* COL2ROW or ROW2COL */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
-/* Backlight configuration */
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
#define BACKLIGHT_PIN F7
-#define BACKLIGHT_LEVELS 1
+// #define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+#define BACKLIGHT_ON_STATE 0
-/* Underlight configuration */
#define RGB_DI_PIN F6
-#define RGBLED_NUM 4
-#define RGBLIGHT_ANIMATIONS
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 4
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+ #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
@@ -64,10 +93,89 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-//#define LOCKING_SUPPORT_ENABLE
+#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
@@ -83,8 +191,62 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+
+/* disable these deprecated features by default */
+#ifndef LINK_TIME_OPTIMIZATION_ENABLE
+ #define NO_ACTION_MACRO
+ #define NO_ACTION_FUNCTION
+#endif
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
diff --git a/keyboards/cospad/cospad.c b/keyboards/cospad/cospad.c
index e7ef71f87..c1f3a7047 100644
--- a/keyboards/cospad/cospad.c
+++ b/keyboards/cospad/cospad.c
@@ -1,5 +1,4 @@
-
-/* Copyright 2019
+/* Copyright 2020
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,18 +15,18 @@
*/
#include "cospad.h"
-#ifdef BACKLIGHT_ENABLE
-
-void backlight_init_ports(void) {
- setPinOutput(F7);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_set(uint8_t level) {
- writePin(F7, !!level);
+void led_init_ports(void) {
+ setPinOutput(B2);
}
-void backlight_task(void) {
- // do nothing - as default implementation of software PWM does not work
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(B2, !led_state.num_lock);
+ }
+ return true;
}
-
-#endif //BACKLIGHT_ENABLE
diff --git a/keyboards/cospad/cospad.h b/keyboards/cospad/cospad.h
index ad3ca0d6b..fc52204ed 100644
--- a/keyboards/cospad/cospad.h
+++ b/keyboards/cospad/cospad.h
@@ -1,5 +1,4 @@
-
-/* Copyright 2019
+/* Copyright 2020
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,12 +13,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#pragma once
#include "quantum.h"
+
#define ___ KC_NO
-/* This a shortcut to help you visually see your layout.
+/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
@@ -28,100 +29,100 @@
* represents the switch matrix.
*/
-/* COSPAD ortho matrix layout
- * ,-------------------.
- * | 00 | 01 | 02 | 03 |
- * |----|----|----|----|
- * | 10 | 11 | 12 | 13 |
- * |----|----|----|----|
- * | 20 | 21 | 22 | 23 |
- * |----|----|----|----|
- * | 30 | 31 | 32 | 33 |
- * |----|----|----|----|
- * | 40 | 41 | 42 | 43 |
- * |----|----|----|----|
- * | 50 | 51 | 52 | 53 |
- * `-------------------'
+/* 6x4 ortholinear layout
+ * ,-------------------.
+ * | 00 | 01 | 02 | 03 |
+ * |----|----|----|----|
+ * | 10 | 11 | 12 | 13 |
+ * |----|----|----|----|
+ * | 20 | 21 | 22 | 23 |
+ * |----|----|----|----|
+ * | 30 | 31 | 32 | 33 |
+ * |----|----|----|----|
+ * | 40 | 41 | 42 | 43 |
+ * |----|----|----|----|
+ * | 50 | 51 | 52 | 53 |
+ * `-------------------'
*/
#define LAYOUT_ortho_6x4( \
- k00, k01, k02, k03, \
- k10, k11, k12, k13, \
- k20, k21, k22, k23, \
- k30, k31, k32, k33, \
- k40, k41, k42, k43, \
- k50, k51, k52, k53 \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, k23, \
+ k30, k31, k32, k33, \
+ k40, k41, k42, k43, \
+ k50, k51, k52, k53 \
) \
{ \
- {k00, k01, k02, k03}, \
- {k10, k11, k12, k13}, \
- {k20, k21, k22, k23}, \
- {k30, k31, k32, k33}, \
- {k40, k41, k42, k43}, \
- {k50, k51, k52, k53} \
+ { k00, k01, k02, k03 }, \
+ { k10, k11, k12, k13 }, \
+ { k20, k21, k22, k23 }, \
+ { k30, k31, k32, k33 }, \
+ { k40, k41, k42, k43 }, \
+ { k50, k51, k52, k53 } \
}
-/* COSPAD gamepad matrix layout
- * ,-------------------.
- * | 00 | 01 | 02 | 03 |
- * |----|----|----|----|
- * | 10 | 11 | 12 | 13 |
- * |----|----|----|----|
- * | 20 | 21 | 22 | |
- * |----|----|----| 23 |
- * | 30 | 31 | 32 | |
- * |----|----|----|----|
- * | 40 | 41 | 42 | 43 |
- * |----|----|----|----|
- * | 50 | 51 | 52 | 53 |
- * `-------------------'
+/* 6x4 gamepad layout
+ * ,-------------------.
+ * | 00 | 01 | 02 | 03 |
+ * |----|----|----|----|
+ * | 10 | 11 | 12 | 13 |
+ * |----|----|----|----|
+ * | 20 | 21 | 22 | |
+ * |----|----|----| 23 |
+ * | 30 | 31 | 32 | |
+ * |----|----|----|----|
+ * | 40 | 41 | 42 | 43 |
+ * |----|----|----|----|
+ * | 50 | 51 | 52 | 53 |
+ * `-------------------'
*/
#define LAYOUT_gamepad_6x4( \
- k00, k01, k02, k03, \
- k10, k11, k12, k13, \
- k20, k21, k22, \
- k30, k31, k32, k23, \
- k40, k41, k42, k43, \
- k50, k51, k52, k53 \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, \
+ k30, k31, k32, k23, \
+ k40, k41, k42, k43, \
+ k50, k51, k52, k53 \
) \
{ \
- {k00, k01, k02, k03}, \
- {k10, k11, k12, k13}, \
- {k20, k21, k22, k23}, \
- {k30, k31, k32, ___}, \
- {k40, k41, k42, k43}, \
- {k50, k51, k52, k53} \
+ { k00, k01, k02, k03 }, \
+ { k10, k11, k12, k13 }, \
+ { k20, k21, k22, k23 }, \
+ { k30, k31, k32, ___ }, \
+ { k40, k41, k42, k43 }, \
+ { k50, k51, k52, k53 } \
}
-/* COSPAD numpad matrix layout
- * ,-------------------.
- * | 00 | 01 | 02 | 03 |
- * |----|----|----|----|
- * | 10 | 11 | 12 | 13 |
- * |----|----|----|----|
- * | 20 | 21 | 22 | |
- * |----|----|----| 23 |
- * | 30 | 31 | 32 | |
- * |----|----|----|----|
- * | 40 | 41 | 42 | |
- * |----|----|----| 43 |
- * | 50 | 52 | |
- * `-------------------'
+/* 6x4 numpad layout
+ * ,-------------------.
+ * | 00 | 01 | 02 | 03 |
+ * |----|----|----|----|
+ * | 10 | 11 | 12 | 13 |
+ * |----|----|----|----|
+ * | 20 | 21 | 22 | |
+ * |----|----|----| 23 |
+ * | 30 | 31 | 32 | |
+ * |----|----|----|----|
+ * | 40 | 41 | 42 | |
+ * |----|----|----| 43 |
+ * | 50 | 52 | |
+ * `-------------------'
*/
#define LAYOUT_numpad_6x4( \
- k00, k01, k02, k03, \
- k10, k11, k12, k13, \
- k20, k21, k22, \
- k30, k31, k32, k23, \
- k40, k41, k42, \
- k50, k52, k43 \
+ k00, k01, k02, k03, \
+ k10, k11, k12, k13, \
+ k20, k21, k22, \
+ k30, k31, k32, k23, \
+ k40, k41, k42, \
+ k50, k52, k43 \
) \
{ \
- {k00, k01, k02, k03}, \
- {k10, k11, k12, k13}, \
- {k20, k21, k22, k23}, \
- {k30, k31, k32, ___}, \
- {k40, k41, k42, k43}, \
- {k50, ___, k52, ___} \
+ { k00, k01, k02, k03 }, \
+ { k10, k11, k12, k13 }, \
+ { k20, k21, k22, k23 }, \
+ { k30, k31, k32, ___ }, \
+ { k40, k41, k42, k43 }, \
+ { k50, ___, k52, ___ } \
}
// Add backwards compatibility for existing keymaps
diff --git a/keyboards/cospad/info.json b/keyboards/cospad/info.json
index c17f44f52..83bf81c14 100644
--- a/keyboards/cospad/info.json
+++ b/keyboards/cospad/info.json
@@ -1,95 +1,107 @@
{
- "keyboard_name": "Cospad",
- "keyboard_folder": "cospad",
- "url": "",
- "maintainer": "qmk",
- "width": 4,
- "height": 6,
- "layouts": {
- "LAYOUT_numpad_6x4": {
- "key_count": 21,
- "layout": [
- {"label":"Esc", "x":0, "y":0},
- {"label":"Tab", "x":1, "y":0},
- {"label":"Fn", "x":2, "y":0},
- {"label":"Back", "x":3, "y":0},
- {"label":"Num Lock", "x":0, "y":1},
- {"label":"/", "x":1, "y":1},
- {"label":"*", "x":2, "y":1},
- {"label":"-", "x":3, "y":1},
- {"label":"7", "x":0, "y":2},
- {"label":"8", "x":1, "y":2},
- {"label":"9", "x":2, "y":2},
- {"label":"4", "x":0, "y":3},
- {"label":"5", "x":1, "y":3},
- {"label":"6", "x":2, "y":3},
- {"label":"+", "x":3, "y":2, "h":2},
- {"label":"1", "x":0, "y":4},
- {"label":"2", "x":1, "y":4},
- {"label":"3", "x":2, "y":4},
- {"label":"0", "x":0, "y":5, "w":2},
- {"label":".", "x":2, "y":5},
- {"label":"Enter", "x":3, "y":4, "h":2}
- ]
- },
+ "keyboard_name": "Cospad",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 6,
+ "layouts": {
+ "LAYOUT_numpad_6x4": {
+ "key_count": 21,
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
- "LAYOUT_gamepad_6x4": {
- "key_count": 23,
- "layout": [
- {"label":"k00", "x":0, "y":0},
- {"label":"k01", "x":1, "y":0},
- {"label":"k02", "x":2, "y":0},
- {"label":"k03", "x":3, "y":0},
- {"label":"k10", "x":0, "y":1},
- {"label":"k11", "x":1, "y":1},
- {"label":"k12", "x":2, "y":1},
- {"label":"k13", "x":3, "y":1},
- {"label":"k20", "x":0, "y":2},
- {"label":"k21", "x":1, "y":2},
- {"label":"k22", "x":2, "y":2},
- {"label":"k30", "x":0, "y":3},
- {"label":"k31", "x":1, "y":3},
- {"label":"k32", "x":2, "y":3},
- {"label":"k23", "x":3, "y":2, "h":2},
- {"label":"k40", "x":0, "y":4},
- {"label":"k41", "x":1, "y":4},
- {"label":"k42", "x":2, "y":4},
- {"label":"k43", "x":3, "y":4},
- {"label":"k50", "x":0, "y":5},
- {"label":"k51", "x":1, "y":5},
- {"label":"k52", "x":2, "y":5},
- {"label":"k53", "x":3, "y":5}
- ]
- },
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
- "LAYOUT_ortho_6x4": {
- "key_count": 24,
- "layout": [
- {"label":"k00", "x":0, "y":0},
- {"label":"k01", "x":1, "y":0},
- {"label":"k02", "x":2, "y":0},
- {"label":"k03", "x":3, "y":0},
- {"label":"k10", "x":0, "y":1},
- {"label":"k11", "x":1, "y":1},
- {"label":"k12", "x":2, "y":1},
- {"label":"k13", "x":3, "y":1},
- {"label":"k20", "x":0, "y":2},
- {"label":"k21", "x":1, "y":2},
- {"label":"k22", "x":2, "y":2},
- {"label":"k23", "x":3, "y":2},
- {"label":"k30", "x":0, "y":3},
- {"label":"k31", "x":1, "y":3},
- {"label":"k32", "x":2, "y":3},
- {"label":"k33", "x":3, "y":3},
- {"label":"k40", "x":0, "y":4},
- {"label":"k41", "x":1, "y":4},
- {"label":"k42", "x":2, "y":4},
- {"label":"k43", "x":3, "y":4},
- {"label":"k50", "x":0, "y":5},
- {"label":"k51", "x":1, "y":5},
- {"label":"k52", "x":2, "y":5},
- {"label":"k53", "x":3, "y":5}
- ]
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":2, "h":2},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+
+ {"x":0, "y":5, "w":2},
+ {"x":2, "y":5},
+ {"x":3, "y":4, "h":2}
+ ]
+ },
+ "LAYOUT_gamepad_6x4": {
+ "key_count": 23,
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":2, "h":2},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":3, "y":4},
+
+ {"x":0, "y":5},
+ {"x":1, "y":5},
+ {"x":2, "y":5},
+ {"x":3, "y":5}
+ ]
+ },
+ "LAYOUT_ortho_6x4": {
+ "key_count": 24,
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":3, "y":2},
+
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":3},
+
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":3, "y":4},
+
+ {"x":0, "y":5},
+ {"x":1, "y":5},
+ {"x":2, "y":5},
+ {"x":3, "y":5}
+ ]
+ }
}
- }
}
diff --git a/keyboards/cospad/keymaps/default/keymap.c b/keyboards/cospad/keymaps/default/keymap.c
index adcca112d..06b06d41f 100644
--- a/keyboards/cospad/keymaps/default/keymap.c
+++ b/keyboards/cospad/keymaps/default/keymap.c
@@ -1,60 +1,57 @@
#include QMK_KEYBOARD_H
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-enum layers {
- _BL = 0,
- _FL
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BL,
+ _FL
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap _BL: (Base Layer) Default Layer
- * ,-------------------.
- * |Esc |TAB | FN | BS |
- * |----|----|----|----|
- * | NL | / | * | - |
- * |----|----|----|----|
- * | 7 | 8 | 9 | |
- * |----|----|----| + |
- * | 4 | 5 | 6 | |
- * |----|----|----|----|
- * | 1 | 2 | 3 | |
- * |----|----|----| En |
- * | 0 | . | |
- * `-------------------'
- */
- [_BL] = LAYOUT_numpad_6x4(
- KC_ESC, KC_TAB, MO(_FL), KC_BSPC, \
- KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
- KC_P7, KC_P8, KC_P9, \
- KC_P4, KC_P5, KC_P6, KC_PPLS, \
- KC_P1, KC_P2, KC_P3, \
- KC_P0, KC_PDOT, KC_PENT
- ),
+ /* Keymap _BL: (Base Layer) Default Layer
+ * ,-------------------.
+ * |Esc |TAB | FN | BS |
+ * |----|----|----|----|
+ * | NL | / | * | - |
+ * |----|----|----|----|
+ * | 7 | 8 | 9 | |
+ * |----|----|----| + |
+ * | 4 | 5 | 6 | |
+ * |----|----|----|----|
+ * | 1 | 2 | 3 | |
+ * |----|----|----| En |
+ * | 0 | . | |
+ * `-------------------'
+ */
+ [_BL] = LAYOUT_numpad_6x4(
+ KC_ESC, KC_TAB, MO(_FL), KC_BSPC,
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3,
+ KC_P0, KC_PDOT, KC_PENT
+ ),
-/* Keymap _FL: Function Layer
- * ,-------------------.
- * |RGBT| | | |
- * |----|----|----|----|
- * |RGBM|RGBP|BTOG| |
- * |----|----|----|----|
- * |HUD |HUI |BON | |
- * |----|----|----| |
- * |SAD |SAI |BOFF| |
- * |----|----|----|----|
- * |VAD |VAS |BSTP| |
- * |----|----|----| |
- * | |RST | |
- * `-------------------'
- */
- [_FL] = LAYOUT_numpad_6x4(
- RGB_TOG, _______, _______, _______, \
- RGB_MOD, RGB_M_P, BL_TOGG, _______, \
- RGB_HUD, RGB_HUI, BL_ON, \
- RGB_SAD, RGB_SAI, BL_OFF, _______, \
- RGB_VAD, RGB_VAI, BL_STEP, \
- _______, RESET, _______
- ),
+ /* Keymap _FL: Function Layer
+ * ,-------------------.
+ * |RGBT| | | |
+ * |----|----|----|----|
+ * |RGBM|RGBP|BTOG| |
+ * |----|----|----|----|
+ * |HUD |HUI |BON | |
+ * |----|----|----| |
+ * |SAD |SAI |BOFF| |
+ * |----|----|----|----|
+ * |VAD |VAS |BSTP| |
+ * |----|----|----| |
+ * | |RST | |
+ * `-------------------'
+ */
+ [_FL] = LAYOUT_numpad_6x4(
+ RGB_TOG, _______, _______, _______,
+ RGB_MOD, RGB_M_P, BL_TOGG, _______,
+ RGB_HUD, RGB_HUI, BL_ON,
+ RGB_SAD, RGB_SAI, BL_OFF, _______,
+ RGB_VAD, RGB_VAI, BL_STEP,
+ _______, RESET, _______
+ )
};
diff --git a/keyboards/cospad/readme.md b/keyboards/cospad/readme.md
index 2e9add691..9bb3dfdc0 100644
--- a/keyboards/cospad/readme.md
+++ b/keyboards/cospad/readme.md
@@ -1,18 +1,15 @@
-COSPAD
-===
+# Cospad
-A DIY Keypad Kit sold by KPRepublic, runs TKG natively.
+A DIY keypad kit sold by KPRepublic, runs TKG natively.
-Keyboard Maintainer: QMK Community
-Hardware Supported: COSPAD
-Hardware Availability: [KPrepublic on Aliexpress](https://aliexpress.com/item/cospad-Custom-Mechanical-Keyboard-Kit-up-tp-24-keys-Supports-TKG-TOOLS-Underglow-RGB-PCB-20/32818383873.html)
-
-Only supports on and off for the backlight leds, as they are not connected to a PWM pin.
+* Keyboard Maintainer: QMK Community
+* Hardware Supported: Cospad PCB
+* Hardware Availability: [KPrepublic on Aliexpress](https://aliexpress.com/item/cospad-Custom-Mechanical-Keyboard-Kit-up-tp-24-keys-Supports-TKG-TOOLS-Underglow-RGB-PCB-20/32818383873.html)
Supported Layouts:
-![Numpad Layout of COSPAD](https://i.imgur.com/t03lXJ4.png)
-![Ortholinear Layout of COSPAD](https://i.imgur.com/mliUcCc.png)
+![Numpad layouts](https://i.imgur.com/t03lXJ4.png)
+![Ortholinear layouts](https://i.imgur.com/mliUcCc.png)
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/cospad/rules.mk b/keyboards/cospad/rules.mk
index 075320a22..61243fd37 100644
--- a/keyboards/cospad/rules.mk
+++ b/keyboards/cospad/rules.mk
@@ -12,23 +12,23 @@ MCU = atmega32u4
BOOTLOADER = atmel-dfu
# Build Options
-# comment out to disable the options.
+# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-BACKLIGHT_CUSTOM_DRIVER = yes
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
-UNICODE_ENABLE = no # Unicode
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
-
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = numpad_6x4 ortho_6x4
diff --git a/keyboards/crawlpad/rules.mk b/keyboards/crawlpad/rules.mk
index 00931610a..1d4019b7a 100755
--- a/keyboards/crawlpad/rules.mk
+++ b/keyboards/crawlpad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/crkbd/keymaps/curry/keymap.c b/keyboards/crkbd/keymaps/curry/keymap.c
index 1ad628c92..e56f77ebe 100644
--- a/keyboards/crkbd/keymaps/curry/keymap.c
+++ b/keyboards/crkbd/keymaps/curry/keymap.c
@@ -6,8 +6,8 @@
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
- KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
- MT_ESC, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
+ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
+ MT_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
OS_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, OS_RSFT, \
KC_LEAD,OS_LALT, SP_LWER, ET_RAIS, KC_BSPC, KC_RGUI \
)
diff --git a/keyboards/crkbd/keymaps/dsanchezseco/config.h b/keyboards/crkbd/keymaps/dsanchezseco/config.h
index 033173def..f10c47405 100644
--- a/keyboards/crkbd/keymaps/dsanchezseco/config.h
+++ b/keyboards/crkbd/keymaps/dsanchezseco/config.h
@@ -31,7 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// lower maximum brightness to lower power usage and prevent unresponsiveness
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
-#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
//disable effects
#define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue speed is hue for secondary hue
diff --git a/keyboards/crkbd/keymaps/dsanchezseco/rules.mk b/keyboards/crkbd/keymaps/dsanchezseco/rules.mk
index 44f60368b..93a21f7bf 100644
--- a/keyboards/crkbd/keymaps/dsanchezseco/rules.mk
+++ b/keyboards/crkbd/keymaps/dsanchezseco/rules.mk
@@ -3,7 +3,7 @@
SRC += ./logo_reader.c
# enable OLED displays
-OLED_DRIVER_ENABLE = yes
+OLED_DRIVER_ENABLE = no
# enable media keys
EXTRAKEY_ENABLE = yes
diff --git a/keyboards/crkbd/keymaps/kidbrazil/config.h b/keyboards/crkbd/keymaps/kidbrazil/config.h
index dd3f1a030..6dc468c59 100644
--- a/keyboards/crkbd/keymaps/kidbrazil/config.h
+++ b/keyboards/crkbd/keymaps/kidbrazil/config.h
@@ -52,49 +52,64 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#endif
#ifdef RGB_MATRIX_ENABLE
-//# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
-// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
-// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
-# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
-// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 8
-# define RGB_MATRIX_VAL_STEP 8
-# define RGB_MATRIX_SPD_STEP 10
+ //# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+ // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
+ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+ #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
+ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+ // # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
+ // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
+ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
+ #define RGB_MATRIX_HUE_STEP 4
+ #define RGB_MATRIX_SAT_STEP 4
+ #define RGB_MATRIX_VAL_STEP 4
+ #define RGB_MATRIX_SPD_STEP 10
-/* Disable the animations you don&#39;t want/need. You will need to disable a good number of these *
- * because they take up a lot of space. Disable until you can successfully compile your firmware. */
-# define DISABLE_RGB_MATRIX_ALPHAS_MODS
-# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// # define DISABLE_RGB_MATRIX_BREATHING
-# define DISABLE_RGB_MATRIX_CYCLE_ALL
-# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
-# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# define DISABLE_RGB_MATRIX_DUAL_BEACON
-# define DISABLE_RGB_MATRIX_RAINBOW_BEACON
-# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# define DISABLE_RGB_MATRIX_RAINDROPS
-# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define DISABLE_RGB_MATRIX_TYPING_HEATMAP
-# define DISABLE_RGB_MATRIX_DIGITAL_RAIN
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# define DISABLE_RGB_MATRIX_SPLASH
-# define DISABLE_RGB_MATRIX_MULTISPLASH
-# define DISABLE_RGB_MATRIX_SOLID_SPLASH
-# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+ /* Disable the animations you don&#39;t want/need. You will need to disable a good number of these *
+ * because they take up a lot of space. Disable until you can successfully compile your firmware. */
+ #define DISABLE_RGB_MATRIX_ALPHAS_MODS
+ #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+ #define DISABLE_RGB_MATRIX_BREATHING
+ #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+ #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+ #define DISABLE_RGB_MATRIX_BAND_SAT
+ #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+ #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+ #define DISABLE_RGB_MATRIX_BAND_VAL
+ #define DISABLE_RGB_MATRIX_CYCLE_ALL
+ #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+ #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
+ #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+ #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
+ #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
+ #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
+ #define DISABLE_RGB_MATRIX_DUAL_BEACON
+ #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+ #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+ #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+ #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+ #define DISABLE_RGB_MATRIX_SOLID_SPLASH
+ #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+ #define DISABLE_RGB_MATRIX_SOLID_SPLASH
+ #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+ #define DISABLE_RGB_MATRIX_SPLASH
+ #define DISABLE_RGB_MATRIX_MULTISPLASH
+ #define DISABLE_RGB_MATRIX_SPLASH
+ #define DISABLE_RGB_MATRIX_MULTISPLASH
#endif
+// Custom Font path
#define OLED_FONT_H "keyboards/crkbd/keymaps/kidbrazil/glcdfont.c"
#define OLED_DISABLE_TIMEOUT
diff --git a/keyboards/crkbd/keymaps/kidbrazil/enums.h b/keyboards/crkbd/keymaps/kidbrazil/enums.h
new file mode 100644
index 000000000..ec1a67925
--- /dev/null
+++ b/keyboards/crkbd/keymaps/kidbrazil/enums.h
@@ -0,0 +1,10 @@
+// [CRKBD layers Init] -------------------------------------------------------//
+typedef enum {
+ _QWERTY,
+ _NUM,
+ _SYM,
+ _GAME,
+ _WEAPON
+}CRKBD_LAYERS;
+
+extern enum CRKBD_LAYERS crkbd_layers;
diff --git a/keyboards/crkbd/keymaps/kidbrazil/keymap.c b/keyboards/crkbd/keymaps/kidbrazil/keymap.c
index 44142d4f2..9c950e537 100644
--- a/keyboards/crkbd/keymaps/kidbrazil/keymap.c
+++ b/keyboards/crkbd/keymaps/kidbrazil/keymap.c
@@ -1,4 +1,6 @@
#include QMK_KEYBOARD_H
+#include "enums.h"
+#include "layer.h"
// [Init Variables] ----------------------------------------------------------//
extern uint8_t is_master;
@@ -9,15 +11,6 @@ bool user_led_enabled = true;
// Boolean to store the master LED clear so it only runs once.
bool master_oled_cleared = false;
-// [CRKBD layers Init] -------------------------------------------------------//
-enum crkbd_layers {
- _QWERTY,
- _NUM,
- _SYM,
- _GAME,
- _WEAPON
-};
-
// [Keymaps] -----------------------------------------------------------------//
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
@@ -36,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_SYM] = LAYOUT(
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- LSFT_T(KC_TAB), RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
- KC_LCTL, RGB_VAD, RGB_RMOD, RGB_HUD, RGB_SAD, TG(_GAME), KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
+ LSFT_T(KC_TAB), RGB_TOG, KC_MPLY, KC_MUTE, KC_VOLU, KC_VOLD, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
+ KC_LCTL, KC_CALC, KC_MYCM, KC_MPRV, KC_MNXT, TG(_GAME), KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
LGUI_T(KC_PGUP), KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, LALT_T(KC_PGDN)
),
@@ -51,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_WEAPON] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_7, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_7, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,
KC_TRNS, KC_TAB, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS
)
};
@@ -61,23 +54,24 @@ void keyboard_post_init_user(void) {
// Set RGB to known state
rgb_matrix_enable_noeeprom();
rgb_matrix_set_color_all(RGB_GREEN);
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
user_led_enabled = true;
-
}
// [Process User Input] ------------------------------------------------------//
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
+ // Handle RGB Changes sans eeprom - necessary due to the layer dependent RGB color
+ // changes in marrix_scan_user
case RGB_TOG:
- if (record->event.pressed) {
- // Toggle matrix on key press
- user_led_enabled ? rgb_matrix_disable_noeeprom() : rgb_matrix_enable_noeeprom();
- } else {
- // Flip User_led_enabled variable on key release
- user_led_enabled = !user_led_enabled;
- }
- return false; // Skip all further processing of this key
+ if (record->event.pressed) {
+ // Toggle matrix on key press
+ user_led_enabled ? rgb_matrix_disable_noeeprom() : rgb_matrix_enable_noeeprom();
+ // Toggle boolean flag
+ user_led_enabled = !user_led_enabled;
+ }
+ return false;
default:
- // Use process_record_keymap to reset timer on all other keypresses
+ // Use process_record_keymap to reset timer on all other keypresses to awaken from idle.
if (record->event.pressed) {
#ifdef OLED_DRIVER_ENABLE
oled_timer = timer_read32();
@@ -91,9 +85,47 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
+// [Matrix Scan] ------------------------------------------------------------//
+void matrix_scan_user(void) {
+ // Iddle timer to return to default layer if left on game layer
+ if (timer_elapsed32(oled_timer) > 380000 && timer_elapsed32(oled_timer) < 479999) {
+ // Reset layer in case it got left on _GAME
+ // This prevents the issue where the master side sometimes wont switch off as expected
+ // in the next step.
+ if (get_highest_layer(layer_state) == _GAME) {
+ layer_off(_GAME);
+ layer_on(_QWERTY);
+ }
+ return;
+ }
+ // Timeout to turn off LEDs
+ else if (timer_elapsed32(oled_timer) > 480000) {
+ rgb_matrix_disable_noeeprom();
+ return;
+ }
+ // Set RGB Matrix color based on layers
+ if (user_led_enabled) {
+ switch (get_highest_layer(layer_state)){
+ case _GAME:
+ rgb_matrix_set_color_all(RGB_PURPLE);
+ break;
+ case _NUM:
+ case _SYM:
+ case _QWERTY:
+ rgb_matrix_set_color_all(RGB_GREEN);
+ break;
+ default:
+ rgb_matrix_set_color_all(RGB_GREEN);
+ break;
+
+ }
+ } else {
+ rgb_matrix_disable_noeeprom();
+ return;
+ }
+}
// [OLED Configuration] ------------------------------------------------------//
#ifdef OLED_DRIVER_ENABLE
-
// Init Oled and Rotate....
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!has_usb())
@@ -105,74 +137,6 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
const char *read_logo(void);
// {OLED helpers} -----------------------------------------------//
-
-// Render Blank Space
-void render_space(void) {
- oled_write_ln_P(PSTR(" "), false);
-}
-
-// Render separator lines for oled display
-void render_separator(void) {
- switch (get_highest_layer(layer_state)){
- case _GAME:
- case _WEAPON:
- oled_write_ln_P(PSTR("===================="), false);
- break;
- default:
- oled_write_ln_P(PSTR("++++++++++++++++++++"), false);
- }
-}
-
-// Render current layer state
-void render_layer_state(void){
- // If you want to change the display of OLED, you need to change here
- switch (get_highest_layer(layer_state)){
- case _QWERTY:
- oled_write_ln_P(PSTR("| MODE | QWRTY ]"), false);
- break;
- case _NUM:
- oled_write_ln_P(PSTR("| MODE | NUMBERS ]"), false);
- break;
- case _SYM:
- oled_write_ln_P(PSTR("| MODE | SYMBOLS ]"), false);
- break;
- case _GAME:
- oled_write_ln_P(PSTR("| G A M E ]"), false);
- break;
- case _WEAPON:
- oled_write_ln_P(PSTR("| W E A P O N ]"), false);
- break;
- default:
- oled_write_ln_P(PSTR("| MODE | UNDEF ]"), false);
- }
-}
-
-// Render USB State
-void render_usb_state(void) {
- switch (USB_DeviceState) {
- case DEVICE_STATE_Unattached:
- oled_write_ln_P(PSTR("| USB | FREE ]"), false);
- break;
- case DEVICE_STATE_Suspended:
- oled_write_ln_P(PSTR("| USB | SLEEP ]"), false);
- break;
- case DEVICE_STATE_Configured:
- oled_write_ln_P(PSTR("| USB | READY ]"), false);
- break;
- case DEVICE_STATE_Powered:
- oled_write_ln_P(PSTR("| USB | PWRD ]"), false);
- break;
- case DEVICE_STATE_Default:
- oled_write_ln_P(PSTR("| USB | DFLT ]"), false);
- break;
- case DEVICE_STATE_Addressed:
- oled_write_ln_P(PSTR("| USB | ADDRS ]"), false);
- break;
- default:
- oled_write_ln_P(PSTR("| USB | INVALID ]"), false);
- }
-}
-
// Render Logo
void render_logo(void) {
oled_write(read_logo(), false);
@@ -209,7 +173,8 @@ void render_slave_oled(void) {
// {OLED Task} -----------------------------------------------//
void oled_task_user(void) {
- if (timer_elapsed32(oled_timer) > 80000 && timer_elapsed32(oled_timer) < 479999) {
+ // First time out switches to logo as first indication of iddle.
+ if (timer_elapsed32(oled_timer) > 100000 && timer_elapsed32(oled_timer) < 479999) {
// Render logo on both halves before full timeout
if (is_master && !master_oled_cleared) {
// Clear master OLED once so the logo renders properly
diff --git a/keyboards/crkbd/keymaps/kidbrazil/layer.c b/keyboards/crkbd/keymaps/kidbrazil/layer.c
new file mode 100644
index 000000000..bd04f3b88
--- /dev/null
+++ b/keyboards/crkbd/keymaps/kidbrazil/layer.c
@@ -0,0 +1,69 @@
+#include QMK_KEYBOARD_H
+#include "enums.h"
+
+// Render Blank Space
+void render_space(void) {
+ oled_write_ln_P(PSTR(" "), false);
+}
+
+// Render separator lines for oled display
+void render_separator(void) {
+ switch (get_highest_layer(layer_state)){
+ case _GAME:
+ case _WEAPON:
+ oled_write_ln_P(PSTR("===================="), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("++++++++++++++++++++"), false);
+ }
+}
+
+// Render current layer state
+void render_layer_state(void){
+ // If you want to change the display of OLED, you need to change here
+ switch (get_highest_layer(layer_state)){
+ case _QWERTY:
+ oled_write_ln_P(PSTR("| MODE | QWRTY ]"), false);
+ break;
+ case _NUM:
+ oled_write_ln_P(PSTR("| MODE | NUMBERS ]"), false);
+ break;
+ case _SYM:
+ oled_write_ln_P(PSTR("| MODE | SYMBOLS ]"), false);
+ break;
+ case _GAME:
+ oled_write_ln_P(PSTR("| G A M E ]"), false);
+ break;
+ case _WEAPON:
+ oled_write_ln_P(PSTR("| W E A P O N ]"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("| MODE | UNDEF ]"), false);
+ }
+}
+
+// Render USB State
+void render_usb_state(void) {
+ switch (USB_DeviceState) {
+ case DEVICE_STATE_Unattached:
+ oled_write_ln_P(PSTR("| USB | FREE ]"), false);
+ break;
+ case DEVICE_STATE_Suspended:
+ oled_write_ln_P(PSTR("| USB | SLEEP ]"), false);
+ break;
+ case DEVICE_STATE_Configured:
+ oled_write_ln_P(PSTR("| USB | READY ]"), false);
+ break;
+ case DEVICE_STATE_Powered:
+ oled_write_ln_P(PSTR("| USB | PWRD ]"), false);
+ break;
+ case DEVICE_STATE_Default:
+ oled_write_ln_P(PSTR("| USB | DFLT ]"), false);
+ break;
+ case DEVICE_STATE_Addressed:
+ oled_write_ln_P(PSTR("| USB | ADDRS ]"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("| USB | INVALID ]"), false);
+ }
+}
diff --git a/keyboards/crkbd/keymaps/kidbrazil/layer.h b/keyboards/crkbd/keymaps/kidbrazil/layer.h
new file mode 100644
index 000000000..2134e6dda
--- /dev/null
+++ b/keyboards/crkbd/keymaps/kidbrazil/layer.h
@@ -0,0 +1,9 @@
+// [OLED Helpers] ----------------------------------------------------//
+// Render empty space on OLED
+void render_space(void);
+// Render separator characters for rows
+void render_separator(void);
+// Render layer state
+void render_layer_state(void);
+// Render USB State
+void render_usb_state(void);
diff --git a/keyboards/crkbd/keymaps/kidbrazil/rules.mk b/keyboards/crkbd/keymaps/kidbrazil/rules.mk
index ad03b86bf..244712cd0 100644
--- a/keyboards/crkbd/keymaps/kidbrazil/rules.mk
+++ b/keyboards/crkbd/keymaps/kidbrazil/rules.mk
@@ -8,10 +8,5 @@ RGB_MATRIX_ENABLE = WS2812
OLED_DRIVER_ENABLE = yes
# If you want to change the display of OLED, you need to change here
-SRC += ./keyboards/crkbd/keymaps/kidbrazil/logo_reader.c \
- #./lib/rgb_state_reader.c \
- #./lib/logo_reader.c \
- #./lib/keylogger.c \
- # ./lib/mode_icon_reader.c \
- # ./lib/host_led_state_reader.c \
- # ./lib/timelogger.c \
+SRC += logo_reader.c \
+ layer.c
diff --git a/keyboards/crkbd/keymaps/ninjonas/config.h b/keyboards/crkbd/keymaps/ninjonas/config.h
index 5d2144662..8a4ddad74 100644
--- a/keyboards/crkbd/keymaps/ninjonas/config.h
+++ b/keyboards/crkbd/keymaps/ninjonas/config.h
@@ -20,13 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-//#define USE_MATRIX_I2C
-
-/* Select hand configuration */
+#define TAPPING_TERM 200
#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
#define USE_SERIAL_PD2
diff --git a/keyboards/crkbd/rev1/split_util.c b/keyboards/crkbd/rev1/split_util.c
index 35aa54d78..b642a734c 100644
--- a/keyboards/crkbd/rev1/split_util.c
+++ b/keyboards/crkbd/rev1/split_util.c
@@ -20,18 +20,22 @@
#endif
#ifndef SPLIT_USB_TIMEOUT
-# define SPLIT_USB_TIMEOUT 2500
+# define SPLIT_USB_TIMEOUT 2000
+#endif
+
+#ifndef SPLIT_USB_TIMEOUT_POLL
+# define SPLIT_USB_TIMEOUT_POLL 10
#endif
volatile bool isLeftHand = true;
bool waitForUsb(void) {
- for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) {
- // This will return true of a USB connection has been established
+ for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) {
+ // This will return true if a USB connection has been established
if (UDADDR & _BV(ADDEN)) {
return true;
}
- wait_ms(100);
+ wait_ms(SPLIT_USB_TIMEOUT_POLL);
}
// Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow
diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk
index 67674518d..16d05b589 100644
--- a/keyboards/crkbd/rules.mk
+++ b/keyboards/crkbd/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/cu24/rules.mk b/keyboards/cu24/rules.mk
index fdfba55b1..942bfa656 100644
--- a/keyboards/cu24/rules.mk
+++ b/keyboards/cu24/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/cu75/keymaps/default/rules.mk b/keyboards/cu75/keymaps/default/rules.mk
index fd26d69fb..5eb2a0e80 100644
--- a/keyboards/cu75/keymaps/default/rules.mk
+++ b/keyboards/cu75/keymaps/default/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Disable keyboard backlight functionality
diff --git a/keyboards/cu75/rules.mk b/keyboards/cu75/rules.mk
index 697d8d18f..1eb9cf8f7 100644
--- a/keyboards/cu75/rules.mk
+++ b/keyboards/cu75/rules.mk
@@ -11,4 +11,9 @@ MCU = atmega32u4
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
+# Build Options
+# change yes to no to disable
+#
+BACKLIGHT_DRIVER = custom
+
SRC = ../lfkeyboards/TWIlib.c ../lfkeyboards/issi.c ../lfkeyboards/lighting.c
diff --git a/keyboards/cutie_club/wraith/rules.mk b/keyboards/cutie_club/wraith/rules.mk
index 1737728fc..18055ba47 100644
--- a/keyboards/cutie_club/wraith/rules.mk
+++ b/keyboards/cutie_club/wraith/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/daisy/config.h b/keyboards/daisy/config.h
index 567a215a6..4ee4d242f 100644
--- a/keyboards/daisy/config.h
+++ b/keyboards/daisy/config.h
@@ -1,13 +1,29 @@
-#ifndef CONFIG_H
-#define CONFIG_H
+/*
+Copyright 2020
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0x1209
-#define PRODUCT_ID 0x2328
-#define DEVICE_VER 0x501
-#define MANUFACTURER K.T.E.C.
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x7169
+#define DEVICE_VER 0x0501
+#define MANUFACTURER KTEC
#define PRODUCT Daisy
#define DESCRIPTION qmk port for Daisy
@@ -32,22 +48,59 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
#define BACKLIGHT_PIN D0
+// #define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 6
+#define RGB_DI_PIN C7
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 8
+# define RGBLIGHT_HUE_STEP 12
+# define RGBLIGHT_SAT_STEP 25
+# define RGBLIGHT_VAL_STEP 12
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+# define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-/* number of backlight levels */
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
/*
* Force NKRO
*
@@ -81,6 +134,10 @@
*
*/
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
@@ -90,8 +147,8 @@
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1 H
-//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
@@ -99,9 +156,8 @@
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0_ALT1 ESC
-//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
@@ -111,9 +167,11 @@
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
@@ -132,17 +190,12 @@
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-// ws2812 options
-#define RGB_DI_PIN C7 // pin the DI on the ws2812 is hooked-up to
-#define RGBLIGHT_ANIMATIONS // run RGB animations
-#define RGBLED_NUM 8 // number of LEDs
-#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
-#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
-#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
+/* disable these deprecated features by default */
+#ifndef LINK_TIME_OPTIMIZATION_ENABLE
+ #define NO_ACTION_MACRO
+ #define NO_ACTION_FUNCTION
+#endif
/*
* MIDI options
*/
@@ -166,4 +219,34 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/daisy/daisy.c b/keyboards/daisy/daisy.c
index f8ca24ff0..4e365ed46 100644
--- a/keyboards/daisy/daisy.c
+++ b/keyboards/daisy/daisy.c
@@ -1,15 +1,35 @@
+/* Copyright 2020
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#include "daisy.h"
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- // output low
- DDRC |= (1<<PC6);
- PORTC &= ~(1<<PC6);
- } else {
- // Hi-Z
- DDRC &= ~(1<<PC6);
- PORTC &= ~(1<<PC6);
- }
- led_set_user(usb_led);
-} \ No newline at end of file
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
+ setPinOutput(C6);
+ writePinHigh(C6);
+}
+
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(C6, !led_state.caps_lock);
+ }
+
+ return true;
+}
diff --git a/keyboards/daisy/daisy.h b/keyboards/daisy/daisy.h
index 15483e3a3..b78c60464 100644
--- a/keyboards/daisy/daisy.h
+++ b/keyboards/daisy/daisy.h
@@ -1,19 +1,51 @@
-#ifndef DAISY_H
-#define DAISY_H
+/* Copyright 2020
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
#include "quantum.h"
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
#define LAYOUT( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K3A, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
- K30, K31, K32, K34, K35, K37, K38, K39 \
-) \
-{ \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A }, \
- { K30, K31, K32, KC_NO, K34, K35, KC_NO, K37, K38, K39, K3A } \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K3A, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
+ K30, K31, K32, K34, K35, K37, K38, K39 \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A }, \
+ { K30, K31, K32, KC_NO, K34, K35, KC_NO, K37, K38, K39, K3A } \
}
-#endif
+#define LAYOUT_625_space( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K3A, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
+ K30, K31, K32, K35, K38, K39 \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A }, \
+ { K30, K31, K32, KC_NO, KC_NO, K35, KC_NO, KC_NO, K38, K39, K3A } \
+}
diff --git a/keyboards/daisy/info.json b/keyboards/daisy/info.json
index 400575793..fcc7cd9fa 100644
--- a/keyboards/daisy/info.json
+++ b/keyboards/daisy/info.json
@@ -1,18 +1,107 @@
{
- "keyboard_name": "Daisy",
- "url": "",
- "maintainer": "qmk",
- "width": 12,
- "height": 4,
- "layouts": {
- "LAYOUT": {
- "key_count": 42,
- "layout": [{"label": "K00", "x": 0, "y": 0}, {"label": "K01", "x": 1, "y": 0}, {"label": "K02", "x": 2, "y": 0}, {"label": "K03", "x": 3, "y": 0}, {"label": "K04", "x": 4, "y": 0}, {"label": "K05", "x": 5, "y": 0}, {"label": "K06", "x": 6, "y": 0}, {"label": "K07", "x": 7, "y": 0}, {"label": "K08", "x": 8, "y": 0}, {"label": "K09", "x": 9, "y": 0}, {"label": "K0A", "x": 10, "y": 0}, {"label": "K3A", "x": 11, "y": 0}, {"label": "K10", "x": 0, "y": 1, "w": 1.25}, {"label": "K11", "x": 1.25, "y": 1}, {"label": "K12", "x": 2.25, "y": 1}, {"label": "K13", "x": 3.25, "y": 1}, {"label": "K14", "x": 4.25, "y": 1}, {"label": "K15", "x": 5.25, "y": 1}, {"label": "K16", "x": 6.25, "y": 1}, {"label": "K17", "x": 7.25, "y": 1}, {"label": "K18", "x": 8.25, "y": 1}, {"label": "K19", "x": 9.25, "y": 1}, {"label": "K1A", "x": 10.25, "y": 1, "w": 1.75}, {"label": "K20", "x": 0, "y": 2, "w": 1.75}, {"label": "K21", "x": 1.75, "y": 2}, {"label": "K22", "x": 2.75, "y": 2}, {"label": "K23", "x": 3.75, "y": 2}, {"label": "K24", "x": 4.75, "y": 2}, {"label": "K25", "x": 5.75, "y": 2}, {"label": "K26", "x": 6.75, "y": 2}, {"label": "K27", "x": 7.75, "y": 2}, {"label": "K28", "x": 8.75, "y": 2}, {"label": "K29", "x": 9.75, "y": 2}, {"label": "K2A", "x": 10.75, "y": 2, "w": 1.25}, {"label": "K30", "x": 0, "y": 3, "w": 1.25}, {"label": "K31", "x": 1.25, "y": 3}, {"label": "K32", "x": 2.25, "y": 3, "w": 1.25}, {"label": "K34", "x": 3.5, "y": 3, "w": 2.25}, {"label": "K35", "x": 5.75, "y": 3, "w": 2.75}, {"label": "K37", "x": 8.5, "y": 3, "w": 1.25}, {"label": "K38", "x": 9.75, "y": 3}, {"label": "K39", "x": 10.75, "y": 3, "w": 1.25}]
- },
+ "keyboard_name": "Daisy",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 12,
+ "height": 4,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 42,
+ "layout": [
+ {"x": 0, "y": 0},
+ {"x": 1, "y": 0},
+ {"x": 2, "y": 0},
+ {"x": 3, "y": 0},
+ {"x": 4, "y": 0},
+ {"x": 5, "y": 0},
+ {"x": 6, "y": 0},
+ {"x": 7, "y": 0},
+ {"x": 8, "y": 0},
+ {"x": 9, "y": 0},
+ {"x": 10, "y": 0},
+ {"x": 11, "y": 0},
- "LAYOUT_625_space": {
- "key_count": 40,
- "layout": [{"label": "K00", "x": 0, "y": 0}, {"label": "K01", "x": 1, "y": 0}, {"label": "K02", "x": 2, "y": 0}, {"label": "K03", "x": 3, "y": 0}, {"label": "K04", "x": 4, "y": 0}, {"label": "K05", "x": 5, "y": 0}, {"label": "K06", "x": 6, "y": 0}, {"label": "K07", "x": 7, "y": 0}, {"label": "K08", "x": 8, "y": 0}, {"label": "K09", "x": 9, "y": 0}, {"label": "K0A", "x": 10, "y": 0}, {"label": "K3A", "x": 11, "y": 0}, {"label": "K10", "x": 0, "y": 1, "w": 1.25}, {"label": "K11", "x": 1.25, "y": 1}, {"label": "K12", "x": 2.25, "y": 1}, {"label": "K13", "x": 3.25, "y": 1}, {"label": "K14", "x": 4.25, "y": 1}, {"label": "K15", "x": 5.25, "y": 1}, {"label": "K16", "x": 6.25, "y": 1}, {"label": "K17", "x": 7.25, "y": 1}, {"label": "K18", "x": 8.25, "y": 1}, {"label": "K19", "x": 9.25, "y": 1}, {"label": "K1A", "x": 10.25, "y": 1, "w": 1.75}, {"label": "K20", "x": 0, "y": 2, "w": 1.75}, {"label": "K21", "x": 1.75, "y": 2}, {"label": "K22", "x": 2.75, "y": 2}, {"label": "K23", "x": 3.75, "y": 2}, {"label": "K24", "x": 4.75, "y": 2}, {"label": "K25", "x": 5.75, "y": 2}, {"label": "K26", "x": 6.75, "y": 2}, {"label": "K27", "x": 7.75, "y": 2}, {"label": "K28", "x": 8.75, "y": 2}, {"label": "K29", "x": 9.75, "y": 2}, {"label": "K2A", "x": 10.75, "y": 2, "w": 1.25}, {"label": "K30", "x": 0, "y": 3, "w": 1.25}, {"label": "K31", "x": 1.25, "y": 3}, {"label": "K32", "x": 2.25, "y": 3}, {"x": 3.25, "y": 3, "w": 6.25}, {"label": "K38", "x": 9.5, "y": 3, "w": 1.25}, {"label": "K39", "x": 10.75, "y": 3, "w": 1.25}]
+ {"x": 0, "y": 1, "w": 1.25},
+ {"x": 1.25, "y": 1},
+ {"x": 2.25, "y": 1},
+ {"x": 3.25, "y": 1},
+ {"x": 4.25, "y": 1},
+ {"x": 5.25, "y": 1},
+ {"x": 6.25, "y": 1},
+ {"x": 7.25, "y": 1},
+ {"x": 8.25, "y": 1},
+ {"x": 9.25, "y": 1},
+ {"x": 10.25, "y": 1, "w": 1.75},
+
+ {"x": 0, "y": 2, "w": 1.75},
+ {"x": 1.75, "y": 2},
+ {"x": 2.75, "y": 2},
+ {"x": 3.75, "y": 2},
+ {"x": 4.75, "y": 2},
+ {"x": 5.75, "y": 2},
+ {"x": 6.75, "y": 2},
+ {"x": 7.75, "y": 2},
+ {"x": 8.75, "y": 2},
+ {"x": 9.75, "y": 2},
+ {"x": 10.75, "y": 2, "w": 1.25},
+
+ {"x": 0, "y": 3, "w": 1.25},
+ {"x": 1.25, "y": 3},
+ {"x": 2.25, "y": 3, "w": 1.25},
+ {"x": 3.5, "y": 3, "w": 2.25},
+ {"x": 5.75, "y": 3, "w": 2.75},
+ {"x": 8.5, "y": 3, "w": 1.25},
+ {"x": 9.75, "y": 3},
+ {"x": 10.75, "y": 3, "w": 1.25}
+ ]
+ },
+ "LAYOUT_625_space": {
+ "key_count": 40,
+ "layout": [
+ {"x": 0, "y": 0},
+ {"x": 1, "y": 0},
+ {"x": 2, "y": 0},
+ {"x": 3, "y": 0},
+ {"x": 4, "y": 0},
+ {"x": 5, "y": 0},
+ {"x": 6, "y": 0},
+ {"x": 7, "y": 0},
+ {"x": 8, "y": 0},
+ {"x": 9, "y": 0},
+ {"x": 10, "y": 0},
+ {"x": 11, "y": 0},
+
+ {"x": 0, "y": 1, "w": 1.25},
+ {"x": 1.25, "y": 1},
+ {"x": 2.25, "y": 1},
+ {"x": 3.25, "y": 1},
+ {"x": 4.25, "y": 1},
+ {"x": 5.25, "y": 1},
+ {"x": 6.25, "y": 1},
+ {"x": 7.25, "y": 1},
+ {"x": 8.25, "y": 1},
+ {"x": 9.25, "y": 1},
+ {"x": 10.25, "y": 1, "w": 1.75},
+
+ {"x": 0, "y": 2, "w": 1.75},
+ {"x": 1.75, "y": 2},
+ {"x": 2.75, "y": 2},
+ {"x": 3.75, "y": 2},
+ {"x": 4.75, "y": 2},
+ {"x": 5.75, "y": 2},
+ {"x": 6.75, "y": 2},
+ {"x": 7.75, "y": 2},
+ {"x": 8.75, "y": 2},
+ {"x": 9.75, "y": 2},
+ {"x": 10.75, "y": 2, "w": 1.25},
+
+ {"x": 0, "y": 3, "w": 1.25},
+ {"x": 1.25, "y": 3},
+ {"x": 2.25, "y": 3},
+ {"x": 3.25, "y": 3, "w": 6.25},
+ {"x": 9.5, "y": 3, "w": 1.25},
+ {"x": 10.75, "y": 3, "w": 1.25}
+ ]
+ }
}
- }
}
diff --git a/keyboards/daisy/keymaps/default/keymap.c b/keyboards/daisy/keymaps/default/keymap.c
index adc3298d0..f07680376 100644
--- a/keyboards/daisy/keymaps/default/keymap.c
+++ b/keyboards/daisy/keymaps/default/keymap.c
@@ -1,92 +1,83 @@
-#include QMK_KEYBOARD_H
-
+/* Copyright 2020
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
-// Layer shorthand
-#define _BL 0
-#define _LW 1
-#define _RS 2
+#include QMK_KEYBOARD_H
-enum layer_keycodes {
- QWERTY = SAFE_RANGE, LOWER, RAISE
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BL,
+ _LW,
+ _RS
};
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Base Layer
- * .-----------------------------------------------------------------------.
- * | ESC | Q | W | E | R | T | Y | U | I | O | P | \| |
- * |-----------------------------------------------------------------------|
- * | TAB | A | S | D | F | G | H | J | K | L | ENTER |
- * |-----------------------------------------------------------------------|
- * | LSHIFT | Z | X | C | V | B | N | M | ,< | .> | /? |
- * |-----------------------------------------------------------------------|
- * | LCTRL | LGUI | LALT | SPACE | BACKSPACE | LW | RS | RALT |
- * '-----------------------------------------------------------------------'
- */
- [_BL] = LAYOUT(
- GRAVE_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, LOWER, RAISE, KC_RALT
- ),
+#define LOWER MO(_LW)
+#define RAISE MO(_RS)
- /* Function Layer
- * .-----------------------------------------------------------------------.
- * | GRV | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | -_ |
- * |-----------------------------------------------------------------------|
- * | | =+ | UP | | | | [{ | ]} | ;: | '" | |
- * |-----------------------------------------------------------------------|
- * | | LEFT| DOWN |RIGHT| | | | | | | |
- * |-----------------------------------------------------------------------|
- * | | | | | DELETE | | | |
- * '-----------------------------------------------------------------------'
- */
-
- [_LW] = LAYOUT(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_TRNS, KC_EQL, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- /* Second Function Layer
- * .-----------------------------------------------------------------------.
- * | RST | F1 | F2 | F3 | F4 | F5 | F6 | | HOME| PGUP| | |
- * |-----------------------------------------------------------------------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | END | PGDN| |
- * |-----------------------------------------------------------------------|
- * | |RGBtog|RGBmod|RGBhud|RGBhui|RGBvad|RGBvai|RGBsad|RGBsai|BL| |
- * |-----------------------------------------------------------------------|
- * | | | | | | | | |
- * '-----------------------------------------------------------------------'
- */
- [_RS] = LAYOUT(
- RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, BL_STEP, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base Layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ \ │
+ * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│
+ * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
+ * │Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │  / │
+ * ├────┬─┴─┬─┴──┬┴───┴───┼───┴───┴──┬┴───┼───┼────┤
+ * │Ctrl│GUI│Alt │        │ Backspace│Lowr│Rse│ Alt│
+ * └────┴───┴────┴────────┴──────────┴────┴───┴────┘
+ */
+ [_BL] = LAYOUT(
+ KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_BSPC, LOWER, RAISE, KC_RALT
+ ),
-};
+ /* Function Layer 1 (Lower)
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │
+ * └───┴┬──┴┬──┴┬──┴───┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴───┘
+ * │    │ = │ ▴ │   │   │   │ [ │ ] │ ; │ ' │      │
+ * ├────└─┬─┴─┬─┴─┬───┐─┴─┬─└───┴───┴───┴───┘─┬────┤
+ * │      │ ◂ │ ▾ │ ▸ │   │   │   │   │   │   │    │
+ * ├────┬─└───┴───┴───┘───┌──────────┐┴───┼───┼────┤
+ * │    │   │    │        │   Delete │    │   │    │
+ * └────┴───┴────┴────────└──────────┘────┴───┴────┘
+ */
+ [_LW] = LAYOUT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ _______, KC_EQL, KC_UP, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, _______,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, KC_DEL, _______, _______, _______
+ ),
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LOWER:
- if(record->event.pressed){
- layer_on(_LW);
- } else {
- layer_off(_LW);
- }
- return false;
- break;
- case RAISE:
- if(record->event.pressed){
- layer_on(_RS);
- } else {
- layer_off(_RS);
- }
- return false;
- break;
- }
- return true;
+ /* Function Layer 2 (Raise)
+ * ┌───┬───┬───┬───┬───┬───┬───┐───┌───┬───┐───┬───┐
+ * │Rst│F1 │F2 │F3 │F4 │F5 │F6 │   │Hom│PgU│   │   │
+ * └───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐──└┬──┴┬──┴┐──┴───┤
+ * │    │F7 │F8 │F9 │F10│F11│F12│   │ ; │ ' │      │
+ * ├────└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┴───┴───┴─┐────┤
+ * │      │RGB│Mod│HuD│HuI│VaD│VaI│SaD│SaI│BLS│    │
+ * ├────┬─└───┴───┴───┴───┴───┴───┴───┴───┴───┘────┤
+ * │    │   │    │        │          │    │   │    │
+ * └────┴───┴────┴────────┴──────────┴────┴───┴────┘
+ */
+ [_RS] = LAYOUT(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_HOME, KC_PGUP, _______, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_END, KC_PGDN, _______,
+ _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, BL_STEP, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/daisy/keymaps/default/readme.md b/keyboards/daisy/keymaps/default/readme.md
index dff0dcbde..b8c7d17f2 100644
--- a/keyboards/daisy/keymaps/default/readme.md
+++ b/keyboards/daisy/keymaps/default/readme.md
@@ -1,5 +1 @@
-![Daisy Layout Image](https://imgur.com/9mSF0yf)
-
-# Default Daisy Layout
-
-This is the default layout as offered by KPRepublic's TMK firmware for the Daisy with a few minor tweaks for usability made by me.
+# The default keymap for Daisy
diff --git a/keyboards/daisy/readme.md b/keyboards/daisy/readme.md
index c8175c283..a8a93bf79 100644
--- a/keyboards/daisy/readme.md
+++ b/keyboards/daisy/readme.md
@@ -1,29 +1,15 @@
# Daisy
-A 40% keyboard kit sold by KPRepublic.
+![Daisy PCB](https://cdn.shopify.com/s/files/1/2711/4238/products/HTB1Pj1UggMPMeJjy1Xcq6xpppXa7_1024x1024.jpg)
-Keyboard Maintainer: westfoxtrot (https://github.com/westfoxtrot)
-Hardware Supported: Daisy PCB Rev.1, Daisy PCB Rev.2
-Hardware Availability: http://tinyurl.com/yc26lq22
+A 40% keyboard kit sold by KPrepublic.
+
+* Keyboard Maintainer: [westfoxtrot](https://github.com/westfoxtrot)
+* Hardware Supported: Daisy PCB Rev.1, Daisy PCB Rev.2
+* Hardware Availability: [KPrepublic](https://kprepublic.com/products/daisy-40-custom-keyboard-pcb)
Make example for this keyboard (after setting up your build environment):
make daisy:default
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
-
-
-# Other Keymaps
-
-The "default" keymap included is the layout I personally use on the Daisy and the one I have found the most comfortable.
-
-A printable picture showing this layout is available here: https://imgur.com/9mSF0yf
-
-
-```
-$ make daisy:[default|<name>]
-```
-
-# Bootloader
-
-I personally had issues with the bootloader on my Daisy PCB and was unable to flash a firmware to the board after the first time. I replaced the bootloader with the one available in the repository at ../../util/bootloader_atmega32u4_1_0_0.hex
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/daisy/rules.mk b/keyboards/daisy/rules.mk
index d2b0d7d16..c82fa9bc6 100644
--- a/keyboards/daisy/rules.mk
+++ b/keyboards/daisy/rules.mk
@@ -11,20 +11,22 @@ MCU = atmega32u4
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
-# QMK Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
+# Build Options
+# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/db/db63/config.h b/keyboards/db/db63/config.h
index 468e0f8a9..3183201c1 100644
--- a/keyboards/db/db63/config.h
+++ b/keyboards/db/db63/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
#define RGBLED_NUM 18
#define RGBLIGHT_ANIMATIONS
@@ -39,4 +41,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 3
-
diff --git a/keyboards/dc01/arrow/rules.mk b/keyboards/dc01/arrow/rules.mk
index 56a9cfc49..6643ad789 100644
--- a/keyboards/dc01/arrow/rules.mk
+++ b/keyboards/dc01/arrow/rules.mk
@@ -14,22 +14,22 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in
CUSTOM_MATRIX = yes # Use custom matrix
SRC += matrix.c \
diff --git a/keyboards/dc01/left/rules.mk b/keyboards/dc01/left/rules.mk
index 9e34a0a80..aa2467eb6 100644
--- a/keyboards/dc01/left/rules.mk
+++ b/keyboards/dc01/left/rules.mk
@@ -14,22 +14,22 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes # Use custom matrix
SRC += matrix.c \
i2c_master.c
diff --git a/keyboards/dc01/numpad/rules.mk b/keyboards/dc01/numpad/rules.mk
index 674ef1d02..27d73e261 100644
--- a/keyboards/dc01/numpad/rules.mk
+++ b/keyboards/dc01/numpad/rules.mk
@@ -14,22 +14,22 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in
CUSTOM_MATRIX = yes # Use custom matrix
SRC += matrix.c \
diff --git a/keyboards/dc01/right/rules.mk b/keyboards/dc01/right/rules.mk
index 56a9cfc49..6643ad789 100644
--- a/keyboards/dc01/right/rules.mk
+++ b/keyboards/dc01/right/rules.mk
@@ -14,22 +14,22 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in
CUSTOM_MATRIX = yes # Use custom matrix
SRC += matrix.c \
diff --git a/keyboards/deltasplit75/deltasplit75.h b/keyboards/deltasplit75/deltasplit75.h
index 79d018c91..b78d85734 100644
--- a/keyboards/deltasplit75/deltasplit75.h
+++ b/keyboards/deltasplit75/deltasplit75.h
@@ -1,8 +1,7 @@
-#ifndef DELTASPLIT75_H
-#define DELTASPLIT75_H
-
-#include "v2.h"
+#pragma once
#include "quantum.h"
-#endif \ No newline at end of file
+#ifdef KEYBOARD_deltasplit75_v2
+# include "v2.h"
+#endif
diff --git a/keyboards/deltasplit75/eeprom-lefthand.eep b/keyboards/deltasplit75/eeprom-lefthand.eep
deleted file mode 100644
index b9666a74c..000000000
--- a/keyboards/deltasplit75/eeprom-lefthand.eep
+++ /dev/null
@@ -1,2 +0,0 @@
-:0B0000000000000000000000000001F4
-:00000001FF
diff --git a/keyboards/deltasplit75/eeprom-righthand.eep b/keyboards/deltasplit75/eeprom-righthand.eep
deleted file mode 100644
index 94cc5be7f..000000000
--- a/keyboards/deltasplit75/eeprom-righthand.eep
+++ /dev/null
@@ -1,2 +0,0 @@
-:0B0000000000000000000000000000F5
-:00000001FF
diff --git a/keyboards/deltasplit75/i2c.c b/keyboards/deltasplit75/i2c.c
deleted file mode 100644
index 084c890c4..000000000
--- a/keyboards/deltasplit75/i2c.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <util/twi.h>
-#include <avr/io.h>
-#include <stdlib.h>
-#include <avr/interrupt.h>
-#include <util/twi.h>
-#include <stdbool.h>
-#include "i2c.h"
-
-#ifdef USE_I2C
-
-// Limits the amount of we wait for any one i2c transaction.
-// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is
-// 9 bits, a single transaction will take around 90μs to complete.
-//
-// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit
-// poll loop takes at least 8 clock cycles to execute
-#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8
-
-#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE)
-
-volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-static volatile uint8_t slave_buffer_pos;
-static volatile bool slave_has_register_set = false;
-
-// Wait for an i2c operation to finish
-inline static
-void i2c_delay(void) {
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWINT)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-
- // easier way, but will wait slightly longer
- // _delay_us(100);
-}
-
-// Setup twi to run at 100kHz
-void i2c_master_init(void) {
- // no prescaler
- TWSR = 0;
- // Set TWI clock frequency to SCL_CLOCK. Need TWBR>10.
- // Check datasheets for more info.
- TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
-}
-
-// Start a transaction with the given i2c slave address. The direction of the
-// transfer is set with I2C_READ and I2C_WRITE.
-// returns: 0 => success
-// 1 => error
-uint8_t i2c_master_start(uint8_t address) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTA);
-
- i2c_delay();
-
- // check that we started successfully
- if ( (TW_STATUS != TW_START) && (TW_STATUS != TW_REP_START))
- return 1;
-
- TWDR = address;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- if ( (TW_STATUS != TW_MT_SLA_ACK) && (TW_STATUS != TW_MR_SLA_ACK) )
- return 1; // slave did not acknowledge
- else
- return 0; // success
-}
-
-
-// Finish the i2c transaction.
-void i2c_master_stop(void) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
-
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWSTO)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-}
-
-// Write one byte to the i2c slave.
-// returns 0 => slave ACK
-// 1 => slave NACK
-uint8_t i2c_master_write(uint8_t data) {
- TWDR = data;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- // check if the slave acknowledged us
- return (TW_STATUS == TW_MT_DATA_ACK) ? 0 : 1;
-}
-
-// Read one byte from the i2c slave. If ack=1 the slave is acknowledged,
-// if ack=0 the acknowledge bit is not set.
-// returns: byte read from i2c device
-uint8_t i2c_master_read(int ack) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (ack<<TWEA);
-
- i2c_delay();
- return TWDR;
-}
-
-void i2c_reset_state(void) {
- TWCR = 0;
-}
-
-void i2c_slave_init(uint8_t address) {
- TWAR = address << 0; // slave i2c address
- // TWEN - twi enable
- // TWEA - enable address acknowledgement
- // TWINT - twi interrupt flag
- // TWIE - enable the twi interrupt
- TWCR = (1<<TWIE) | (1<<TWEA) | (1<<TWINT) | (1<<TWEN);
-}
-
-ISR(TWI_vect);
-
-ISR(TWI_vect) {
- uint8_t ack = 1;
- switch(TW_STATUS) {
- case TW_SR_SLA_ACK:
- // this device has been addressed as a slave receiver
- slave_has_register_set = false;
- break;
-
- case TW_SR_DATA_ACK:
- // this device has received data as a slave receiver
- // The first byte that we receive in this transaction sets the location
- // of the read/write location of the slaves memory that it exposes over
- // i2c. After that, bytes will be written at slave_buffer_pos, incrementing
- // slave_buffer_pos after each write.
- if(!slave_has_register_set) {
- slave_buffer_pos = TWDR;
- // don't acknowledge the master if this memory loctaion is out of bounds
- if ( slave_buffer_pos >= SLAVE_BUFFER_SIZE ) {
- ack = 0;
- slave_buffer_pos = 0;
- }
- slave_has_register_set = true;
- } else {
- i2c_slave_buffer[slave_buffer_pos] = TWDR;
- BUFFER_POS_INC();
- }
- break;
-
- case TW_ST_SLA_ACK:
- case TW_ST_DATA_ACK:
- // master has addressed this device as a slave transmitter and is
- // requesting data.
- TWDR = i2c_slave_buffer[slave_buffer_pos];
- BUFFER_POS_INC();
- break;
-
- case TW_BUS_ERROR: // something went wrong, reset twi state
- TWCR = 0;
- default:
- break;
- }
- // Reset everything, so we are ready for the next TWI interrupt
- TWCR |= (1<<TWIE) | (1<<TWINT) | (ack<<TWEA) | (1<<TWEN);
-}
-#endif
diff --git a/keyboards/deltasplit75/i2c.h b/keyboards/deltasplit75/i2c.h
deleted file mode 100644
index 08ce4b009..000000000
--- a/keyboards/deltasplit75/i2c.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef I2C_H
-#define I2C_H
-
-#include <stdint.h>
-
-#ifndef F_CPU
-#define F_CPU 16000000UL
-#endif
-
-#define I2C_READ 1
-#define I2C_WRITE 0
-
-#define I2C_ACK 1
-#define I2C_NACK 0
-
-#define SLAVE_BUFFER_SIZE 0x10
-
-// i2c SCL clock frequency
-#define SCL_CLOCK 100000L
-
-extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-void i2c_master_init(void);
-uint8_t i2c_master_start(uint8_t address);
-void i2c_master_stop(void);
-uint8_t i2c_master_write(uint8_t data);
-uint8_t i2c_master_read(int);
-void i2c_reset_state(void);
-void i2c_slave_init(uint8_t address);
-
-#endif
diff --git a/keyboards/deltasplit75/matrix.c b/keyboards/deltasplit75/matrix.c
deleted file mode 100644
index 28198d89b..000000000
--- a/keyboards/deltasplit75/matrix.c
+++ /dev/null
@@ -1,454 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/*
- * scan matrix
- */
-#include <stdint.h>
-#include <stdbool.h>
-#include <avr/io.h>
-#include "wait.h"
-#include "print.h"
-#include "debug.h"
-#include "util.h"
-#include "matrix.h"
-#include "split_util.h"
-#include "pro_micro.h"
-#include "config.h"
-#include "timer.h"
-
-#ifdef USE_I2C
-# include "i2c.h"
-#else // USE_SERIAL
-# include "serial.h"
-#endif
-
-#ifndef DEBOUNCE
-# define DEBOUNCE 5
-#endif
-
-#if (DEBOUNCE > 0)
- static uint16_t debouncing_time;
- static bool debouncing = false;
-#endif
-
-#if (MATRIX_COLS <= 8)
-# define print_matrix_header() print("\nr/c 01234567\n")
-# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
-# define matrix_bitpop(i) bitpop(matrix[i])
-# define ROW_SHIFTER ((uint8_t)1)
-#else
-# error "Currently only supports 8 COLS"
-#endif
-static matrix_row_t matrix_debouncing[MATRIX_ROWS];
-
-#define ERROR_DISCONNECT_COUNT 5
-
-#define ROWS_PER_HAND (MATRIX_ROWS/2)
-
-static uint8_t error_count = 0;
-
-static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
-static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
-
-/* matrix state(1:on, 0:off) */
-static matrix_row_t matrix[MATRIX_ROWS];
-static matrix_row_t matrix_debouncing[MATRIX_ROWS];
-
-#if (DIODE_DIRECTION == COL2ROW)
- static void init_cols(void);
- static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row);
- static void unselect_rows(void);
- static void select_row(uint8_t row);
- static void unselect_row(uint8_t row);
-#elif (DIODE_DIRECTION == ROW2COL)
- static void init_rows(void);
- static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col);
- static void unselect_cols(void);
- static void unselect_col(uint8_t col);
- static void select_col(uint8_t col);
-#endif
-
-__attribute__ ((weak))
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
-__attribute__ ((weak))
-void matrix_scan_kb(void) {
- matrix_scan_user();
-}
-
-__attribute__ ((weak))
-void matrix_init_user(void) {
-}
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {
-}
-
-inline
-uint8_t matrix_rows(void)
-{
- return MATRIX_ROWS;
-}
-
-inline
-uint8_t matrix_cols(void)
-{
- return MATRIX_COLS;
-}
-
-void matrix_init(void)
-{
- debug_enable = true;
- debug_matrix = true;
- debug_mouse = true;
- // initialize row and col
- unselect_rows();
- init_cols();
-
- TX_RX_LED_INIT;
-
- // initialize matrix state: all keys off
- for (uint8_t i=0; i < MATRIX_ROWS; i++) {
- matrix[i] = 0;
- matrix_debouncing[i] = 0;
- }
-
- matrix_init_quantum();
-
-}
-
-uint8_t _matrix_scan(void)
-{
- int offset = isLeftHand ? 0 : (ROWS_PER_HAND);
-#if (DIODE_DIRECTION == COL2ROW)
- // Set row, read cols
- for (uint8_t current_row = 0; current_row < ROWS_PER_HAND; current_row++) {
-# if (DEBOUNCE > 0)
- bool matrix_changed = read_cols_on_row(matrix_debouncing+offset, current_row);
-
- if (matrix_changed) {
- debouncing = true;
- debouncing_time = timer_read();
- }
-
-# else
- read_cols_on_row(matrix+offset, current_row);
-# endif
-
- }
-
-#elif (DIODE_DIRECTION == ROW2COL)
- // Set col, read rows
- for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
-# if (DEBOUNCE > 0)
- bool matrix_changed = read_rows_on_col(matrix_debouncing+offset, current_col);
- if (matrix_changed) {
- debouncing = true;
- debouncing_time = timer_read();
- }
-# else
- read_rows_on_col(matrix+offset, current_col);
-# endif
-
- }
-#endif
-
-# if (DEBOUNCE > 0)
- if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCE)) {
- for (uint8_t i = 0; i < ROWS_PER_HAND; i++) {
- matrix[i+offset] = matrix_debouncing[i+offset];
- }
- debouncing = false;
- }
-# endif
-
- return 1;
-}
-
-#ifdef USE_I2C
-
-// Get rows from other half over i2c
-int i2c_transaction(void) {
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
-
- int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE);
- if (err) goto i2c_error;
-
- // start of matrix stored at 0x00
- err = i2c_master_write(0x00);
- if (err) goto i2c_error;
-
- // Start read
- err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ);
- if (err) goto i2c_error;
-
- if (!err) {
- int i;
- for (i = 0; i < ROWS_PER_HAND-1; ++i) {
- matrix[slaveOffset+i] = i2c_master_read(I2C_ACK);
- }
- matrix[slaveOffset+i] = i2c_master_read(I2C_NACK);
- i2c_master_stop();
- } else {
-i2c_error: // the cable is disconnceted, or something else went wrong
- i2c_reset_state();
- return err;
- }
-
- return 0;
-}
-
-#else // USE_SERIAL
-
-int serial_transaction(void) {
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
-
- if (serial_update_buffers()) {
- return 1;
- }
-
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- matrix[slaveOffset+i] = serial_slave_buffer[i];
- }
- return 0;
-}
-#endif
-
-uint8_t matrix_scan(void)
-{
- uint8_t ret = _matrix_scan();
-
-#ifdef USE_I2C
- if( i2c_transaction() ) {
-#else // USE_SERIAL
- if( serial_transaction() ) {
-#endif
- // turn on the indicator led when halves are disconnected
- TXLED1;
-
- error_count++;
-
- if (error_count > ERROR_DISCONNECT_COUNT) {
- // reset other half if disconnected
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- matrix[slaveOffset+i] = 0;
- }
- }
- } else {
- // turn off the indicator led on no error
- TXLED0;
- error_count = 0;
- }
- matrix_scan_quantum();
- return ret;
-}
-
-void matrix_slave_scan(void) {
- _matrix_scan();
-
- int offset = (isLeftHand) ? 0 : ROWS_PER_HAND;
-
-#ifdef USE_I2C
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- i2c_slave_buffer[i] = matrix[offset+i];
- }
-#else // USE_SERIAL
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- serial_slave_buffer[i] = matrix[offset+i];
- }
-#endif
-}
-
-bool matrix_is_modified(void)
-{
- if (debouncing) return false;
- return true;
-}
-
-inline
-bool matrix_is_on(uint8_t row, uint8_t col)
-{
- return (matrix[row] & ((matrix_row_t)1<<col));
-}
-
-inline
-matrix_row_t matrix_get_row(uint8_t row)
-{
- return matrix[row];
-}
-
-void matrix_print(void)
-{
- print("\nr/c 0123456789ABCDEF\n");
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- phex(row); print(": ");
- pbin_reverse16(matrix_get_row(row));
- print("\n");
- }
-}
-
-uint8_t matrix_key_count(void)
-{
- uint8_t count = 0;
- for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
- count += bitpop16(matrix[i]);
- }
- return count;
-}
-
-#if (DIODE_DIRECTION == COL2ROW)
-
-static void init_cols(void)
-{
- for(uint8_t x = 0; x < MATRIX_COLS; x++) {
- uint8_t pin = col_pins[x];
- _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN
- _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
- }
-}
-
-static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
-{
- // Store last value of row prior to reading
- matrix_row_t last_row_value = current_matrix[current_row];
-
- // Clear data in matrix row
- current_matrix[current_row] = 0;
-
- // Select row and wait for row selecton to stabilize
- select_row(current_row);
- wait_us(30);
-
- // For each col...
- for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
-
- // Select the col pin to read (active low)
- uint8_t pin = col_pins[col_index];
- uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF));
-
- // Populate the matrix row with the state of the col pin
- current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index);
- }
-
- // Unselect row
- unselect_row(current_row);
-
- return (last_row_value != current_matrix[current_row]);
-}
-
-static void select_row(uint8_t row)
-{
- uint8_t pin = row_pins[row];
- _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT
- _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW
-}
-
-static void unselect_row(uint8_t row)
-{
- uint8_t pin = row_pins[row];
- _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN
- _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
-}
-
-static void unselect_rows(void)
-{
- for(uint8_t x = 0; x < ROWS_PER_HAND; x++) {
- uint8_t pin = row_pins[x];
- _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN
- _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
- }
-}
-
-#elif (DIODE_DIRECTION == ROW2COL)
-
-static void init_rows(void)
-{
- for(uint8_t x = 0; x < ROWS_PER_HAND; x++) {
- uint8_t pin = row_pins[x];
- _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN
- _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
- }
-}
-
-static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
-{
- bool matrix_changed = false;
-
- // Select col and wait for col selecton to stabilize
- select_col(current_col);
- wait_us(30);
-
- // For each row...
- for(uint8_t row_index = 0; row_index < ROWS_PER_HAND; row_index++)
- {
-
- // Store last value of row prior to reading
- matrix_row_t last_row_value = current_matrix[row_index];
-
- // Check row pin state
- if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0)
- {
- // Pin LO, set col bit
- current_matrix[row_index] |= (ROW_SHIFTER << current_col);
- }
- else
- {
- // Pin HI, clear col bit
- current_matrix[row_index] &= ~(ROW_SHIFTER << current_col);
- }
-
- // Determine if the matrix changed state
- if ((last_row_value != current_matrix[row_index]) && !(matrix_changed))
- {
- matrix_changed = true;
- }
- }
-
- // Unselect col
- unselect_col(current_col);
-
- return matrix_changed;
-}
-
-static void select_col(uint8_t col)
-{
- uint8_t pin = col_pins[col];
- _SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT
- _SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW
-}
-
-static void unselect_col(uint8_t col)
-{
- uint8_t pin = col_pins[col];
- _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN
- _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
-}
-
-static void unselect_cols(void)
-{
- for(uint8_t x = 0; x < MATRIX_COLS; x++) {
- uint8_t pin = col_pins[x];
- _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN
- _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
- }
-}
-
-#endif
diff --git a/keyboards/deltasplit75/readme.md b/keyboards/deltasplit75/readme.md
index 096fced97..a39e9298e 100644
--- a/keyboards/deltasplit75/readme.md
+++ b/keyboards/deltasplit75/readme.md
@@ -1,17 +1,16 @@
-DeltaSplit75
-======
+# DeltaSplit75
A split 75% keyboard made by xyxjj. [More info on qmk.fm](http://qmk.fm/deltasplit75/)
-Keyboard Maintainer: [xyxjj](https://github.com/xyxjj) & [itsaferbie](https://github.com/itsaferbie)
-Hardware Supported: Pro Micro
-Hardware Availability: Group Buy
+* Keyboard Maintainer: [xyxjj](https://github.com/xyxjj) & [itsaferbie](https://github.com/itsaferbie)
+* Hardware Supported: Pro Micro
+* Hardware Availability: Group Buy
Make example for this keyboard (after setting up your build environment):
make deltasplit75/v2:default
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
Files are available here: [DeltaSplit75 Case Files](https://github.com/xyxjj/DeltaSplit75-Case-files)
diff --git a/keyboards/deltasplit75/rules.mk b/keyboards/deltasplit75/rules.mk
index a976360bf..b0049fcbf 100644
--- a/keyboards/deltasplit75/rules.mk
+++ b/keyboards/deltasplit75/rules.mk
@@ -12,30 +12,25 @@ MCU = atmega32u4
BOOTLOADER = caterina
# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
+# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SUBPROJECT_rev1 = yes
-USE_I2C = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-CUSTOM_MATRIX = yes
-SRC += matrix.c \
- i2c.c \
- split_util.c \
- serial.c
+SPLIT_KEYBOARD = yes
DEFAULT_FOLDER = deltasplit75/v2
diff --git a/keyboards/deltasplit75/serial.c b/keyboards/deltasplit75/serial.c
deleted file mode 100644
index 74bcbb6bf..000000000
--- a/keyboards/deltasplit75/serial.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * WARNING: be careful changing this code, it is very timing dependent
- */
-
-#ifndef F_CPU
-#define F_CPU 16000000
-#endif
-
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include <stdbool.h>
-#include "serial.h"
-
-#ifndef USE_I2C
-
-// Serial pulse period in microseconds. Its probably a bad idea to lower this
-// value.
-#define SERIAL_DELAY 24
-
-uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
-uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
-
-#define SLAVE_DATA_CORRUPT (1<<0)
-volatile uint8_t status = 0;
-
-inline static
-void serial_delay(void) {
- _delay_us(SERIAL_DELAY);
-}
-
-inline static
-void serial_output(void) {
- SERIAL_PIN_DDR |= SERIAL_PIN_MASK;
-}
-
-// make the serial pin an input with pull-up resistor
-inline static
-void serial_input(void) {
- SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK;
- SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
-}
-
-inline static
-uint8_t serial_read_pin(void) {
- return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK);
-}
-
-inline static
-void serial_low(void) {
- SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK;
-}
-
-inline static
-void serial_high(void) {
- SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
-}
-
-void serial_master_init(void) {
- serial_output();
- serial_high();
-}
-
-void serial_slave_init(void) {
- serial_input();
-
- // Enable INT0
- EIMSK |= _BV(INT0);
- // Trigger on falling edge of INT0
- EICRA &= ~(_BV(ISC00) | _BV(ISC01));
-}
-
-// Used by the master to synchronize timing with the slave.
-static
-void sync_recv(void) {
- serial_input();
- // This shouldn't hang if the slave disconnects because the
- // serial line will float to high if the slave does disconnect.
- while (!serial_read_pin());
- serial_delay();
-}
-
-// Used by the slave to send a synchronization signal to the master.
-static
-void sync_send(void) {
- serial_output();
-
- serial_low();
- serial_delay();
-
- serial_high();
-}
-
-// Reads a byte from the serial line
-static
-uint8_t serial_read_byte(void) {
- uint8_t byte = 0;
- serial_input();
- for ( uint8_t i = 0; i < 8; ++i) {
- byte = (byte << 1) | serial_read_pin();
- serial_delay();
- _delay_us(1);
- }
-
- return byte;
-}
-
-// Sends a byte with MSB ordering
-static
-void serial_write_byte(uint8_t data) {
- uint8_t b = 8;
- serial_output();
- while( b-- ) {
- if(data & (1 << b)) {
- serial_high();
- } else {
- serial_low();
- }
- serial_delay();
- }
-}
-
-// interrupt handle to be used by the slave device
-ISR(SERIAL_PIN_INTERRUPT) {
- sync_send();
-
- uint8_t checksum = 0;
- for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
- serial_write_byte(serial_slave_buffer[i]);
- sync_send();
- checksum += serial_slave_buffer[i];
- }
- serial_write_byte(checksum);
- sync_send();
-
- // wait for the sync to finish sending
- serial_delay();
-
- // read the middle of pulses
- _delay_us(SERIAL_DELAY/2);
-
- uint8_t checksum_computed = 0;
- for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
- serial_master_buffer[i] = serial_read_byte();
- sync_send();
- checksum_computed += serial_master_buffer[i];
- }
- uint8_t checksum_received = serial_read_byte();
- sync_send();
-
- serial_input(); // end transaction
-
- if ( checksum_computed != checksum_received ) {
- status |= SLAVE_DATA_CORRUPT;
- } else {
- status &= ~SLAVE_DATA_CORRUPT;
- }
-}
-
-inline
-bool serial_slave_DATA_CORRUPT(void) {
- return status & SLAVE_DATA_CORRUPT;
-}
-
-// Copies the serial_slave_buffer to the master and sends the
-// serial_master_buffer to the slave.
-//
-// Returns:
-// 0 => no error
-// 1 => slave did not respond
-int serial_update_buffers(void) {
- // this code is very time dependent, so we need to disable interrupts
- cli();
-
- // signal to the slave that we want to start a transaction
- serial_output();
- serial_low();
- _delay_us(1);
-
- // wait for the slaves response
- serial_input();
- serial_high();
- _delay_us(SERIAL_DELAY);
-
- // check if the slave is present
- if (serial_read_pin()) {
- // slave failed to pull the line low, assume not present
- sei();
- return 1;
- }
-
- // if the slave is present syncronize with it
- sync_recv();
-
- uint8_t checksum_computed = 0;
- // receive data from the slave
- for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
- serial_slave_buffer[i] = serial_read_byte();
- sync_recv();
- checksum_computed += serial_slave_buffer[i];
- }
- uint8_t checksum_received = serial_read_byte();
- sync_recv();
-
- if (checksum_computed != checksum_received) {
- sei();
- return 1;
- }
-
- uint8_t checksum = 0;
- // send data to the slave
- for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
- serial_write_byte(serial_master_buffer[i]);
- sync_recv();
- checksum += serial_master_buffer[i];
- }
- serial_write_byte(checksum);
- sync_recv();
-
- // always, release the line when not in use
- serial_output();
- serial_high();
-
- sei();
- return 0;
-}
-
-#endif
diff --git a/keyboards/deltasplit75/serial.h b/keyboards/deltasplit75/serial.h
deleted file mode 100644
index 6ef52019a..000000000
--- a/keyboards/deltasplit75/serial.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef MY_SERIAL_H
-#define MY_SERIAL_H
-
-#include "config.h"
-#include <stdbool.h>
-
-/* TODO: some defines for interrupt setup */
-#define SERIAL_PIN_DDR DDRD
-#define SERIAL_PIN_PORT PORTD
-#define SERIAL_PIN_INPUT PIND
-#define SERIAL_PIN_MASK _BV(PD0)
-#define SERIAL_PIN_INTERRUPT INT0_vect
-
-#define SERIAL_SLAVE_BUFFER_LENGTH ((MATRIX_COLS+7)/8 *MATRIX_ROWS/2)
-#define SERIAL_MASTER_BUFFER_LENGTH 1
-
-// Buffers for master - slave communication
-extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
-extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
-
-void serial_master_init(void);
-void serial_slave_init(void);
-int serial_update_buffers(void);
-bool serial_slave_data_corrupt(void);
-
-#endif
diff --git a/keyboards/deltasplit75/split_util.c b/keyboards/deltasplit75/split_util.c
deleted file mode 100644
index 346cbc908..000000000
--- a/keyboards/deltasplit75/split_util.c
+++ /dev/null
@@ -1,86 +0,0 @@
-#include <avr/io.h>
-#include <avr/wdt.h>
-#include <avr/power.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include <avr/eeprom.h>
-#include "split_util.h"
-#include "matrix.h"
-#include "keyboard.h"
-#include "config.h"
-#include "timer.h"
-
-#ifdef USE_I2C
-# include "i2c.h"
-#else
-# include "serial.h"
-#endif
-
-volatile bool isLeftHand = true;
-
-static void setup_handedness(void) {
- #ifdef EE_HANDS
- isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS);
- #else
- // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c
- #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT)
- isLeftHand = !has_usb();
- #else
- isLeftHand = has_usb();
- #endif
- #endif
-}
-
-static void keyboard_master_setup(void) {
-#ifdef USE_I2C
- i2c_master_init();
-#ifdef SSD1306OLED
- matrix_master_OLED_init ();
-#endif
-#else
- serial_master_init();
-#endif
-}
-
-static void keyboard_slave_setup(void) {
- timer_init();
-#ifdef USE_I2C
- i2c_slave_init(SLAVE_I2C_ADDRESS);
-#else
- serial_slave_init();
-#endif
-}
-
-bool has_usb(void) {
- USBCON |= (1 << OTGPADE); //enables VBUS pad
- _delay_us(5);
- return (USBSTA & (1<<VBUS)); //checks state of VBUS
-}
-
-void split_keyboard_setup(void) {
- setup_handedness();
-
- if (has_usb()) {
- keyboard_master_setup();
- } else {
- keyboard_slave_setup();
- }
- sei();
-}
-
-void keyboard_slave_loop(void) {
- matrix_init();
-
- while (1) {
- matrix_slave_scan();
- }
-}
-
-// this code runs before the usb and keyboard is initialized
-void matrix_setup(void) {
- split_keyboard_setup();
-
- if (!has_usb()) {
- keyboard_slave_loop();
- }
-}
diff --git a/keyboards/deltasplit75/split_util.h b/keyboards/deltasplit75/split_util.h
deleted file mode 100644
index 1c9235213..000000000
--- a/keyboards/deltasplit75/split_util.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef SPLIT_KEYBOARD_UTIL_H
-#define SPLIT_KEYBOARD_UTIL_H
-
-#include <stdbool.h>
-#include "eeconfig.h"
-
-
-#define SLAVE_I2C_ADDRESS 0x32
-
-extern volatile bool isLeftHand;
-
-// slave version of matix scan, defined in matrix.c
-void matrix_slave_scan(void);
-
-void split_keyboard_setup(void);
-bool has_usb(void);
-void keyboard_slave_loop(void);
-
-#endif
diff --git a/keyboards/deltasplit75/v2/config.h b/keyboards/deltasplit75/v2/config.h
index 6a2e48f4f..844fcf43b 100644
--- a/keyboards/deltasplit75/v2/config.h
+++ b/keyboards/deltasplit75/v2/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_V2_H
-#define CONFIG_V2_H
+#pragma once
#include "config_common.h"
@@ -40,6 +39,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
@@ -76,5 +80,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/keyboards/deltasplit75/v2/v2.c b/keyboards/deltasplit75/v2/v2.c
index a7ee1fa8a..caf7c6f0f 100644
--- a/keyboards/deltasplit75/v2/v2.c
+++ b/keyboards/deltasplit75/v2/v2.c
@@ -1,14 +1 @@
-#include "deltasplit75.h"
-
-void matrix_init_kb(void) {
- // // green led on
- // DDRD |= (1<<5);
- // PORTD &= ~(1<<5);
-
- // // orange led on
- // DDRB |= (1<<0);
- // PORTB &= ~(1<<0);
-
- matrix_init_user();
-};
-
+#include "v2.h"
diff --git a/keyboards/deltasplit75/v2/v2.h b/keyboards/deltasplit75/v2/v2.h
index 82f54c2b0..bab6a47cd 100644
--- a/keyboards/deltasplit75/v2/v2.h
+++ b/keyboards/deltasplit75/v2/v2.h
@@ -1,5 +1,4 @@
-#ifndef V2_H
-#define V2_H
+#pragma once
#include "deltasplit75.h"
@@ -56,5 +55,3 @@
{ K120, K121, K122, K123, KC_NO, KC_NO, K126, K127}, \
{ KC_NO, KC_NO, K132, K133, K134, K135, K136, K137} \
}
-
-#endif
diff --git a/keyboards/dichotomy/rules.mk b/keyboards/dichotomy/rules.mk
index 9ab4d5692..14dc47435 100755
--- a/keyboards/dichotomy/rules.mk
+++ b/keyboards/dichotomy/rules.mk
@@ -14,11 +14,11 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-#MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+#MOUSEKEY_ENABLE = yes # Mouse keys
POINTING_DEVICE_ENABLE = yes # Generic Pointer, not as big as mouse keys hopefully.
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/diverge3/rules.mk b/keyboards/diverge3/rules.mk
index 42ab5224a..0b5ad749a 100644
--- a/keyboards/diverge3/rules.mk
+++ b/keyboards/diverge3/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/divergetm2/rules.mk b/keyboards/divergetm2/rules.mk
index 9a461edec..25f872bd0 100644
--- a/keyboards/divergetm2/rules.mk
+++ b/keyboards/divergetm2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/dk60/rules.mk b/keyboards/dk60/rules.mk
index 17ee5d961..b7518eee3 100644
--- a/keyboards/dk60/rules.mk
+++ b/keyboards/dk60/rules.mk
@@ -11,15 +11,15 @@ MCU = atmega32u4
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-# CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+# CONSOLE_ENABLE = yes # Console for debug
# COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = yes # Unicode
diff --git a/keyboards/do60/rules.mk b/keyboards/do60/rules.mk
index bd74db7f8..73bb4f096 100644
--- a/keyboards/do60/rules.mk
+++ b/keyboards/do60/rules.mk
@@ -15,12 +15,12 @@ BOOTLOADER = atmel-dfu
AUDIO_ENABLE = no # Audio output on port C6
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no # Console for debug(+400)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug
+EXTRAKEY_ENABLE = yes # Audio control and System control
MIDI_ENABLE = no # MIDI controls
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+MOUSEKEY_ENABLE = yes # Mouse keys
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/donutcables/budget96/budget96.c b/keyboards/donutcables/budget96/budget96.c
index e9125a3e6..5f3436dc6 100644
--- a/keyboards/donutcables/budget96/budget96.c
+++ b/keyboards/donutcables/budget96/budget96.c
@@ -16,32 +16,20 @@
#include "budget96.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
setPinOutput(D0);
setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
-
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
}
+ return true;
}
diff --git a/keyboards/donutcables/budget96/config.h b/keyboards/donutcables/budget96/config.h
index 127e542f1..0e05bb76f 100644
--- a/keyboards/donutcables/budget96/config.h
+++ b/keyboards/donutcables/budget96/config.h
@@ -37,5 +37,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/donutcables/budget96/rules.mk b/keyboards/donutcables/budget96/rules.mk
index 54328d248..84eace5ed 100644
--- a/keyboards/donutcables/budget96/rules.mk
+++ b/keyboards/donutcables/budget96/rules.mk
@@ -15,7 +15,7 @@ BOOTLOADER = bootloadHID
BOOTMAGIC_ENABLE = no
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = yes
+CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
diff --git a/keyboards/donutcables/scrabblepad/rules.mk b/keyboards/donutcables/scrabblepad/rules.mk
index be6c7d9ac..51717e2e2 100644
--- a/keyboards/donutcables/scrabblepad/rules.mk
+++ b/keyboards/donutcables/scrabblepad/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/doro67/multi/rules.mk b/keyboards/doro67/multi/rules.mk
index d719b7043..d24fdc3a6 100644
--- a/keyboards/doro67/multi/rules.mk
+++ b/keyboards/doro67/multi/rules.mk
@@ -13,10 +13,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -24,11 +24,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/doro67/regular/rules.mk b/keyboards/doro67/regular/rules.mk
index d88f6fcfe..ca6817fff 100644
--- a/keyboards/doro67/regular/rules.mk
+++ b/keyboards/doro67/regular/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/doro67/rgb/rules.mk b/keyboards/doro67/rgb/rules.mk
index 769edfb45..8540dd61e 100644
--- a/keyboards/doro67/rgb/rules.mk
+++ b/keyboards/doro67/rgb/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
RGB_MATRIX_ENABLE = WS2812
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/dozen0/config.h b/keyboards/dozen0/config.h
index af6972e27..3fdd50f50 100644
--- a/keyboards/dozen0/config.h
+++ b/keyboards/dozen0/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, B5, B4, E6, D7, C6, D4 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
// #define BACKLIGHT_PIN B7
diff --git a/keyboards/duck/eagle_viper/v2/rules.mk b/keyboards/duck/eagle_viper/v2/rules.mk
index 9b3ffa8ac..a8c804e52 100644
--- a/keyboards/duck/eagle_viper/v2/rules.mk
+++ b/keyboards/duck/eagle_viper/v2/rules.mk
@@ -14,17 +14,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/duck/jetfire/rules.mk b/keyboards/duck/jetfire/rules.mk
index 04d4f4569..09a5d1ecc 100644
--- a/keyboards/duck/jetfire/rules.mk
+++ b/keyboards/duck/jetfire/rules.mk
@@ -14,23 +14,24 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
SRC += indicator_leds.c \
diff --git a/keyboards/duck/lightsaver/rules.mk b/keyboards/duck/lightsaver/rules.mk
index b6cb462eb..64e18c9b1 100644
--- a/keyboards/duck/lightsaver/rules.mk
+++ b/keyboards/duck/lightsaver/rules.mk
@@ -14,17 +14,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/duck/octagon/v1/rules.mk b/keyboards/duck/octagon/v1/rules.mk
index 7027fb127..4a8191fa6 100644
--- a/keyboards/duck/octagon/v1/rules.mk
+++ b/keyboards/duck/octagon/v1/rules.mk
@@ -14,17 +14,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/duck/octagon/v2/rules.mk b/keyboards/duck/octagon/v2/rules.mk
index cd4d2c2fe..49f3f12f5 100644
--- a/keyboards/duck/octagon/v2/rules.mk
+++ b/keyboards/duck/octagon/v2/rules.mk
@@ -14,17 +14,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/duck/orion/v3/rules.mk b/keyboards/duck/orion/v3/rules.mk
index c46cb7544..019dd7dd3 100644
--- a/keyboards/duck/orion/v3/rules.mk
+++ b/keyboards/duck/orion/v3/rules.mk
@@ -14,17 +14,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk
index a5df407da..34bd05ee1 100644
--- a/keyboards/dumbpad/rules.mk
+++ b/keyboards/dumbpad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes
MOUSEKEY_ENABLE = yes
diff --git a/keyboards/dz60/config.h b/keyboards/dz60/config.h
index 63794d027..e0c2254d0 100644
--- a/keyboards/dz60/config.h
+++ b/keyboards/dz60/config.h
@@ -4,7 +4,7 @@
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
+#define VENDOR_ID 0x445A // "DZ"
#define PRODUCT_ID 0x2260
#define DEVICE_VER 0x0001
#define MANUFACTURER KBDFans
@@ -45,4 +45,7 @@
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP
#endif
-#endif \ No newline at end of file
+#endif
+
+/* VIA related config */
+#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 \ No newline at end of file
diff --git a/keyboards/dz60/keymaps/billiams/build_flash.sh b/keyboards/dz60/keymaps/billiams_layout2/build_flash.sh
index e7a811144..116b0bf33 100644
--- a/keyboards/dz60/keymaps/billiams/build_flash.sh
+++ b/keyboards/dz60/keymaps/billiams_layout2/build_flash.sh
@@ -3,7 +3,4 @@
# dfu-programmer atmega32u4 reset
# run this in the qmk_firmware directory
-make dz60:billiams
-dfu-programmer atmega32u4 erase --force && \
-dfu-programmer atmega32u4 flash dz60_billiams.hex && \
-dfu-programmer atmega32u4 reset \ No newline at end of file
+make dz60:billiams_layout2:flash
diff --git a/keyboards/dz60/keymaps/billiams/config.h b/keyboards/dz60/keymaps/billiams_layout2/config.h
index 9560d51a6..9560d51a6 100644
--- a/keyboards/dz60/keymaps/billiams/config.h
+++ b/keyboards/dz60/keymaps/billiams_layout2/config.h
diff --git a/keyboards/dz60/keymaps/billiams_layout2/keymap.c b/keyboards/dz60/keymaps/billiams_layout2/keymap.c
new file mode 100644
index 000000000..6f0ae55d1
--- /dev/null
+++ b/keyboards/dz60/keymaps/billiams_layout2/keymap.c
@@ -0,0 +1,48 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc |
+ * |-----------------------------------------------------------------------------------------+
+ * | Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | ESC |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | Alt | Cmd | Space | Cmd | Alt | Ctrl | Fn |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+ LAYOUT_60_2_function(
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_ESCAPE,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(1)
+ ),
+
+ /* FN Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ |
+ * |-----------------------------------------------------------------------------------------+
+ * | |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| | | Mute| Prev | Next |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | Left| Down| Up |Right| | | Play/Pause |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | |Scr- |Scr+ | | | |RESET|
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+ LAYOUT_60_2_function(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC__VOLDOWN, KC__VOLUP,
+ _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, KC_MUTE, KC_MRWD, KC_MFFD,
+ _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, KC_MPLY,
+ _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, RESET,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+};
diff --git a/keyboards/dz60/keymaps/billiams_layout2/readme.md b/keyboards/dz60/keymaps/billiams_layout2/readme.md
new file mode 100644
index 000000000..bef96f467
--- /dev/null
+++ b/keyboards/dz60/keymaps/billiams_layout2/readme.md
@@ -0,0 +1,68 @@
+## Billiam's DZ60 60_2 layout (KBDFANS Layout 2 with split backspace and split right shift)
+
+This layout is optimized for MacOS and is for a Build 2 DZ60 with a 2U left shift, 1.75U right shift and no arrow cluster. Don't use this layout if you didn't get Build 2, you will enter a world of pain Donny.
+
+Settings:
+
+* The `CAPS LOCK` key is a function key.
+* The `ALT` and `CMD` keys are swapped to replicate the Mac layout.
+* RESET is available as `Fn`+ ` ESC`
+* Underglow toggle is available as `Fn` + `Q`. Yes your keyboard has lights even if you didn't get the LEDs. Bonus!
+* vim-style arrow key bindings H J K L in layer 1
+
+### Initial Installation
+
+I found the instructions to be longer than they had to be, and I ended up having to Google some steps anyway. These are the steps I took to get my keyboard setup, in case you are new to the process.
+
+1. Clone the qmk_firmware repo locally
+```
+# Choose one:
+git clone git@github.com:qmk/qmk_firmware.git # OR
+git clone https://github.com/qmk/qmk_firmware.git
+```
+2. Customize your layout by starting with a [keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps). I copied [StephenGrier](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps/stephengrier)'s and modified it for DZ60 Build 4 and changed a few things, like the `grave` key, `ESC` and `/`.
+
+3. Build your hex file
+```
+make dz60:billiams_layout2 # be in the qmk_firmware directory to do this
+```
+A hex file `dz60_billiams_layout2.hex` will be created in the base qmk_firmware directory
+
+4. Before plugging in your keyboard into your computer, hold `SPACE` and `B` keys down
+5. Holding those keys down, plug the keyboard into your computer, which will put the keyboard in bootlegger mode
+6. If you are using [QMK toolbox](https://github.com/qmk/qmk_toolbox/releases), upload the .hex file you made above, select it and hit the flash button. For the love of all that is good and holy on Earth, don't hit the load button, that will load the default keymap and that's not what you want! Unless it is, in which case click away.
+
+Note: If you didn't follow my instructions in 4 and accidentally loaded the default keymap, then to `RESET` the keyboard and kick it into bootleg mode again, hold the `down arrow` key and `\`. The default layout is Build 1 and sets the `MENU` key on that build to `Fn`. `MENU` corresponds to `down arrow` in build 4. Note that you don't have to unplug the keyboard.
+
+Hope this helps!
+
+### 0 Qwerty
+```
+,-----------------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | DEL |
+|-----------------------------------------------------------------------------------------+
+| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
+|-----------------------------------------------------------------------------------------+
+| Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+|-----------------------------------------------------------------------------------------+
+| Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | ESC |
+|-----------------------------------------------------------------------------------------+
+| Ctrl | Alt | Cmd | Space | Cmd | Alt | Ctrl | Fn |
+`-----------------------------------------------------------------------------------------'
+```
+
+### 1 Fn Layer
+```
+FN Layer
+,-----------------------------------------------------------------------------------------.
+| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ |
+|-----------------------------------------------------------------------------------------+
+| |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| | | Mute | Prev | Next |
+|-----------------------------------------------------------------------------------------+
+| | | | | | | Left| Down| Up |Right| | | Play/Pause |
+|-----------------------------------------------------------------------------------------+
+| | | | | | | | |Scr- |Scr+ | | | | RESET |
+|-----------------------------------------------------------------------------------------+
+| | | | | | | | |
+`-----------------------------------------------------------------------------------------'
+```
diff --git a/keyboards/dz60/keymaps/billiams_layout4/build_flash.sh b/keyboards/dz60/keymaps/billiams_layout4/build_flash.sh
new file mode 100644
index 000000000..8f9988ca0
--- /dev/null
+++ b/keyboards/dz60/keymaps/billiams_layout4/build_flash.sh
@@ -0,0 +1,6 @@
+# dfu-programmer atmega32u4 erase --force
+# dfu-programmer atmega32u4 flash /path/to/firmware.hex
+# dfu-programmer atmega32u4 reset
+
+# run this in the qmk_firmware directory
+make dz60:billiams_layout4:flash
diff --git a/keyboards/dz60/keymaps/billiams_layout4/config.h b/keyboards/dz60/keymaps/billiams_layout4/config.h
new file mode 100644
index 000000000..9560d51a6
--- /dev/null
+++ b/keyboards/dz60/keymaps/billiams_layout4/config.h
@@ -0,0 +1 @@
+#define GRAVE_ESC_GUI_OVERRIDE # Always send Escape if GUI is pressed
diff --git a/keyboards/dz60/keymaps/billiams_layout4/keymap.c b/keyboards/dz60/keymaps/billiams_layout4/keymap.c
new file mode 100644
index 000000000..b1c75d903
--- /dev/null
+++ b/keyboards/dz60/keymaps/billiams_layout4/keymap.c
@@ -0,0 +1,48 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
+ * |-----------------------------------------------------------------------------------------+
+ * | Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . |Tap(/) Shft| U | ESC |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | Alt | Cmd | Space | Alt | Fn | L | D | R |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+ LAYOUT_directional(
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, _______, RSFT_T(KC_SLSH) , KC_UP, KC_ESCAPE,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
+ ),
+
+ /* FN Layer
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
+ * |-----------------------------------------------------------------------------------------+
+ * | |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| Mute | Vol-| Vol+| Prev | Next |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | Left| Down| Up |Right| | | Play/Pause |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | |Scr- |Scr+ | |PG_UP|RESET|
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | HOME|PG_DN| END |
+ * `-----------------------------------------------------------------------------------------'
+ */
+
+ LAYOUT_directional(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
+ _______, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_MUTE, KC__VOLDOWN, KC__VOLUP, KC_MRWD, KC_MFFD,
+ _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
+ KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, KC_PGUP, RESET,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDOWN, KC_END
+ ),
+};
diff --git a/keyboards/dz60/keymaps/billiams_layout4/readme.md b/keyboards/dz60/keymaps/billiams_layout4/readme.md
new file mode 100644
index 000000000..37bbd6a65
--- /dev/null
+++ b/keyboards/dz60/keymaps/billiams_layout4/readme.md
@@ -0,0 +1,71 @@
+## Billiam's DZ60 Directional layout
+
+This layout is optimized for MacOS and is for a Build 4 DZ60 with a 2U left shift, 2U right shift and an arrow
+cluster in the bottom right. Don't use this layout if you didn't get Build 4, you will enter a world of pain Donny.
+
+Settings:
+
+* The `CAPS LOCK` key is replaced with a second function key.
+* The `ALT` and `CMD` keys are swapped to replicate the Mac layout.
+* Del is available as `Fn` + `Backspace`
+* `/ ?` are available when you tap the right shift. Otherwise RShift is shift when held down
+* RESET is available as `Fn`+ ` ESC`
+* Underglow toggle is available as `Fn` + `Q`. Yes your keyboard has lights even if you didn't get the LEDs. Bonus!
+* vim-style arrow key bindings H J K L in layer 1
+
+### Initial Installation
+
+I found the instructions to be longer than they had to be, and I ended up having to Google some steps anyway. These are the steps I took to get my keyboard setup, in case you are new to the process.
+
+1. Clone the qmk_firmware repo locally
+```
+# Choose one:
+git clone git@github.com:qmk/qmk_firmware.git # OR
+git clone https://github.com/qmk/qmk_firmware.git
+```
+2. Customize your layout by starting with a [keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps). I copied [StephenGrier](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dz60/keymaps/stephengrier)'s and modified it for DZ60 Build 4 and changed a few things, like the `grave` key, `ESC` and `/`.
+
+3. Build your hex file
+```
+make dz60:billiams_layout4 # be in the qmk_firmware directory to do this
+```
+A hex file `dz60_billiams_layout4.hex` will be created in the base qmk_firmware directory
+
+4. Before plugging in your keyboard into your computer, hold `SPACE` and `B` keys down
+5. Holding those keys down, plug the keyboard into your computer, which will put the keyboard in bootlegger mode
+6. If you are using [QMK toolbox](https://github.com/qmk/qmk_toolbox/releases), upload the .hex file you made above, select it and hit the flash button. For the love of all that is good and holy on Earth, don't hit the load button, that will load the default keymap and that's not what you want! Unless it is, in which case click away.
+
+Note: If you didn't follow my instructions in 4 and accidentally loaded the default keymap, then to `RESET` the keyboard and kick it into bootleg mode again, hold the `down arrow` key and `\`. The default layout is Build 1 and sets the `MENU` key on that build to `Fn`. `MENU` corresponds to `down arrow` in build 4. Note that you don't have to unplug the keyboard.
+
+Hope this helps!
+
+### 0 Qwerty
+```
+,-----------------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
+|-----------------------------------------------------------------------------------------+
+| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
+|-----------------------------------------------------------------------------------------+
+| Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+|-----------------------------------------------------------------------------------------+
+| Shift | Z | X | C | V | B | N | M | , | . | Tap:/ RSh | U | ESC |
+|-----------------------------------------------------------------------------------------+
+| Ctrl | Alt | Cmd | Space | Alt | Fn | L | D | R |
+`-----------------------------------------------------------------------------------------'
+```
+
+### 1 Fn Layer
+```
+FN Layer
+,-----------------------------------------------------------------------------------------.
+| ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
+|-----------------------------------------------------------------------------------------+
+| |RBB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| Mute | Vol-| Vol+| Prev | Next |
+|-----------------------------------------------------------------------------------------+
+| | | | | | | Left| Down| Up |Right| | | Play/Pause |
+|-----------------------------------------------------------------------------------------+
+| | | | | | | | |Scr- |Scr+ | | PG_UP |RESET|
+|-----------------------------------------------------------------------------------------+
+| | | | | | | HOME | PG_DN | END |
+`-----------------------------------------------------------------------------------------'
+```
diff --git a/keyboards/dz60/keymaps/via/keymap.c b/keyboards/dz60/keymaps/via/keymap.c
new file mode 100644
index 000000000..34c6e131f
--- /dev/null
+++ b/keyboards/dz60/keymaps/via/keymap.c
@@ -0,0 +1,29 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ LAYOUT(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_NO, MO(1), KC_RCTL),
+ LAYOUT(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+}; \ No newline at end of file
diff --git a/keyboards/dz60/keymaps/via/rules.mk b/keyboards/dz60/keymaps/via/rules.mk
new file mode 100644
index 000000000..ea9a831e1
--- /dev/null
+++ b/keyboards/dz60/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+LINK_TIME_OPTIMIZATION_ENABLE = yes
+VIA_ENABLE = yes
diff --git a/keyboards/dz60/rules.mk b/keyboards/dz60/rules.mk
index 7ed2571da..e5e9b8465 100644
--- a/keyboards/dz60/rules.mk
+++ b/keyboards/dz60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/eco/keymaps/default/rules.mk b/keyboards/eco/keymaps/default/rules.mk
index 83d1175db..3898578a8 100644
--- a/keyboards/eco/keymaps/default/rules.mk
+++ b/keyboards/eco/keymaps/default/rules.mk
@@ -4,10 +4,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/eco/keymaps/xyverz/keymap.c b/keyboards/eco/keymaps/xyverz/keymap.c
index 5a1974336..06054e9ac 100644
--- a/keyboards/eco/keymaps/xyverz/keymap.c
+++ b/keyboards/eco/keymaps/xyverz/keymap.c
@@ -132,9 +132,7 @@ void matrix_init_user(void) {
#ifdef BOOTLOADER_CATERINA
// This will disable the red LEDs on the ProMicros
setPinInput(D5);
- writePinLow(D5);
setPinInput(B0);
- writePinLow(B0);
#endif
};
@@ -155,4 +153,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
return true;
-} \ No newline at end of file
+}
diff --git a/keyboards/eco/rules.mk b/keyboards/eco/rules.mk
index 4fe5ec1b9..7f7f20ed3 100644
--- a/keyboards/eco/rules.mk
+++ b/keyboards/eco/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/emptystring/NQG/rules.mk b/keyboards/emptystring/NQG/rules.mk
index 8ebed340a..45f2f6155 100644
--- a/keyboards/emptystring/NQG/rules.mk
+++ b/keyboards/emptystring/NQG/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/ep/40/rules.mk b/keyboards/ep/40/rules.mk
index 7e69544cf..862bcbf8f 100644
--- a/keyboards/ep/40/rules.mk
+++ b/keyboards/ep/40/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ep/96/rules.mk b/keyboards/ep/96/rules.mk
index 7e69544cf..862bcbf8f 100644
--- a/keyboards/ep/96/rules.mk
+++ b/keyboards/ep/96/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ep/comsn/hs68/config.h b/keyboards/ep/comsn/hs68/config.h
index db633a250..cf15a90bb 100644
--- a/keyboards/ep/comsn/hs68/config.h
+++ b/keyboards/ep/comsn/hs68/config.h
@@ -47,7 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
{ B0, B1, B3, B2, B7, D3, F1, D5, D6, D7, F4, F5, C7, C6, F0 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/ep/comsn/hs68/rules.mk b/keyboards/ep/comsn/hs68/rules.mk
index 2aa567155..80c82b7c9 100644
--- a/keyboards/ep/comsn/hs68/rules.mk
+++ b/keyboards/ep/comsn/hs68/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ep/comsn/mollydooker/config.h b/keyboards/ep/comsn/mollydooker/config.h
index 3ba661525..2a96b5341 100644
--- a/keyboards/ep/comsn/mollydooker/config.h
+++ b/keyboards/ep/comsn/mollydooker/config.h
@@ -47,7 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
{ B1, B2, B3, E6, B7, F1, F0, D0, D1, D7, D5, D4, D6, B4, B5, D3, B6, C6, C7 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
// #endif
diff --git a/keyboards/ep/comsn/mollydooker/rules.mk b/keyboards/ep/comsn/mollydooker/rules.mk
index 4ef5023df..e501469fc 100644
--- a/keyboards/ep/comsn/mollydooker/rules.mk
+++ b/keyboards/ep/comsn/mollydooker/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ep/comsn/tf_longeboye/rules.mk b/keyboards/ep/comsn/tf_longeboye/rules.mk
index 5360459cf..bd3cd09a9 100644
--- a/keyboards/ep/comsn/tf_longeboye/rules.mk
+++ b/keyboards/ep/comsn/tf_longeboye/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ergodash/mini/config.h b/keyboards/ergodash/mini/config.h
index 2fa51dcc1..1a0ecc0a7 100644
--- a/keyboards/ergodash/mini/config.h
+++ b/keyboards/ergodash/mini/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/ergodash/rev1/config.h b/keyboards/ergodash/rev1/config.h
index 52f81e4ac..0e89ca340 100644
--- a/keyboards/ergodash/rev1/config.h
+++ b/keyboards/ergodash/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
@@ -69,6 +71,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_SPLIT
#define RGBLED_SPLIT { 12, 12 } // Number of LEDs
+// The LEDs on the slave half go in reverse order
+#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, \
+ 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12}
+
#define SOFT_SERIAL_PIN D0
#define SELECT_SOFT_SERIAL_SPEED 1
/*Sets the protocol speed when using serial communication*/
diff --git a/keyboards/ergodash/rules.mk b/keyboards/ergodash/rules.mk
index d57e4ce13..de06b3427 100644
--- a/keyboards/ergodash/rules.mk
+++ b/keyboards/ergodash/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/ergodone/rules.mk b/keyboards/ergodone/rules.mk
index aaeedb431..f0008e48f 100644
--- a/keyboards/ergodone/rules.mk
+++ b/keyboards/ergodone/rules.mk
@@ -16,10 +16,10 @@ BOOTLOADER = caterina
#
CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDone
UNICODE_ENABLE = yes # Unicode
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/ergodox_ez/keymaps/danielo515/config.h b/keyboards/ergodox_ez/keymaps/danielo515/config.h
new file mode 100644
index 000000000..6a3d37f1c
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/danielo515/config.h
@@ -0,0 +1,37 @@
+/*
+ Set any config.h overrides for your specific keymap here.
+ See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
+*/
+#pragma once
+
+#define IGNORE_MOD_TAP_INTERRUPT
+#define TAPPING_TERM 200
+
+#define ONESHOT_TAP_TOGGLE 3
+
+#define RGBLIGHT_SLEEP
+
+#undef MOUSEKEY_TIME_TO_MAX
+#define MOUSEKEY_TIME_TO_MAX 50
+
+#undef MOUSEKEY_WHEEL_TIME_TO_MAX
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 60
+// Timeout settings for leader key
+#undef LEADER_TIMEOUT
+#define LEADER_TIMEOUT 350
+#define LEADER_PER_KEY_TIMING
+
+#undef DEBOUNCE
+#define DEBOUNCE 45
+// Memory saving
+#ifdef CONSOLE_ENABLE
+# define NO_DEBUG
+# define NO_PRINT
+#endif
+
+#ifndef LINK_TIME_OPTIMIZATION_ENABLE
+# define NO_ACTION_MACRO
+# define NO_ACTION_FUNCTION
+#endif
+
+#undef RGBLIGHT_ANIMATIONS
diff --git a/keyboards/ergodox_ez/keymaps/danielo515/keymap.c b/keyboards/ergodox_ez/keymaps/danielo515/keymap.c
new file mode 100644
index 000000000..538eab016
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/danielo515/keymap.c
@@ -0,0 +1,318 @@
+#include QMK_KEYBOARD_H
+#include "version.h"
+#include "danielo515.h"
+
+/* STUPID JS code to split by ergodox rows. Call the format function with the unformatted array
+sliceBy = groups => items => groups.reduce(({start, acc},size) => ({
+ acc: (acc.push(items.slice(start,start+size)),acc ),
+ start: start + size
+}), {acc:[],start:0}).acc
+findMaxLen = items => items.reduce((max,curr) => max < curr.length ? curr.length : max,0)
+setLen = len => strings => strings.map(str => str.padEnd(len, " "));
+const format = string => {
+ const items = string.split(/,\s*(?![^()]*\))/)
+ const group = sliceBy([7,7,6,7,5,2,1,3])
+ const resize = setLen(findMaxLen(items));
+ const joinstr = ',\n'
+ const leftItems = group(items.slice(0,items.length/2))
+ const rightItems = group(items.slice(items.length/2))
+ const [left,right] = [leftItems.map(resize).join(joinstr),rightItems.map(resize).join(joinstr)]
+ return `\n${left},\n\n${right}\n`
+}
+*/
+
+#define OSM_SF_CMD OSM(MOD_LGUI | MOD_LSFT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_ergodox(
+ KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,OSM(MOD_HYPR) ,
+ KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,TD(PASTE_DANCE) ,
+ KC_DELETE ,KC_A ,LT(3,KC_S) ,LT(2,KC_D) ,LT(4,KC_F) ,KC_G ,
+ KC_GRAVE ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,TD(COPY_CUT) ,
+ KC_BSLASH ,OSM(MOD_LCTL) ,OSM(MOD_LALT) ,KC_LEFT ,KC_RIGHT ,
+ OSM_SF_CMD ,KC_PLUS ,
+ KC_INSERT ,
+ OSM(MOD_LSFT) ,LT(2,KC_BSPACE) ,OSM(MOD_LGUI) ,
+
+
+ TO(1) ,KC_6 ,KC_7 ,KC_8 ,TD_F9 ,LT(3,KC_0) ,KC_DQUO ,
+ KC_UNDS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,RSFT_T(KC_MINUS) ,
+ HYPR_T(KC_H) ,ALT_T(KC_J) ,RCTL_T(KC_K) ,LT(6,KC_L) ,TD_CLN ,GUI_T(KC_QUOTE) ,
+ ALT_TAB ,KC_N ,MEH_T(KC_M) ,KC_COMMA ,KC_DOT ,KC_SLASH ,LT(4,KC_KP_ASTERISK),
+ LT(4,KC_ENTER) ,KC_DOWN ,KC_LBRACKET ,KC_RBRACKET ,OSL(2) ,
+ KC_AUDIO_MUTE ,KC_ESCAPE ,
+ KC_END ,
+ KC_COLN ,KC_LEAD ,LT(4,KC_SPACE)
+ ),
+
+ [1] = LAYOUT_ergodox(
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,AC_E ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ LT(5, KC_DELETE),AC_A ,KC_TRANSPARENT ,KC_TRANSPARENT ,FIND ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ OSM(MOD_LSFT) ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ TO(8) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_ENTER ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT),
+
+ [2] = LAYOUT_ergodox(
+ KC_TRANSPARENT,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,KC_CALCULATOR ,
+ KC_TRANSPARENT,KC_HASH ,KC_DLR ,KC_TRANSPARENT,KC_RPRN ,KC_GRAVE ,
+ KC_TRANSPARENT,KC_PERC ,KC_CIRC ,KC_LBRACKET ,KC_RBRACKET ,KC_TILD ,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,
+ RGB_HUI ,
+ KC_TRANSPARENT,KC_TRANSPARENT,RGB_HUD ,
+ KC_DELETE ,KC_A ,KC_B ,KC_C ,KC_D ,KC_E ,KC_BSPACE ,
+ KC_ENTER ,KC_F ,KC_7 ,KC_8 ,KC_9 ,KC_PERC ,KC_TRANSPARENT,
+ KC_HASH ,KC_4 ,KC_5 ,KC_6 ,KC_PLUS ,KC_KP_ASTERISK,
+ KC_KP_ENTER ,KC_COLON ,KC_1 ,KC_2 ,KC_3 ,KC_SLASH ,KC_BSLASH ,
+ KC_0 ,KC_COMMA ,KC_DOT ,KC_EQUAL ,KC_TRANSPARENT,
+ RGB_TOG ,RGB_SLD ,
+ RGB_VAI ,
+ RGB_VAD ,KC_BSPACE ,KC_SPACE
+ ),
+
+ [3] = LAYOUT_ergodox(
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LABK ,KC_RABK ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_AT ,KC_TRANSPARENT ,KC_EQL ,F_ARROW ,KC_GRAVE ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LBRACKET ,KC_RBRACKET ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ // Right hand
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ LALT(LSFT(KC_UP)) ,KC_HASH ,KC_LCBR ,KC_RCBR ,KC_KP_ASTERISK ,KC_PERC ,KC_DLR ,
+ KC_AMPR ,KC_LPRN ,KC_RPRN ,KC_CIRC ,KC_KP_PLUS ,KC_PIPE ,
+ LALT(LSFT(KC_DOWN)),KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW ,KC_BSLASH ,KC_BSLASH ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ RESET ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_SPACE
+),
+
+ [4] = LAYOUT_ergodox(
+ KC_TRANSPARENT ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,LCTL(KC_Q) ,LCTL(KC_DOWN) ,LGUI(KC_DOWN) ,WIN_LEFT_HALF ,WIN_RIGHT_HALF ,LALT(LSFT(KC_UP)) ,
+ LCTL(LSFT(KC_P)) ,LCTL(KC_A) ,SAVE ,LCTL(KC_D) ,KC_TRANSPARENT ,RGUI(KC_R) ,
+ LCTL(LSFT(KC_F)) ,UNDO ,CUT ,KC_PSCREEN ,KC_TRANSPARENT ,LGUI(KC_RIGHT) ,LALT(LSFT(KC_DOWN)),
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+
+ LALT(KC_F4) ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,
+ LALT(KC_UP) ,LSFT(KC_HOME) ,LSFT(KC_LEFT) ,KC_UP ,LSFT(KC_RIGHT) ,LSFT(KC_END) ,KC_F13 ,
+ KC_HOME ,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_END ,KC_F12 ,
+ LALT(KC_DOWN) ,LSFT(KC_INSERT) ,LCTL(LSFT(KC_J)) ,LSFT(KC_UP) ,KC_PGUP ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,LSFT(KC_DOWN) ,KC_PGDOWN ,WIN_TO_LEFT ,WIN_TO_RIGHT ,
+ KC_TRANSPARENT ,KC_SYSTEM_SLEEP ,
+ KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_BSPACE ,KC_TRANSPARENT
+ ),
+
+ [5] = LAYOUT_ergodox(
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,LCTL(KC_TAB) ,LCTL(LSFT(KC_TAB)) ,LGUI(KC_D) ,LCTL(KC_F) ,KC_TRANSPARENT ,
+ LGUI(KC_L) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,LSFT(KC_F9) ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,LCTL(LGUI(KC_LEFT)) ,LCTL(LGUI(KC_RIGHT)),KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,LCTL(KC_T) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT
+),
+
+ [6] = LAYOUT_ergodox(
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_ACCEL2 ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_WH_DOWN ,KC_MS_UP ,KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_BTN3 ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ KC_MS_BTN1 ,KC_MS_BTN2 ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_PGUP ,LCTL(LGUI(KC_RIGHT)),KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ LGUI(RCTL(KC_LEFT)) ,KC_MS_WH_DOWN ,LCTL(KC_C) ,KC_TRANSPARENT ,KC_MEDIA_STOP ,KC_MEDIA_PLAY_PAUSE ,
+ KC_PGDOWN ,LCTL(LSFT(KC_N)) ,LCTL(LSFT(KC_J)) ,KC_MEDIA_PREV_TRACK ,KC_MEDIA_NEXT_TRACK ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_AUDIO_VOL_UP ,KC_AUDIO_VOL_DOWN ,KC_AUDIO_MUTE ,KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,
+ KC_TRANSPARENT ,
+ KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT
+ ),
+
+ [7] = LAYOUT_ergodox(
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_UP ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT
+ ),
+
+ [8] = LAYOUT_ergodox(
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_Q ,KC_W ,KC_E ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_ENTER ,KC_A ,KC_S ,KC_D ,KC_F ,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_Z ,KC_X ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,
+ KC_SPACE ,KC_LSHIFT ,KC_TRANSPARENT,
+
+ TO(0) ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_PGDOWN ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_ENTER ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,
+ KC_TRANSPARENT,
+ KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT
+ ),
+};
+// Used for blinking leds on layers higher than 7
+uint16_t blink_timer = 0;
+uint16_t blink_elapsed = 0;
+bool blink_led_1 = false;
+bool blink_led_2 = false;
+bool blink_led_3 = false;
+
+void matrix_scan_kb(void){
+ // first 7 layers do not need to blink
+ if(blink_led_1 || blink_led_2 || blink_led_3){
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ blink_elapsed = timer_elapsed(blink_timer);
+ if(blink_elapsed > 2000) { blink_timer = timer_read();}
+ if(blink_elapsed < 1000) {
+ if(blink_led_1) ergodox_right_led_1_on();
+ if(blink_led_2) ergodox_right_led_2_on();
+ if(blink_led_3) ergodox_right_led_3_on();
+ }
+ }
+ matrix_scan_user();
+};
+
+layer_state_t layer_state_set_user(layer_state_t state)
+{
+
+ uint8_t layer = get_highest_layer(state);
+
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ blink_led_1=false;
+ blink_led_2=false;
+ blink_led_3=false;
+
+ switch (layer)
+ {
+ case 0:
+ rgblight_setrgb(0, 200, 200);
+ break;
+ case 1:
+ ergodox_right_led_1_on();
+ rgblight_setrgb(0, 200, 0); // green
+ break;
+ case 2:
+ ergodox_right_led_2_on();
+ rgblight_setrgb(0, 0, 255);
+ break;
+ case 3:
+ ergodox_right_led_3_on();
+ rgblight_setrgb(255, 0, 0);
+ break;
+ case 4:
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ rgblight_setrgb(200, 65, 0);
+ break;
+ case 5:
+ ergodox_right_led_1_on();
+ ergodox_right_led_3_on();
+ rgblight_setrgb(0, 80, 33);
+ break;
+ case 6:
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ rgblight_setrgb(0, 10, 200);
+ break;
+ case 7:
+ ergodox_right_led_1_on();
+ ergodox_right_led_2_on();
+ ergodox_right_led_3_on();
+ rgblight_setrgb(90, 150, 90);
+ break;
+ case 8:
+ blink_led_1=true;
+ rgblight_setrgb(100, 0, 100);
+ break;
+ case 9:
+ rgblight_setrgb(200, 150, 90);
+ break;
+// default:
+// rgblight_setrgb(0, 200, 200);
+// break;
+ }
+ return state;
+};
+
+// use leds to indicate when a one shot mod is on
+void oneshot_mods_changed_user(uint8_t mods) {
+ ergodox_board_led_off();
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ // One shot checks
+ if (mods & MOD_MASK_SHIFT) {
+ ergodox_right_led_1_on();
+ }
+ if (mods & MOD_MASK_CTRL) {
+ ergodox_right_led_2_on();
+ }
+ if (mods & MOD_MASK_ALT) {
+ ergodox_right_led_3_on();
+ }
+ // if (mods & MOD_MASK_GUI) {
+ // println("Oneshot mods GUI");
+ // }
+ }
+
+void oneshot_locked_mods_changed_user(uint8_t mods) {
+ oneshot_mods_changed_user(mods);
+}
diff --git a/keyboards/ergodox_ez/keymaps/danielo515/rules.mk b/keyboards/ergodox_ez/keymaps/danielo515/rules.mk
new file mode 100644
index 000000000..99ab4f0e1
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/danielo515/rules.mk
@@ -0,0 +1,9 @@
+# Set any rules.mk overrides for your specific keymap here.
+# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
+LTO_ENABLE = yes
+AUTO_SHIFT_ENABLE = no
+TAP_DANCE_ENABLE = yes # Enable the tap dance feature.
+LEADER_ENABLE = yes
+CONSOLE_ENABLE = no
+RGBLIGHT_ENABLE = yes
+COMBO_ENABLE = yes
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index fd8f5722d..617ffea85 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -19,10 +19,10 @@ BOOTLOADER = halfkay
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/ergodox_infinity/rules.mk b/keyboards/ergodox_infinity/rules.mk
index b55c9bc8c..329ea8b98 100644
--- a/keyboards/ergodox_infinity/rules.mk
+++ b/keyboards/ergodox_infinity/rules.mk
@@ -63,10 +63,10 @@ BOOTLOADER = dfu
DFU_ARGS = -d 1c11:b007
DFU_SUFFIX_ARGS = -p b007 -v 1c11
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
@@ -79,6 +79,7 @@ SERIAL_LINK_ENABLE = yes
VISUALIZER_ENABLE = yes
LCD_ENABLE = yes
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
LCD_BACKLIGHT_ENABLE = yes
MIDI_ENABLE = no
RGBLIGHT_ENABLE = no
diff --git a/keyboards/ergodox_stm32/chconf.h b/keyboards/ergodox_stm32/chconf.h
index d9114ec85..513ae821d 100644
--- a/keyboards/ergodox_stm32/chconf.h
+++ b/keyboards/ergodox_stm32/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/ergodox_stm32/rules.mk b/keyboards/ergodox_stm32/rules.mk
index 1bf1a742a..ab7b853f5 100644
--- a/keyboards/ergodox_stm32/rules.mk
+++ b/keyboards/ergodox_stm32/rules.mk
@@ -30,3 +30,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
UNICODE_ENABLE = yes # Unicode
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/ergoinu/keymaps/default/rules.mk b/keyboards/ergoinu/keymaps/default/rules.mk
index 92dde90ff..b2eff12b0 100644
--- a/keyboards/ergoinu/keymaps/default/rules.mk
+++ b/keyboards/ergoinu/keymaps/default/rules.mk
@@ -3,10 +3,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/ergoinu/rules.mk b/keyboards/ergoinu/rules.mk
index 5c600bcd2..6f5debe00 100644
--- a/keyboards/ergoinu/rules.mk
+++ b/keyboards/ergoinu/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/ergosaurus/config.h b/keyboards/ergosaurus/config.h
new file mode 100644
index 000000000..c33972c1b
--- /dev/null
+++ b/keyboards/ergosaurus/config.h
@@ -0,0 +1,251 @@
+/*
+Copyright 2019 cfbender
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xBEEF
+#define PRODUCT_ID 0xFEED
+#define DEVICE_VER 0x0001
+#define MANUFACTURER reggalicious
+#define PRODUCT ergosaurus
+#define DESCRIPTION An ergo Alice clone from Reggalicious
+
+/* key matrix size */
+#define MATRIX_ROWS 9
+#define MATRIX_COLS 8
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS \
+ { B5, B4, E6, D4, F6, D3, D2, F4, F5 }
+#define MATRIX_COL_PINS \
+ { D7, C6, D0, D1, F7, B1, B3, B2 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/westfoxtrot/cypher/keymaps/default/config.h b/keyboards/ergosaurus/ergosaurus.c
index 41d70907e..4c3145512 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/default/config.h
+++ b/keyboards/ergosaurus/ergosaurus.c
@@ -1,4 +1,5 @@
-/* Copyright 2019 westfoxtrot
+
+/* Copyright 2019 cfbender
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,7 +14,4 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
-#pragma once
-
-// place overrides here
+#include "ergosaurus.h"
diff --git a/keyboards/ergosaurus/ergosaurus.h b/keyboards/ergosaurus/ergosaurus.h
new file mode 100644
index 000000000..c78a2db32
--- /dev/null
+++ b/keyboards/ergosaurus/ergosaurus.h
@@ -0,0 +1,38 @@
+/* Copyright 2019 cfbender
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define KNO KC_NO
+
+#define LAYOUT( \
+ K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, \
+ K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, \
+ K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, \
+ K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67, \
+ K80, K81, K82, K83, K84, K85, K87 \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07 }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17 }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27 }, \
+ { K30, K31, K32, K33, K34, K35, K36, KNO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47 }, \
+ { K50, K51, K52, K53, K54, K55, KNO, KNO }, \
+ { K60, K61, K62, K63, K64, K65, K66, K67 }, \
+ { KNO, K71, K72, K73, K74, K75, K76, KNO }, \
+ { K80, K81, K82, K83, K84, K85, KNO, K87 } \
+}
diff --git a/keyboards/ergosaurus/info.json b/keyboards/ergosaurus/info.json
new file mode 100644
index 000000000..97873afd2
--- /dev/null
+++ b/keyboards/ergosaurus/info.json
@@ -0,0 +1,82 @@
+{
+ "keyboard_name": "Ergosaurus",
+ "maintainer": "cfbender",
+ "width": 19.75,
+ "height": 5.25,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"`", "x":0.5, "y":0},
+ {"label":"Esc", "x":1.75, "y":0.25},
+ {"label":"1", "x":2.75, "y":0.25},
+ {"label":"2", "x":3.75, "y":0},
+ {"label":"3", "x":4.75, "y":0.25},
+ {"label":"4", "x":5.75, "y":0.25},
+ {"label":"5", "x":6.75, "y":0.25},
+ {"label":"6", "x":7.75, "y":0.25},
+ {"label":"7", "x":11, "y":0.25},
+ {"label":"8", "x":12, "y":0.25},
+ {"label":"9", "x":13, "y":0.25},
+ {"label":"0", "x":14, "y":0.25},
+ {"label":"-", "x":15, "y":0},
+ {"label":"=", "x":16, "y":0.25},
+ {"label":"|", "x":17, "y":0.25},
+ {"label":"Del", "x":18, "y":0.25},
+
+ {"label":"PgUp", "x":0.25, "y":1},
+ {"label":"Tab", "x":1.5, "y":1.25, "w":1.5},
+ {"label":"Q", "x":3, "y":1.25},
+ {"label":"W", "x":4.25, "y":1.25},
+ {"label":"E", "x":5.25, "y":1.25},
+ {"label":"R", "x":6.25, "y":1.25},
+ {"label":"T", "x":7.25, "y":1.25},
+ {"label":"Y", "x":10.5, "y":1.25},
+ {"label":"U", "x":11.5, "y":1.25},
+ {"label":"I", "x":12.5, "y":1.25},
+ {"label":"O", "x":13.5, "y":1.25},
+ {"label":"P", "x":14.75, "y":1.25},
+ {"label":"{", "x":15.75, "y":1.25},
+ {"label":"}", "x":16.75, "y":1.25},
+ {"label":"Backspace", "x":17.75, "y":1.25, "w":1.5},
+
+ {"label":"PgDn", "x":0, "y":2},
+ {"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75},
+ {"label":"A", "x":3.25, "y":2.25},
+ {"label":"S", "x":4.5, "y":2.25},
+ {"label":"D", "x":5.5, "y":2.25},
+ {"label":"F", "x":6.5, "y":2.25},
+ {"label":"G", "x":7.5, "y":2.25},
+ {"label":"H", "x":10.75, "y":2.25},
+ {"label":"J", "x":11.75, "y":2.25},
+ {"label":"K", "x":12.75, "y":2.25},
+ {"label":"L", "x":13.75, "y":2.25},
+ {"label":":", "x":15.25, "y":2.25},
+ {"label":"\"", "x":16.25, "y":2.25},
+ {"label":"Enter", "x":17.25, "y":2.25, "w":2.25},
+
+ {"label":"Shift", "x":1.5, "y":3.25, "w":2.25},
+ {"label":"Z", "x":3.75, "y":3.25},
+ {"label":"X", "x":5, "y":3.25},
+ {"label":"C", "x":6, "y":3.25},
+ {"label":"V", "x":7, "y":3.25},
+ {"label":"B", "x":8, "y":3.25},
+ {"label":"B", "x":10.25, "y":3.25},
+ {"label":"N", "x":11.25, "y":3.25},
+ {"label":"M", "x":12.25, "y":3.25},
+ {"label":"<", "x":13.25, "y":3.25},
+ {"label":">", "x":15, "y":3.25},
+ {"label":"?", "x":16, "y":3.25},
+ {"label":"Shift", "x":17, "y":3.25, "w":1.75},
+ {"label":"Fn", "x":18.75, "y":3.25},
+
+ {"label":"Os", "x":1.5, "y":4.25, "w":1.5},
+ {"label":"Alt", "x":5, "y":4.25, "w":1.5},
+ {"label":"Enter", "x":6.5, "y":4.25, "w":2},
+ {"label":"Fn", "x":8.5, "y":4.25},
+ {"label":"Space", "x":10.25, "y":4.25, "w":2.25},
+ {"label":"Alt", "x":12.5, "y":4.25, "w":1.5},
+ {"label":"Ctrl", "x":18, "y":4.25, "w":1.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/ergosaurus/keymaps/default/keymap.c b/keyboards/ergosaurus/keymaps/default/keymap.c
new file mode 100644
index 000000000..565906e03
--- /dev/null
+++ b/keyboards/ergosaurus/keymaps/default/keymap.c
@@ -0,0 +1,47 @@
+/* Copyright 2019 cfbender
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define BASE 0
+#define LOWER 1
+#define RAISE 2
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT(
+ KC_GRV, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(LOWER),
+ KC_LGUI, KC_LALT, KC_ENT, MO(RAISE), KC_SPC, KC_RALT, KC_RCTL
+ ),
+
+ [LOWER] = LAYOUT(
+ _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [RAISE] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RESET
+ )
+};
diff --git a/keyboards/ergosaurus/keymaps/default/readme.md b/keyboards/ergosaurus/keymaps/default/readme.md
new file mode 100644
index 000000000..acd1216c7
--- /dev/null
+++ b/keyboards/ergosaurus/keymaps/default/readme.md
@@ -0,0 +1,3 @@
+# The default keymap for ergosaurus
+
+![ergosaurus_default](https://imgur.com/gsjk8yD.jpg)
diff --git a/keyboards/ergosaurus/readme.md b/keyboards/ergosaurus/readme.md
new file mode 100644
index 000000000..cb1a02318
--- /dev/null
+++ b/keyboards/ergosaurus/readme.md
@@ -0,0 +1,15 @@
+# Ergosaurus
+
+![ergosaurus](https://i.imgur.com/9yLCcpH.jpg)
+
+An Arduino Pro Micro driven Alice-clone PCB. Supports all Alice-style cases, given the clearance for the Pro Micro. Ergosaurus specific acrylic case files available [here](https://github.com/cfbender/Lubrigante).
+
+* Keyboard Maintainer: [cfbender](https://github.com/cfbender)
+* Hardware Supported: Ergosaurus PCB, Pro Micro
+* Hardware Availability: [KeyHive](https://keyhive.xyz)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ergosaurus:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/ergosaurus/rules.mk b/keyboards/ergosaurus/rules.mk
new file mode 100644
index 000000000..b70e8d49f
--- /dev/null
+++ b/keyboards/ergosaurus/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ergoslab/rev1/rules.mk b/keyboards/ergoslab/rev1/rules.mk
new file mode 100644
index 000000000..fff00a1b5
--- /dev/null
+++ b/keyboards/ergoslab/rev1/rules.mk
@@ -0,0 +1,3 @@
+# Revision Specific Build Options
+# change yes to no to disable
+#
diff --git a/keyboards/ergotravel/rules.mk b/keyboards/ergotravel/rules.mk
index be7c8d990..43f937981 100644
--- a/keyboards/ergotravel/rules.mk
+++ b/keyboards/ergotravel/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/espectro/rules.mk b/keyboards/espectro/rules.mk
index 2d1c1eed0..065014b97 100755
--- a/keyboards/espectro/rules.mk
+++ b/keyboards/espectro/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/eve/meteor/config.h b/keyboards/eve/meteor/config.h
index b23bc877f..2100c3a45 100644
--- a/keyboards/eve/meteor/config.h
+++ b/keyboards/eve/meteor/config.h
@@ -36,4 +36,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
diff --git a/keyboards/eve/meteor/meteor.c b/keyboards/eve/meteor/meteor.c
index f5ecbad02..1d080b389 100644
--- a/keyboards/eve/meteor/meteor.c
+++ b/keyboards/eve/meteor/meteor.c
@@ -16,32 +16,18 @@
#include "meteor.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
}
+ return true;
}
diff --git a/keyboards/evil80/rules.mk b/keyboards/evil80/rules.mk
index 683f89246..46b76962b 100644
--- a/keyboards/evil80/rules.mk
+++ b/keyboards/evil80/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/exclusive/e65/rules.mk b/keyboards/exclusive/e65/rules.mk
index 0b994a279..0f27d19ac 100644
--- a/keyboards/exclusive/e65/rules.mk
+++ b/keyboards/exclusive/e65/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/exclusive/e6v2/le/rules.mk b/keyboards/exclusive/e6v2/le/rules.mk
index e6cad9403..0b5585663 100644
--- a/keyboards/exclusive/e6v2/le/rules.mk
+++ b/keyboards/exclusive/e6v2/le/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/exclusive/e6v2/le_bmc/config.h b/keyboards/exclusive/e6v2/le_bmc/config.h
index d0b976c1e..ca680f502 100644
--- a/keyboards/exclusive/e6v2/le_bmc/config.h
+++ b/keyboards/exclusive/e6v2/le_bmc/config.h
@@ -45,5 +45,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, C2, C3, C4, C5, D7 }
#define DIODE_DIRECTION COL2ROW
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLED_NUM 6
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/exclusive/e6v2/le_bmc/le_bmc.c b/keyboards/exclusive/e6v2/le_bmc/le_bmc.c
index e3b81c81b..df79cc5dc 100644
--- a/keyboards/exclusive/e6v2/le_bmc/le_bmc.c
+++ b/keyboards/exclusive/e6v2/le_bmc/le_bmc.c
@@ -16,32 +16,18 @@
#include "le_bmc.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
}
+ return true;
}
diff --git a/keyboards/exclusive/e6v2/le_bmc/rules.mk b/keyboards/exclusive/e6v2/le_bmc/rules.mk
index 106044ba7..9fe162b89 100644
--- a/keyboards/exclusive/e6v2/le_bmc/rules.mk
+++ b/keyboards/exclusive/e6v2/le_bmc/rules.mk
@@ -14,23 +14,23 @@ BOOTLOADER = bootloadHID
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
WS2812_DRIVER = i2c
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/exclusive/e6v2/oe/rules.mk b/keyboards/exclusive/e6v2/oe/rules.mk
index e6cad9403..0b5585663 100644
--- a/keyboards/exclusive/e6v2/oe/rules.mk
+++ b/keyboards/exclusive/e6v2/oe/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/exclusive/e6v2/oe_bmc/config.h b/keyboards/exclusive/e6v2/oe_bmc/config.h
index fc7c91ca6..a6b56ba00 100644
--- a/keyboards/exclusive/e6v2/oe_bmc/config.h
+++ b/keyboards/exclusive/e6v2/oe_bmc/config.h
@@ -45,5 +45,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, C2, C3, C4, C5, D7 }
#define DIODE_DIRECTION COL2ROW
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLED_NUM 6
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/exclusive/e6v2/oe_bmc/oe_bmc.c b/keyboards/exclusive/e6v2/oe_bmc/oe_bmc.c
index 97d354653..ea74d87cb 100644
--- a/keyboards/exclusive/e6v2/oe_bmc/oe_bmc.c
+++ b/keyboards/exclusive/e6v2/oe_bmc/oe_bmc.c
@@ -16,32 +16,18 @@
#include "oe_bmc.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
}
+ return true;
}
diff --git a/keyboards/exclusive/e6v2/oe_bmc/rules.mk b/keyboards/exclusive/e6v2/oe_bmc/rules.mk
index 106044ba7..9fe162b89 100644
--- a/keyboards/exclusive/e6v2/oe_bmc/rules.mk
+++ b/keyboards/exclusive/e6v2/oe_bmc/rules.mk
@@ -14,23 +14,23 @@ BOOTLOADER = bootloadHID
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
WS2812_DRIVER = i2c
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/exclusive/e7v1/rules.mk b/keyboards/exclusive/e7v1/rules.mk
index 335e228bb..7bd87e2d6 100644
--- a/keyboards/exclusive/e7v1/rules.mk
+++ b/keyboards/exclusive/e7v1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/exent/config.h b/keyboards/exent/config.h
index 08d241f65..48aee2206 100644
--- a/keyboards/exent/config.h
+++ b/keyboards/exent/config.h
@@ -39,7 +39,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
#define NO_UART 1
diff --git a/keyboards/exent/exent.c b/keyboards/exent/exent.c
index 82066f7e8..a935e9e67 100644
--- a/keyboards/exent/exent.c
+++ b/keyboards/exent/exent.c
@@ -15,3 +15,23 @@
*/
#include "exent.h"
+
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
+ setPinOutput(D6);
+}
+
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
+ }
+ return true;
+}
diff --git a/keyboards/exent/rules.mk b/keyboards/exent/rules.mk
index 10442b31b..0ea425ac7 100644
--- a/keyboards/exent/rules.mk
+++ b/keyboards/exent/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/facew/config.h b/keyboards/facew/config.h
index 9a31f9278..be442548d 100644
--- a/keyboards/facew/config.h
+++ b/keyboards/facew/config.h
@@ -37,5 +37,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/facew/facew.c b/keyboards/facew/facew.c
index fa58f0cf7..2f091ae6b 100644
--- a/keyboards/facew/facew.c
+++ b/keyboards/facew/facew.c
@@ -17,30 +17,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "facew.h"
-void backlight_init_ports(void) {
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // Turn out the lights
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // Turn on the lights
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
- }
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
diff --git a/keyboards/facew/rules.mk b/keyboards/facew/rules.mk
index c4117d15d..81cfb758c 100644
--- a/keyboards/facew/rules.mk
+++ b/keyboards/facew/rules.mk
@@ -15,7 +15,7 @@ BOOTLOADER = bootloadHID
BOOTMAGIC_ENABLE = no
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = yes
+CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
diff --git a/keyboards/fc660c/keymaps/mikefightsbears/keymap.c b/keyboards/fc660c/keymaps/mikefightsbears/keymap.c
new file mode 100644
index 000000000..2c4f0aa83
--- /dev/null
+++ b/keyboards/fc660c/keymaps/mikefightsbears/keymap.c
@@ -0,0 +1,34 @@
+/*
+Copyright 2017 Balz Guenat
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL,
+ KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
+ KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP,
+ KC_CAPS,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT
+ ),
+ [1] = LAYOUT(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______, _______,
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
+ _______,_______,_______,_______,_______,_______,_______,KC_MUTE,KC_MPRV,KC_MNXT,KC_MPLY,_______, KC_PGUP,
+ _______,_______,_______, _______, _______,_______,_______, KC_HOME,KC_PGDN,KC_END
+ )
+};
diff --git a/keyboards/fc660c/keymaps/mikefightsbears/rules.mk b/keyboards/fc660c/keymaps/mikefightsbears/rules.mk
new file mode 100644
index 000000000..454ba3005
--- /dev/null
+++ b/keyboards/fc660c/keymaps/mikefightsbears/rules.mk
@@ -0,0 +1,6 @@
+# Build Options
+# # change to "no" to disable the options, or define them in the Makefile in
+# # the appropriate keymap folder that will get included automatically
+# #
+EXTRAKEY_ENABLE = yes # Audio control and System control
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/fc660c/rules.mk b/keyboards/fc660c/rules.mk
index b817b404f..3a3ac4e5d 100644
--- a/keyboards/fc660c/rules.mk
+++ b/keyboards/fc660c/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-# BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
+# BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/fc980c/rules.mk b/keyboards/fc980c/rules.mk
index 596b96f1f..54fadc826 100644
--- a/keyboards/fc980c/rules.mk
+++ b/keyboards/fc980c/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-# BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+# BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/felix/rules.mk b/keyboards/felix/rules.mk
index 7371e3b1a..1bcaf0b5e 100644
--- a/keyboards/felix/rules.mk
+++ b/keyboards/felix/rules.mk
@@ -14,21 +14,21 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x4
diff --git a/keyboards/fleuron/rules.mk b/keyboards/fleuron/rules.mk
index 5695e6885..5724f3b98 100644
--- a/keyboards/fleuron/rules.mk
+++ b/keyboards/fleuron/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/fluorite/config.h b/keyboards/fluorite/config.h
index 59af3eb26..7bae8a013 100644
--- a/keyboards/fluorite/config.h
+++ b/keyboards/fluorite/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D3, D1, D0, D4, C6, D7, E6, B4, B5 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/*
diff --git a/keyboards/flx/virgo/info.json b/keyboards/flx/virgo/info.json
index 91fe3bc34..0bd70af63 100644
--- a/keyboards/flx/virgo/info.json
+++ b/keyboards/flx/virgo/info.json
@@ -1,12 +1,11 @@
{
- "keyboard_name": "flx-virgo-default",
+ "keyboard_name": "FLX Virgo",
"url": "",
"maintainer": "qmk",
"width": 20.25,
"height": 6.25,
"layouts": {
"LAYOUT": {
- "key_count": 91,
"layout": [
{"label":"K00 (C6,F0)", "x":0, "y":0},
{"label":"K01 (C6,F1)", "x":1.5, "y":0},
diff --git a/keyboards/flx/virgo/keymaps/default/keymap.c b/keyboards/flx/virgo/keymaps/default/keymap.c
index 789c369db..1384b91db 100644
--- a/keyboards/flx/virgo/keymaps/default/keymap.c
+++ b/keyboards/flx/virgo/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 MechMerlin
+/* Copyright 2020 Flexerm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,20 +17,36 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_LALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_TOGG, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_0, KC_EQL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
}; \ No newline at end of file
diff --git a/keyboards/flx/virgo/keymaps/via/keymap.c b/keyboards/flx/virgo/keymaps/via/keymap.c
new file mode 100644
index 000000000..c10f3751e
--- /dev/null
+++ b/keyboards/flx/virgo/keymaps/via/keymap.c
@@ -0,0 +1,52 @@
+/* Copyright 2020 Flexerm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+};
diff --git a/keyboards/flx/virgo/keymaps/via/readme.md b/keyboards/flx/virgo/keymaps/via/readme.md
new file mode 100644
index 000000000..67398c8bd
--- /dev/null
+++ b/keyboards/flx/virgo/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The default VIA keymap for FLX - Virgo
diff --git a/keyboards/hs60/v2/keymaps/ansi_via/rules.mk b/keyboards/flx/virgo/keymaps/via/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/hs60/v2/keymaps/ansi_via/rules.mk
+++ b/keyboards/flx/virgo/keymaps/via/rules.mk
diff --git a/keyboards/flx/virgo/readme.md b/keyboards/flx/virgo/readme.md
index 1edfeaf83..2d9757485 100644
--- a/keyboards/flx/virgo/readme.md
+++ b/keyboards/flx/virgo/readme.md
@@ -6,7 +6,7 @@ Custom Split TKL
* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
* Hardware Supported: Virgo PCB
-* Hardware Availability: GB TBD
+* Hardware Availability: GB FEB 15th 2020 - to be held on Geekhack
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/flx/virgo/rules.mk b/keyboards/flx/virgo/rules.mk
index b9bb2915f..c512b6a02 100644
--- a/keyboards/flx/virgo/rules.mk
+++ b/keyboards/flx/virgo/rules.mk
@@ -1,3 +1,4 @@
+# MCU name
MCU = atmega32u4
# Bootloader selection
@@ -16,8 +17,8 @@ BOOTLOADER = atmel-dfu
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
@@ -32,5 +33,3 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
-# generated by KBFirmware JSON to QMK Parser
-# https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/flx/virgo/virgo.c b/keyboards/flx/virgo/virgo.c
index 102d91a70..142ddf3eb 100644
--- a/keyboards/flx/virgo/virgo.c
+++ b/keyboards/flx/virgo/virgo.c
@@ -1,4 +1,5 @@
/* Copyright 2019 MechMerlin
+ * Edits etc 2020 Flexerm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,7 +20,7 @@ void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
- setPinOutput(E6);
+ setPinOutput(E6);
setPinOutput(B2);
matrix_init_user();
}
diff --git a/keyboards/flx/virgo/virgo.h b/keyboards/flx/virgo/virgo.h
index 015585c4e..fcfcac50e 100644
--- a/keyboards/flx/virgo/virgo.h
+++ b/keyboards/flx/virgo/virgo.h
@@ -1,4 +1,5 @@
/* Copyright 2019 MechMerlin
+ * Edits etc 2020 Flexerm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -18,26 +19,24 @@
#include "quantum.h"
#define LAYOUT( \
- K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
- K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K66, K27, K37, K28, \
- K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
- K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
- K80, K90, K81, K91, K82, K92, K83, KA3, K93, K84, K94, K85, K95, K86, K96, K97, \
- KA0, KB0, KA1, KB2, KB4, KB5, KA6, KB6, KA7, KB7, KA8 \
+ K00, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, \
+ K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K66, K27, K37, K28, \
+ K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K57, K48, \
+ K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K76, \
+ K80, K90, K81, K91, K82, K92, K83, KA3, K93, K84, K94, K85, K95, K86, K96, K97, \
+ KA0, KB0, KA1, KB2, KB4, KB5, KA6, KB6, KA7, KB7, KA8 \
) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
- { KC_NO, K11, K12, K13, K14, K15, K16, K17, KC_NO }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, KC_NO }, \
- { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
- { K50, K51, K52, K53, K54, K55, K56, K57, KC_NO }, \
- { K60, K61, K62, K63, K64, K65, K66, KC_NO, KC_NO }, \
- { K70, K71, K72, K73, K74, K75, K76, KC_NO, KC_NO }, \
- { K80, K81, K82, K83, K84, K85, K86, KC_NO, KC_NO }, \
- { K90, K91, K92, K93, K94, K95, K96, K97, KC_NO }, \
- { KA0, KA1, KC_NO, KA3, KC_NO, KC_NO, KA6, KA7, KA8 }, \
- { KB0, KC_NO, KB2, KC_NO, KB4, KB5, KB6, KB7, KC_NO }, \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \
+ { KC_NO, K11, K12, K13, K14, K15, K16, K17, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, KC_NO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \
+ { K50, K51, K52, K53, K54, K55, K56, K57, KC_NO }, \
+ { K60, K61, K62, K63, K64, K65, K66, KC_NO, KC_NO }, \
+ { K70, K71, K72, K73, K74, K75, K76, KC_NO, KC_NO }, \
+ { K80, K81, K82, K83, K84, K85, K86, KC_NO, KC_NO }, \
+ { K90, K91, K92, K93, K94, K95, K96, K97, KC_NO }, \
+ { KA0, KA1, KC_NO, KA3, KC_NO, KC_NO, KA6, KA7, KA8 }, \
+ { KB0, KC_NO, KB2, KC_NO, KB4, KB5, KB6, KB7, KC_NO }, \
}
-// generated by KBFirmware JSON to QMK Parser
-// https://noroadsleft.github.io/kbf_qmk_converter/ \ No newline at end of file
diff --git a/keyboards/fortitude60/rules.mk b/keyboards/fortitude60/rules.mk
index 1fdbfb016..43d682cce 100644
--- a/keyboards/fortitude60/rules.mk
+++ b/keyboards/fortitude60/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/four_banger/rules.mk b/keyboards/four_banger/rules.mk
index d37439a0f..ae77f0a0e 100644
--- a/keyboards/four_banger/rules.mk
+++ b/keyboards/four_banger/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/foxlab/leaf60/hotswap/rules.mk b/keyboards/foxlab/leaf60/hotswap/rules.mk
index 6c1ec4525..1239cee3f 100644
--- a/keyboards/foxlab/leaf60/hotswap/rules.mk
+++ b/keyboards/foxlab/leaf60/hotswap/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/foxlab/leaf60/universal/rules.mk b/keyboards/foxlab/leaf60/universal/rules.mk
index 1fcd0aa22..9f572eb2e 100644
--- a/keyboards/foxlab/leaf60/universal/rules.mk
+++ b/keyboards/foxlab/leaf60/universal/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 60_ansi 60_hhkb
diff --git a/keyboards/fractal/rules.mk b/keyboards/fractal/rules.mk
index 4894f1f4d..e5d540e0a 100755
--- a/keyboards/fractal/rules.mk
+++ b/keyboards/fractal/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
diff --git a/keyboards/freyr/rules.mk b/keyboards/freyr/rules.mk
index 1a00e299f..ee4b122eb 100644
--- a/keyboards/freyr/rules.mk
+++ b/keyboards/freyr/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Supported layouts
LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/ft/mars80/config.h b/keyboards/ft/mars80/config.h
index 1bf939287..8c1ebe4ba 100644
--- a/keyboards/ft/mars80/config.h
+++ b/keyboards/ft/mars80/config.h
@@ -38,7 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
#define NO_UART 1
diff --git a/keyboards/ft/mars80/mars80.c b/keyboards/ft/mars80/mars80.c
index 8e5127408..2c628a6a2 100644
--- a/keyboards/ft/mars80/mars80.c
+++ b/keyboards/ft/mars80/mars80.c
@@ -16,32 +16,20 @@
#include "mars80.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
setPinOutput(D1);
- setPinOutput(D4);
setPinOutput(D6);
-
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
}
+ return true;
}
diff --git a/keyboards/geekboards/tester/rules.mk b/keyboards/geekboards/tester/rules.mk
index 1ca57f6d0..03b4e8399 100644
--- a/keyboards/geekboards/tester/rules.mk
+++ b/keyboards/geekboards/tester/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = qmk-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/gergo/keymaps/colemak/rules.mk b/keyboards/gergo/keymaps/colemak/rules.mk
index ddec12d1b..3b81fdfa1 100644
--- a/keyboards/gergo/keymaps/colemak/rules.mk
+++ b/keyboards/gergo/keymaps/colemak/rules.mk
@@ -6,7 +6,7 @@
BALLER = no # Enable to ball out
BALLSTEP = 20 # Multiple in px to move, multiplied by layer number
SCROLLSTEP = 1 # Lines to scroll with ball
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700), needed for baller
+MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller
#Debug options
VERBOSE = no
diff --git a/keyboards/gergo/keymaps/default/rules.mk b/keyboards/gergo/keymaps/default/rules.mk
index da2d03af2..351c52558 100644
--- a/keyboards/gergo/keymaps/default/rules.mk
+++ b/keyboards/gergo/keymaps/default/rules.mk
@@ -6,7 +6,7 @@
BALLER = no # Enable to ball out
BALLSTEP = 20 # Multiple in px to move, multiplied by layer number
SCROLLSTEP = 1 # Lines to scroll with ball
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700), needed for baller
+MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller
#Debug options
VERBOSE = yes
diff --git a/keyboards/gergo/keymaps/oled/rules.mk b/keyboards/gergo/keymaps/oled/rules.mk
index fae936eff..1661d43d1 100644
--- a/keyboards/gergo/keymaps/oled/rules.mk
+++ b/keyboards/gergo/keymaps/oled/rules.mk
@@ -6,7 +6,7 @@
BALLER = no # Enable to ball out
BALLSTEP = 20 # Multiple in px to move, multiplied by layer number
SCROLLSTEP = 1 # Lines to scroll with ball
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700), needed for baller
+MOUSEKEY_ENABLE = yes # Mouse keys, needed for baller
OLED_DRIVER_ENABLE = yes
LOCAL_GLCDFONT = yes
diff --git a/keyboards/deltasplit75/config.h b/keyboards/getta25/config.h
index 8a2fbb3b2..cfb6bf4ff 100644
--- a/keyboards/deltasplit75/config.h
+++ b/keyboards/getta25/config.h
@@ -1,5 +1,6 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,9 +16,6 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#include "config_common.h"
-
-#endif
diff --git a/keyboards/getta25/getta25.c b/keyboards/getta25/getta25.c
new file mode 100644
index 000000000..4f8cc63b4
--- /dev/null
+++ b/keyboards/getta25/getta25.c
@@ -0,0 +1 @@
+#include "getta25.h"
diff --git a/keyboards/getta25/getta25.h b/keyboards/getta25/getta25.h
new file mode 100644
index 000000000..ff4482017
--- /dev/null
+++ b/keyboards/getta25/getta25.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include "quantum.h"
+
+#ifdef KEYBOARD_getta25_rev1
+ #include "rev1.h"
+#endif
diff --git a/keyboards/getta25/info.json b/keyboards/getta25/info.json
new file mode 100644
index 000000000..d3a02f298
--- /dev/null
+++ b/keyboards/getta25/info.json
@@ -0,0 +1,38 @@
+{
+ "keyboard_name": "Getta25",
+ "url": "https://salicylic-acid3.hatenablog.com/",
+ "maintainer": "Salicylic_acid3",
+ "width": 5.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"ESC", "x":0, "y":0},
+ {"label":"F2", "x":1, "y":0},
+ {"label":"=", "x":2, "y":0},
+ {"label":"DEL", "x":3, "y":0},
+ {"label":"Num Lock", "x":0, "y":1.25},
+ {"label":"/", "x":1, "y":1.25},
+ {"label":"*", "x":2, "y":1.25},
+ {"label":"-", "x":3, "y":1.25},
+ {"label":"7", "x":0, "y":2.25},
+ {"label":"8", "x":1, "y":2.25},
+ {"label":"9", "x":2, "y":2.25},
+ {"label":"ESC", "x":4.25, "y":2.25},
+ {"label":"4", "x":0, "y":3.25},
+ {"label":"5", "x":1, "y":3.25},
+ {"label":"6", "x":2, "y":3.25},
+ {"label":"+", "x":3, "y":2.25, "h":2},
+ {"label":"F2", "x":4.25, "y":3.25},
+ {"label":"1", "x":0, "y":4.25},
+ {"label":"2", "x":1, "y":4.25},
+ {"label":"3", "x":2, "y":4.25},
+ {"label":"DEL", "x":4.25, "y":4.25},
+ {"label":"0", "x":0, "y":5.25, "w":2},
+ {"label":".", "x":2, "y":5.25},
+ {"label":"Enter", "x":3, "y":4.25, "h":2},
+ {"label":"BSPC", "x":4.25, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/getta25/keymaps/default/config.h b/keyboards/getta25/keymaps/default/config.h
new file mode 100644
index 000000000..8c4e1f512
--- /dev/null
+++ b/keyboards/getta25/keymaps/default/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2018 Salicylic_acid3
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* Select hand configuration */
+
+#define TAPPING_FORCE_HOLD
+#define TAPPING_TERM 180
+
+
diff --git a/keyboards/getta25/keymaps/default/keymap.c b/keyboards/getta25/keymaps/default/keymap.c
new file mode 100644
index 000000000..a70df01c1
--- /dev/null
+++ b/keyboards/getta25/keymaps/default/keymap.c
@@ -0,0 +1,61 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layer_number {
+ _BASE,
+ _ARROW,
+ _ADJUST,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ //,-----------------------------------|
+LT(_ADJUST,KC_ESC), KC_F2, KC_EQL, KC_DEL,
+ //|--------+--------+--------+--------|
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ //|--------+--------+--------+--------+--------|
+ KC_P7, KC_P8, KC_P9, KC_ESC,
+ //|--------+--------+--------+--------+--------|
+ KC_P4, KC_P5, KC_P6, KC_PPLS, KC_F2,
+ //|--------+--------+--------+--------+--------|
+ KC_P1, KC_P2, KC_P3, KC_DEL,
+ //|--------+--------+--------+--------+--------|
+LT(_ARROW, KC_P0), KC_PDOT, KC_PENT, KC_BSPC
+ //`--------------------------------------------'
+ ),
+
+ [_ARROW] = LAYOUT(
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, _______, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_UP, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_DOWN, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ MO(_ARROW), _______, _______, _______
+ //`--------------------------------------------'
+ ),
+
+ [_ADJUST] = LAYOUT( /* Base */
+ //,-----------------------------------|
+ MO(_ADJUST), _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_SAD, RGB_SAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_HUD, RGB_HUI, XXXXXXX, RGB_TOG, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_VAD, RGB_VAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ _______, _______, RGB_MOD, _______
+ //`--------------------------------------------'
+ )
+};
diff --git a/keyboards/getta25/keymaps/oled/config.h b/keyboards/getta25/keymaps/oled/config.h
new file mode 100644
index 000000000..be988915c
--- /dev/null
+++ b/keyboards/getta25/keymaps/oled/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2018 Salicylic_acid3
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* Select hand configuration */
+
+#define TAPPING_FORCE_HOLD
+#define TAPPING_TERM 180
+
+#define OLED_FONT_H "keyboards/getta25/keymaps/oled/glcdfont.c"
+
diff --git a/keyboards/getta25/keymaps/oled/glcdfont.c b/keyboards/getta25/keymaps/oled/glcdfont.c
new file mode 100644
index 000000000..939db32ca
--- /dev/null
+++ b/keyboards/getta25/keymaps/oled/glcdfont.c
@@ -0,0 +1,231 @@
+// 'loveLain', 128x32px
+
+#include "progmem.h"
+
+static const unsigned char font[] PROGMEM = {
+0x00,0x00,0x00,0x00,0x00,0x00, // 00
+0x3E,0x5B,0x4F,0x5B,0x3E,0x00, // 01
+0x3E,0x6B,0x4F,0x6B,0x3E,0x00, // 02
+0x1C,0x3E,0x7C,0x3E,0x1C,0x00, // 03
+0x18,0x3C,0x7E,0x3C,0x18,0x00, // 04
+0x1C,0x57,0x7D,0x57,0x1C,0x00, // 05
+0x1C,0x5E,0x7F,0x5E,0x1C,0x00, // 06
+0x00,0x18,0x3C,0x18,0x00,0x00, // 07
+0xFF,0xE7,0xC3,0xE7,0xFF,0x00, // 08
+0x00,0x18,0x24,0x18,0x00,0x00, // 09
+0xFF,0xE7,0xDB,0xE7,0xFF,0x00, // 0A
+0x30,0x48,0x3A,0x06,0x0E,0x00, // 0B
+0x26,0x29,0x79,0x29,0x26,0x00, // 0C
+0x40,0x7F,0x05,0x05,0x07,0x00, // 0D
+0x40,0x7F,0x05,0x25,0x3F,0x00, // 0E
+0x5A,0x3C,0xE7,0x3C,0x5A,0x00, // 0F
+0x7F,0x3E,0x1C,0x1C,0x08,0x00, // 10
+0x08,0x1C,0x1C,0x3E,0x7F,0x00, // 11
+0x14,0x22,0x7F,0x22,0x14,0x00, // 12
+0x5F,0x5F,0x00,0x5F,0x5F,0x00, // 13
+0x06,0x09,0x7F,0x01,0x7F,0x00, // 14
+0x00,0x66,0x89,0x95,0x6A,0x00, // 15
+0x60,0x60,0x60,0x60,0x60,0x00, // 16
+0x94,0xA2,0xFF,0xA2,0x94,0x00, // 17
+0x08,0x04,0x7E,0x04,0x08,0x00, // 18
+0x10,0x20,0x7E,0x20,0x10,0x00, // 19
+0x08,0x08,0x2A,0x1C,0x08,0x00, // 1A
+0x08,0x1C,0x2A,0x08,0x08,0x00, // 1B
+0x1E,0x10,0x10,0x10,0x10,0x00, // 1C
+0x0C,0x1E,0x0C,0x1E,0x0C,0x00, // 1D
+0x30,0x38,0x3E,0x38,0x30,0x00, // 1E
+0x06,0x0E,0x3E,0x0E,0x06,0x00, // 1F
+0x00,0x00,0x00,0x00,0x00,0x00, // 20
+0x00,0x00,0x5F,0x00,0x00,0x00, // 21 !
+0x00,0x07,0x00,0x07,0x00,0x00, // 22 "
+0x14,0x7F,0x14,0x7F,0x14,0x00, // 23 #
+0x24,0x2A,0x7F,0x2A,0x12,0x00, // 24 $
+0x23,0x13,0x08,0x64,0x62,0x00, // 25 %
+0x36,0x49,0x56,0x20,0x50,0x00, // 26 &
+0x00,0x08,0x07,0x03,0x00,0x00, // 27 '
+0x00,0x1C,0x22,0x41,0x00,0x00, // 28 (
+0x00,0x41,0x22,0x1C,0x00,0x00, // 29 )
+0x2A,0x1C,0x7F,0x1C,0x2A,0x00, // 2A *
+0x08,0x08,0x3E,0x08,0x08,0x00, // 2B +
+0x00,0x80,0x70,0x30,0x00,0x00, // 2C ,
+0x08,0x08,0x08,0x08,0x08,0x00, // 2D -
+0x00,0x00,0x60,0x60,0x00,0x00, // 2E .
+0x20,0x10,0x08,0x04,0x02,0x00, // 2F /
+0x3E,0x51,0x49,0x45,0x3E,0x00, // 30 0
+0x00,0x42,0x7F,0x40,0x00,0x00, // 31 1
+0x72,0x49,0x49,0x49,0x46,0x00, // 32 2
+0x21,0x41,0x49,0x4D,0x33,0x00, // 33 3
+0x18,0x14,0x12,0x7F,0x10,0x00, // 34 4
+0x27,0x45,0x45,0x45,0x39,0x00, // 35 5
+0x3C,0x4A,0x49,0x49,0x31,0x00, // 36 6
+0x41,0x21,0x11,0x09,0x07,0x00, // 37 7
+0x36,0x49,0x49,0x49,0x36,0x00, // 38 8
+0x46,0x49,0x49,0x29,0x1E,0x00, // 39 9
+0x00,0x00,0x14,0x00,0x00,0x00, // 3A :
+0x00,0x40,0x34,0x00,0x00,0x00, // 3B ;
+0x00,0x08,0x14,0x22,0x41,0x00, // 3C <
+0x14,0x14,0x14,0x14,0x14,0x00, // 3D =
+0x00,0x41,0x22,0x14,0x08,0x00, // 3E >
+0x02,0x01,0x59,0x09,0x06,0x00, // 3F ?
+0x3E,0x41,0x5D,0x59,0x4E,0x00, // 40 @
+0x7C,0x12,0x11,0x12,0x7C,0x00, // 41 A
+0x7F,0x49,0x49,0x49,0x36,0x00, // 42 B
+0x3E,0x41,0x41,0x41,0x22,0x00, // 43 C
+0x7F,0x41,0x41,0x41,0x3E,0x00, // 44 D
+0x7F,0x49,0x49,0x49,0x41,0x00, // 45 E
+0x7F,0x09,0x09,0x09,0x01,0x00, // 46 F
+0x3E,0x41,0x41,0x51,0x73,0x00, // 47 G
+0x7F,0x08,0x08,0x08,0x7F,0x00, // 48 H
+0x00,0x41,0x7F,0x41,0x00,0x00, // 49 I
+0x20,0x40,0x41,0x3F,0x01,0x00, // 4A J
+0x7F,0x08,0x14,0x22,0x41,0x00, // 4B K
+0x7F,0x40,0x40,0x40,0x40,0x00, // 4C L
+0x7F,0x02,0x1C,0x02,0x7F,0x00, // 4D M
+0x7F,0x04,0x08,0x10,0x7F,0x00, // 4E N
+0x3E,0x41,0x41,0x41,0x3E,0x00, // 4F O
+0x7F,0x09,0x09,0x09,0x06,0x00, // 50 P
+0x3E,0x41,0x51,0x21,0x5E,0x00, // 51 Q
+0x7F,0x09,0x19,0x29,0x46,0x00, // 52 R
+0x26,0x49,0x49,0x49,0x32,0x00, // 53 S
+0x03,0x01,0x7F,0x01,0x03,0x00, // 54 T
+0x3F,0x40,0x40,0x40,0x3F,0x00, // 55 U
+0x1F,0x20,0x40,0x20,0x1F,0x00, // 56 V
+0x3F,0x40,0x38,0x40,0x3F,0x00, // 57 W
+0x63,0x14,0x08,0x14,0x63,0x00, // 58 X
+0x03,0x04,0x78,0x04,0x03,0x00, // 59 Y
+0x61,0x59,0x49,0x4D,0x43,0x00, // 5A Z
+0x00,0x7F,0x41,0x41,0x41,0x00, // 5B [
+0x02,0x04,0x08,0x10,0x20,0x00, // 5C \ .
+0x00,0x41,0x41,0x41,0x7F,0x00, // 5D ]
+0x04,0x02,0x01,0x02,0x04,0x00, // 5E ^
+0x40,0x40,0x40,0x40,0x40,0x00, // 5F _
+0x00,0x03,0x07,0x08,0x00,0x00, // 60 `
+0x20,0x54,0x54,0x78,0x40,0x00, // 61 a
+0x7F,0x28,0x44,0x44,0x38,0x00, // 62 b
+0x38,0x44,0x44,0x44,0x28,0x00, // 63 c
+0x38,0x44,0x44,0x28,0x7F,0x00, // 64 d
+0x38,0x54,0x54,0x54,0x18,0x00, // 65 e
+0x00,0x08,0x7E,0x09,0x02,0x00, // 66 f
+0x18,0xA4,0xA4,0x9C,0x78,0x00, // 67 g
+0x7F,0x08,0x04,0x04,0x78,0x00, // 68 h
+0x00,0x44,0x7D,0x40,0x00,0x00, // 69 i
+0x20,0x40,0x40,0x3D,0x00,0x00, // 6A j
+0x7F,0x10,0x28,0x44,0x00,0x00, // 6B k
+0x00,0x41,0x7F,0x40,0x00,0x00, // 6C l
+0x7C,0x04,0x78,0x04,0x78,0x00, // 6D m
+0x7C,0x08,0x04,0x04,0x78,0x00, // 6E n
+0x38,0x44,0x44,0x44,0x38,0x00, // 6F o
+0xFC,0x18,0x24,0x24,0x18,0x00, // 70 p
+0x18,0x24,0x24,0x18,0xFC,0x00, // 71 q
+0x7C,0x08,0x04,0x04,0x08,0x00, // 72 r
+0x48,0x54,0x54,0x54,0x24,0x00, // 73 s
+0x04,0x04,0x3F,0x44,0x24,0x00, // 74 t
+0x3C,0x40,0x40,0x20,0x7C,0x00, // 75 u
+0x1C,0x20,0x40,0x20,0x1C,0x00, // 76 v
+0x3C,0x40,0x30,0x40,0x3C,0x00, // 77 w
+0x44,0x28,0x10,0x28,0x44,0x00, // 78 x
+0x4C,0x90,0x90,0x90,0x7C,0x00, // 79 y
+0x44,0x64,0x54,0x4C,0x44,0x00, // 7A z
+0x00,0x08,0x36,0x41,0x00,0x00, // 7B {
+0x00,0x00,0x77,0x00,0x00,0x00, // 7C |
+0x00,0x41,0x36,0x08,0x00,0x00, // 7D }
+0x02,0x01,0x02,0x04,0x02,0x00, // 7E ~
+0x3C,0x26,0x23,0x26,0x3C,0x00, // 7F
+0xC7,0xC7,0xC7,0x00,0x00,0x00, // 80
+0x00,0x20,0x60,0x60,0x60,0x60, // 81
+0x60,0xE0,0x20,0x20,0x20,0x20, // 82
+0x20,0x60,0x60,0x00,0x00,0x00, // 83
+0x00,0x00,0x00,0xC7,0xC7,0xC7, // 84
+0xC7,0xC7,0xC7,0x00,0x00,0x00, // 85
+0x00,0xE0,0x70,0x50,0xFE,0x7A, // 86
+0x02,0x00,0x20,0x60,0xE0,0xF3, // 87
+0x3E,0x30,0x10,0x10,0x00,0x00, // 88
+0x00,0x00,0x00,0xC7,0xC7,0xC7, // 89
+0xC7,0xC7,0xC7,0x00,0x00,0x80, // 8A
+0xC0,0xC3,0xA1,0x90,0x98,0x84, // 8B
+0x83,0x00,0x00,0x1E,0x09,0x0C, // 8C
+0x04,0xC4,0x7C,0x18,0x00,0x00, // 8D
+0x00,0x00,0x00,0xC7,0xC7,0xC7, // 8E
+0x00,0x00,0x00,0x00,0x00,0x00, // 8F
+0x00,0x00,0x00,0x00,0x00,0x00, // 90
+0x00,0x00,0x00,0x00,0x00,0x00, // 91
+0x00,0x00,0x00,0x00,0x00,0x00, // 92
+0x00,0x00,0x00,0x00,0x00,0x00, // 93
+0x00,0x00,0x00,0x00,0x00,0xE0, // 94
+0xF0,0xF0,0xF0,0xE0,0xEC,0xEE, // 95
+0xF7,0xF3,0x70,0x20,0x00,0x7C, // 96
+0x7C,0x7C,0x7E,0x00,0x7E,0x7E, // 97
+0x7E,0x7F,0x7F,0x7F,0x00,0x00, // 98
+0x80,0xC0,0xE0,0x7E,0x5B,0x4F, // 99
+0x5B,0xFE,0xC0,0x00,0x00,0xC0, // 9A
+0x00,0xDC,0xD7,0xDE,0xDE,0xDE, // 9B
+0xD7,0xDC,0x00,0xC0,0x00,0x00, // 9C
+0x00,0x00,0x00,0x00,0x00,0x00, // 9D
+0x00,0x00,0x00,0x00,0x00,0x00, // 9E
+0x00,0x00,0x00,0x00,0x00,0xFF, // 9F
+0x71,0x71,0x71,0x00,0x00,0x00, // A0
+0x00,0x00,0x00,0x00,0x00,0x00, // A1 ?
+0xC0,0xFF,0x00,0x08,0x0E,0x0E, // A2 ?
+0x0C,0x00,0x00,0x00,0x00,0x00, // A3 ?
+0x00,0x00,0x00,0x71,0x71,0x71, // A4 ?
+0x71,0x71,0x71,0x00,0x00,0x08, // A5 ?
+0x08,0x09,0x18,0x25,0x61,0x31, // A6 ?
+0x1F,0x06,0x04,0x06,0x13,0x32, // A7 §
+0x32,0x62,0x02,0x06,0x0C,0x08, // A8 ¨
+0x00,0x00,0x00,0x71,0x71,0x71, // A9 ?
+0x71,0x71,0x71,0x00,0x00,0x00, // AA ?
+0x00,0x00,0x00,0x00,0x00,0x00, // AB ?
+0x09,0x11,0x18,0x08,0x0C,0x06, // AC ?
+0x03,0x00,0x00,0x00,0x00,0x00, // AD ?
+0x00,0x00,0x00,0x71,0x71,0x71, // AE ?
+0x00,0x00,0x00,0x00,0x00,0x00, // AF ?
+0x00,0x00,0x00,0x00,0x00,0x00, // B0 °
+0x00,0x00,0x00,0x00,0x00,0x00, // B1 ±
+0x00,0x00,0x00,0x00,0x00,0x00, // B2 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // B3 ?
+0x00,0x00,0x00,0x00,0x00,0x0F, // B4 ´
+0x1F,0x3F,0x7F,0x7F,0x7F,0x7F, // B5 ?
+0x7F,0x3F,0x1E,0x0C,0x00,0x1F, // B6 ¶
+0x1F,0x1F,0x3F,0x00,0x3F,0x3F, // B7 ?
+0x3F,0x7F,0x7F,0x7F,0x00,0x30, // B8 ?
+0x7B,0x7F,0x78,0x30,0x20,0x20, // B9 ?
+0x30,0x78,0x7F,0x3B,0x00,0x03, // BA ?
+0x00,0x0F,0x7F,0x0F,0x0F,0x0F, // BB ?
+0x7F,0x0F,0x00,0x03,0x00,0x00, // BC ?
+0x00,0x00,0x00,0x00,0x00,0x00, // BD ?
+0x00,0x00,0x00,0x00,0x00,0x00, // BE ?
+0x00,0x00,0x00,0x00,0x00,0xFF, // BF ?
+0x1C,0x1C,0x1C,0x00,0x00,0x00, // C0 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // C1 ?
+0x07,0x0F,0x00,0x00,0x00,0x00, // C2 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // C3 ?
+0x00,0x00,0x00,0x1C,0x1C,0x1C, // C4 ?
+0x1C,0x1C,0x1C,0x00,0x00,0x00, // C5 ?
+0x00,0x00,0x80,0x80,0xC0,0x40, // C6 ?
+0x80,0x00,0x00,0x00,0xC0,0x40, // C7 ?
+0x40,0xC0,0xC0,0xC0,0x00,0x00, // C8 ?
+0x00,0x00,0x00,0x1C,0x1C,0x1C, // C9 ?
+0x1C,0x1C,0x1C,0x00,0x00,0x00, // CA ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CB ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CC ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CD ?
+0x00,0x00,0x00,0x1C,0x1C,0x1C, // CE ?
+0x00,0x00,0x00,0x00,0x00,0x00, // CF ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D0 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D1 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D2 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D3 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D4 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D5 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D6 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D7 ×
+0x00,0x00,0x00,0x00,0x00,0x00, // D8 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // D9 ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DA ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DB ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DC ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DD ?
+0x00,0x00,0x00,0x00,0x00,0x00, // DE ?
+0x00,0x00,0x00,0x00,0x00,0xFF, // DF ?
+};
+static const unsigned int fontLen = 512;
diff --git a/keyboards/getta25/keymaps/oled/keymap.c b/keyboards/getta25/keymaps/oled/keymap.c
new file mode 100644
index 000000000..44833857d
--- /dev/null
+++ b/keyboards/getta25/keymaps/oled/keymap.c
@@ -0,0 +1,204 @@
+#include QMK_KEYBOARD_H
+#include "keymap_jp.h"
+
+#ifdef OLED_DRIVER_ENABLE
+static uint32_t oled_timer = 0;
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layer_number {
+ _BASE,
+ _ARROW,
+ _MACRO,
+ _ADJUST,
+};
+
+enum custom_keycodes {
+ RGB_RST = SAFE_RANGE,
+ SEND_SUM,
+ SEND_AVE,
+ SEND_CIF,
+ SEND_MAX,
+ SEND_MIN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ //,-----------------------------------|
+ KC_ESC, KC_F2, JP_EQL, KC_DEL,
+ //|--------+--------+--------+--------|
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ //|--------+--------+--------+--------+--------|
+ KC_P7, KC_P8, KC_P9, LCTL(JP_LBRC),
+ //|--------+--------+--------+--------+--------|
+ KC_P4, KC_P5, KC_P6, KC_PPLS, JP_EQL,
+ //|--------+--------+--------+--------+--------|
+ KC_P1, KC_P2, KC_P3, KC_DEL,
+ //|--------+--------+--------+--------+--------|
+LT(_ARROW, KC_P0),LT(_MACRO, KC_PDOT),KC_PENT,KC_BSPC
+ //`--------------------------------------------'
+ ),
+
+ [_ARROW] = LAYOUT(
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, _______, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_UP, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______,
+ //|--------+--------+--------+--------+--------|
+ XXXXXXX, KC_DOWN, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ MO(_ARROW), MO(_MACRO), _______, _______
+ //`--------------------------------------------'
+ ),
+
+ [_MACRO] = LAYOUT(
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ SEND_MIN,SEND_MAX,SEND_CIF,SEND_AVE,
+ //|--------+--------+--------+--------+--------|
+ KC_F7, KC_F8, KC_F9, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_F4, KC_F5, KC_F6,SEND_SUM, _______,
+ //|--------+--------+--------+--------+--------|
+ KC_F11, KC_F12, KC_F3, _______,
+ //|--------+--------+--------+--------+--------|
+ _______, _______, JP_RPRN, _______
+ //`--------------------------------------------'
+ ),
+
+ [_ADJUST] = LAYOUT( /* Base */
+ //,-----------------------------------|
+ _______, _______, _______, _______,
+ //|--------+--------+--------+--------|
+ XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_SAD, RGB_SAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_HUD, RGB_HUI, XXXXXXX, RGB_TOG, _______,
+ //|--------+--------+--------+--------+--------|
+ RGB_VAD, RGB_VAI, XXXXXXX, _______,
+ //|--------+--------+--------+--------+--------|
+ _______, _______, RGB_MOD, _______
+ //`--------------------------------------------'
+ )
+};
+
+//A description for expressing the layer position in LED mode.
+layer_state_t layer_state_set_user(layer_state_t state) {
+ state = update_tri_layer_state(state, _ARROW, _MACRO, _ADJUST);
+#ifdef RGBLIGHT_ENABLE
+ switch (get_highest_layer(state)) {
+ case _ARROW:
+ rgblight_sethsv_at(HSV_BLUE, 0);
+ break;
+ case _MACRO:
+ rgblight_sethsv_at(HSV_RED, 0);
+ break;
+ case _ADJUST:
+ rgblight_sethsv_at(HSV_PURPLE, 0);
+ break;
+ default: // for any other layers, or the default layer
+ rgblight_sethsv_range( 0, 0, 0, 0, 1);
+ break;
+ }
+ rgblight_set_effect_range( 1, 8);
+#endif
+return state;
+}
+
+int RGB_current_mode;
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ bool result = false;
+ if (record->event.pressed) {
+ #ifdef OLED_DRIVER_ENABLE
+ oled_timer = timer_read32();
+ #endif
+ }
+ switch (keycode) {
+ case SEND_SUM:
+ if (record->event.pressed) {
+ SEND_STRING("_SUM*");
+ }
+ break;
+ case SEND_AVE:
+ if (record->event.pressed) {
+ SEND_STRING("_AVERAGE*");
+ }
+ break;
+ case SEND_CIF:
+ if (record->event.pressed) {
+ SEND_STRING("_COUNTIF*");
+ }
+ break;
+ case SEND_MAX:
+ if (record->event.pressed) {
+ SEND_STRING("_MAX*");
+ }
+ break;
+ case SEND_MIN:
+ if (record->event.pressed) {
+ SEND_STRING("_MIN*");
+ }
+ break;
+ default:
+ result = true;
+ break;
+ }
+
+ return result;
+}
+
+#ifdef OLED_DRIVER_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
+
+void render_layer_state(void) {
+ oled_write_P(PSTR(" "), false);
+ oled_write_P(PSTR("LAYER"), false);
+ oled_write_P(PSTR("Arrow"), layer_state_is(_ARROW));
+ oled_write_P(PSTR("Macro"), layer_state_is(_MACRO));
+ oled_write_P(PSTR("Adjus"), layer_state_is(_ADJUST));
+ oled_write_P(PSTR(" "), false);
+}
+
+void render_keylock_status(led_t led_state) {
+ oled_write_P(PSTR("NumL "), led_state.num_lock);
+}
+
+void render_layer_messages(void) {
+ oled_write_P(PSTR("GETtA 25 For Your Good Job. "), false);
+}
+
+void render_status(void) {
+ /* Show Keyboard Layout */
+ render_layer_state();
+ render_keylock_status(host_keyboard_led_state());
+}
+
+void oled_task_user(void) {
+ static const char PROGMEM font_logo[] = {
+ 0x80,0x81,0x82,0x83,0x84,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,
+
+ 0x85,0x86,0x87,0x88,0x89,
+ 0xa5,0xa6,0xa7,0xa8,0xa9,
+ 0xc5,0xc6,0xc7,0xc8,0xc9,
+
+ 0x8a,0x8b,0x8c,0x8d,0x8e,
+ 0xaa,0xab,0xac,0xad,0xae,
+ 0xca,0xcb,0xcc,0xcd,0xce,0
+ };
+ oled_write_P(font_logo, false);
+
+ render_status(); // Renders the current keyboard state (layer, lock)
+}
+
+#endif
diff --git a/keyboards/getta25/readme.md b/keyboards/getta25/readme.md
new file mode 100644
index 000000000..886e52a2e
--- /dev/null
+++ b/keyboards/getta25/readme.md
@@ -0,0 +1,17 @@
+# getta25
+
+![getta25](https://cdn-ak.f.st-hatena.com/images/fotolife/S/Salicylic_acid3/20191127/20191127005608.png)
+
+This is 25 keys tenkeypad.
+
+* Keyboard Maintainer: [Salicylic_acid3](https://github.com/Salicylic-acid3)
+* Hardware Supported: Getta25 PCB, Pro Micro
+* Hardware Availability: [PCB & Case Data](https://github.com/Salicylic-acid3/PCB_Data), [Booth Shop](https://salicylic-acid3.booth.pm/items/1700006)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make getta25:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+[Build guide](https://salicylic-acid3.hatenablog.com/entry/getta25-rev2-build-guide)
diff --git a/keyboards/getta25/rev1/config.h b/keyboards/getta25/rev1/config.h
new file mode 100644
index 000000000..3ad74695c
--- /dev/null
+++ b/keyboards/getta25/rev1/config.h
@@ -0,0 +1,76 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x3060
+#define DEVICE_VER 0x0013
+#define MANUFACTURER Salicylic_Acid
+#define PRODUCT getta25
+#define DESCRIPTION A custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 6
+
+// wiring of each half
+#define MATRIX_ROW_PINS { D4, C6, D7, E6, B2 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+
+#define RGBLED_NUM 9 // Number of LEDs
+#define RGBLIGHT_ANIMATIONS
+
+#ifndef IOS_DEVICE_ENABLE
+ #define RGBLIGHT_LIMIT_VAL 180
+ #define RGBLIGHT_VAL_STEP 17
+#else
+ #define RGBLIGHT_LIMIT_VAL 50
+ #define RGBLIGHT_VAL_STEP 4
+#endif
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+
+#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
+// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard
+// 120 RGBoff, OLEDoff
+// 120 OLED
+// 330 RGB 6
+// 300 RGB 32
+// 310 OLED & RGB 32
+ #define USB_MAX_POWER_CONSUMPTION 400
+#else
+ // fix iPhone and iPad power adapter issue
+ // iOS device need lessthan 100
+ #define USB_MAX_POWER_CONSUMPTION 100
+#endif
diff --git a/keyboards/getta25/rev1/rev1.c b/keyboards/getta25/rev1/rev1.c
new file mode 100644
index 000000000..520a869e5
--- /dev/null
+++ b/keyboards/getta25/rev1/rev1.c
@@ -0,0 +1 @@
+#include "rev1.h"
diff --git a/keyboards/getta25/rev1/rev1.h b/keyboards/getta25/rev1/rev1.h
new file mode 100644
index 000000000..98f4318a6
--- /dev/null
+++ b/keyboards/getta25/rev1/rev1.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include "getta25.h"
+
+/*
+ * ,-----------------------.
+ * | L05 | L15 | L25 | L35 |
+ * |-----------------------+
+ * | L04 | L14 | L24 | L34 |
+ * |-----------------------------+
+ * | L03 | L13 | L23 | | L43 |
+ * |-----------------------------+
+ * | L02 | L12 | L22 | L32 | L42 |
+ * |-----------------------------+
+ * | L01 | L11 | L21 | | L41 |
+ * |-----------------------------+
+ * | L00 | | L20 | L30 | L40 |
+ * ,-----------------------------'
+ */
+
+#define LAYOUT( \
+ L05, L15, L25, L35, \
+ L04, L14, L24, L34, \
+ L03, L13, L23, L43, \
+ L02, L12, L22, L32, L42, \
+ L01, L11, L21, L41, \
+ L00, L20, L30, L40 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05 }, \
+ {KC_NO, L11, L12, L13, L14, L15 }, \
+ { L20, L21, L22, L23, L24, L25 }, \
+ { L30,KC_NO, L32,KC_NO, L34, L35 }, \
+ { L40, L41, L42, L43,KC_NO,KC_NO } \
+ }
diff --git a/keyboards/getta25/rev1/rules.mk b/keyboards/getta25/rev1/rules.mk
new file mode 100644
index 000000000..fff00a1b5
--- /dev/null
+++ b/keyboards/getta25/rev1/rules.mk
@@ -0,0 +1,3 @@
+# Revision Specific Build Options
+# change yes to no to disable
+#
diff --git a/keyboards/getta25/rules.mk b/keyboards/getta25/rules.mk
new file mode 100644
index 000000000..65aca7613
--- /dev/null
+++ b/keyboards/getta25/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+OLED_DRIVER_ENABLE = yes
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+DEFAULT_FOLDER = getta25/rev1
diff --git a/keyboards/gh60/revc/revc.h b/keyboards/gh60/revc/revc.h
index dda7a0db6..e183f776e 100644
--- a/keyboards/gh60/revc/revc.h
+++ b/keyboards/gh60/revc/revc.h
@@ -18,11 +18,11 @@ inline void gh60_fn_led_on(void) { setPinOutput(F5); writePinLow(F5); }
inline void gh60_esc_led_on(void) { setPinOutput(F6); writePinLow(F6); }
inline void gh60_wasd_leds_on(void) { setPinOutput(F7); writePinLow(F7); }
-inline void gh60_caps_led_off(void) { setPinInput(B2); writePinLow(B2); }
-inline void gh60_poker_leds_off(void) { setPinInput(F4); writePinLow(F4); }
-inline void gh60_fn_led_off(void) { setPinInput(F5); writePinLow(F5); }
-inline void gh60_esc_led_off(void) { setPinInput(F6); writePinLow(F6); }
-inline void gh60_wasd_leds_off(void) { setPinInput(F7); writePinLow(F7); }
+inline void gh60_caps_led_off(void) { setPinInput(B2); }
+inline void gh60_poker_leds_off(void) { setPinInput(F4); }
+inline void gh60_fn_led_off(void) { setPinInput(F5); }
+inline void gh60_esc_led_off(void) { setPinInput(F6); }
+inline void gh60_wasd_leds_off(void) { setPinInput(F7); }
/* GH60 keymap definition macro
* K2C, K31 and K3C are extra keys for ISO
diff --git a/keyboards/gh60/revc/rules.mk b/keyboards/gh60/revc/rules.mk
index c9362b334..fb9ca646f 100644
--- a/keyboards/gh60/revc/rules.mk
+++ b/keyboards/gh60/revc/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-# CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+# CONSOLE_ENABLE = yes # Console for debug
# COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/gh60/satan/keymaps/colemak/rules.mk b/keyboards/gh60/satan/keymaps/colemak/rules.mk
index 53644093d..5cbbc3453 100644
--- a/keyboards/gh60/satan/keymaps/colemak/rules.mk
+++ b/keyboards/gh60/satan/keymaps/colemak/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/gh60/satan/keymaps/default/rules.mk b/keyboards/gh60/satan/keymaps/default/rules.mk
index 53644093d..5cbbc3453 100644
--- a/keyboards/gh60/satan/keymaps/default/rules.mk
+++ b/keyboards/gh60/satan/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk b/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk
index 08e77f9eb..71b35a819 100644
--- a/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk
+++ b/keyboards/gh60/satan/keymaps/isoHHKB/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk b/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk
index 15cabfcd8..7b395f4cc 100644
--- a/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk
+++ b/keyboards/gh60/satan/keymaps/iso_split_rshift/rules.mk
@@ -1,11 +1,11 @@
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/gh60/satan/keymaps/midi/rules.mk b/keyboards/gh60/satan/keymaps/midi/rules.mk
index 87025ed6f..5977347a1 100644
--- a/keyboards/gh60/satan/keymaps/midi/rules.mk
+++ b/keyboards/gh60/satan/keymaps/midi/rules.mk
@@ -2,14 +2,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = yes # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = yes # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/gh60/satan/rules.mk b/keyboards/gh60/satan/rules.mk
index 9bd667535..204509ebc 100644
--- a/keyboards/gh60/satan/rules.mk
+++ b/keyboards/gh60/satan/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/gh80_3000/rules.mk b/keyboards/gh80_3000/rules.mk
index 0da2d6a2f..524303ec2 100644
--- a/keyboards/gh80_3000/rules.mk
+++ b/keyboards/gh80_3000/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= no # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/gingham/matrix.c b/keyboards/gingham/matrix.c
index 790ba9c28..5ac81e791 100644
--- a/keyboards/gingham/matrix.c
+++ b/keyboards/gingham/matrix.c
@@ -150,7 +150,7 @@ static void unselect_row(uint8_t row)
static void unselect_rows(void)
{
for(uint8_t x = 0; x < MATRIX_ROWS; x++) {
- setPinInput(row_pins[x]);
+ setPinInputHigh(row_pins[x]);
}
}
diff --git a/keyboards/gingham/rules.mk b/keyboards/gingham/rules.mk
index 2ef090bd6..f8062eb50 100644
--- a/keyboards/gingham/rules.mk
+++ b/keyboards/gingham/rules.mk
@@ -20,10 +20,10 @@ OPT_DEFS = -DDEBUG_LEVEL=0
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -31,11 +31,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
diff --git a/keyboards/gonnerd/keymaps/default/rules.mk b/keyboards/gonnerd/keymaps/default/rules.mk
index 6de64fcf8..c1019c7f4 100644
--- a/keyboards/gonnerd/keymaps/default/rules.mk
+++ b/keyboards/gonnerd/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/gonnerd/keymaps/tkl/rules.mk b/keyboards/gonnerd/keymaps/tkl/rules.mk
index 09b51e5a0..4026390c4 100644
--- a/keyboards/gonnerd/keymaps/tkl/rules.mk
+++ b/keyboards/gonnerd/keymaps/tkl/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/gonnerd/rules.mk b/keyboards/gonnerd/rules.mk
index d4858ff13..798f96f4c 100644
--- a/keyboards/gonnerd/rules.mk
+++ b/keyboards/gonnerd/rules.mk
@@ -17,10 +17,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/gray_studio/cod67/rules.mk b/keyboards/gray_studio/cod67/rules.mk
index 132db98f4..548af8df8 100644
--- a/keyboards/gray_studio/cod67/rules.mk
+++ b/keyboards/gray_studio/cod67/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = lufa-ms
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/gray_studio/hb85/config.h b/keyboards/gray_studio/hb85/config.h
index dff360ec6..f3fb20ec6 100644
--- a/keyboards/gray_studio/hb85/config.h
+++ b/keyboards/gray_studio/hb85/config.h
@@ -33,3 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 5
#define RGBLIGHT_ANIMATIONS
+
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
diff --git a/keyboards/gray_studio/hb85/hb85.c b/keyboards/gray_studio/hb85/hb85.c
index 21562b9e0..4b3ff64f1 100644
--- a/keyboards/gray_studio/hb85/hb85.c
+++ b/keyboards/gray_studio/hb85/hb85.c
@@ -18,32 +18,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "hb85.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
setPinOutput(D0);
setPinOutput(D1);
- setPinOutput(D4);
setPinOutput(D6);
-
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
}
+ return true;
}
diff --git a/keyboards/gray_studio/hb85/rules.mk b/keyboards/gray_studio/hb85/rules.mk
index ec57b03dc..79b783e42 100644
--- a/keyboards/gray_studio/hb85/rules.mk
+++ b/keyboards/gray_studio/hb85/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/gray_studio/space65/keymaps/billiams/config.h b/keyboards/gray_studio/space65/keymaps/billiams/config.h
new file mode 100644
index 000000000..c2fdc9108
--- /dev/null
+++ b/keyboards/gray_studio/space65/keymaps/billiams/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2019 MechMerlin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
+#define GRAVE_ESC_GUI_OVERRIDE # Always send Escape if GUI is pressed
diff --git a/keyboards/gray_studio/space65/keymaps/billiams/keymap.c b/keyboards/gray_studio/space65/keymaps/billiams/keymap.c
new file mode 100644
index 000000000..9a0a00403
--- /dev/null
+++ b/keyboards/gray_studio/space65/keymaps/billiams/keymap.c
@@ -0,0 +1,85 @@
+/* Copyright 2019 MechMerlin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Qwerty
+ * ,------------------------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | DEL | INS |
+ * |------------------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc | PGUP |
+ * |------------------------------------------------------------------------------------------------+
+ * | Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PGDN |
+ * |------------------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | Up | ESC |
+ * |------------------------------------------------------------------------------------------------+
+ * | Ctrl | Alt | Cmd | Space | Alt | Ctrl | Left | Down | Right |
+ * `------------------------------------------------------------------------------------------------'
+ */
+
+[0] = LAYOUT( \
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, KC_INS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \
+ MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, \
+ KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_ESC, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+ /* 1st Layer
+ * ,------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ | Next |
+ * |------------------------------------------------------------------------------------------------+
+ * | |RGB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| | | | | | Prev |
+ * |------------------------------------------------------------------------------------------------+
+ * | | RGBP | RGPG | RGPK | | | Left| Down| Up |Right| | | Play/Pause | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | Scr- | Scr+ | | | PGUP | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | Fn2 | HOME | PGDN | END |
+ * `------------------------------------------------------------------------------------------------'
+ */
+
+[1] = LAYOUT( \
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, KC_VOLU, KC_MFFD, \
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, \
+ KC_TRNS, RGB_M_P, RGB_M_G, RGB_M_K, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRID, KC_BRIU, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_HOME, KC_PGDN, KC_END \
+ ),
+
+ /* 2nd Layer
+ * ,------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | | RESET |
+ * |------------------------------------------------------------------------------------------------+
+ * | | | | | | | | | |
+ * `------------------------------------------------------------------------------------------------'
+ */
+
+[2] = LAYOUT( \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \
+ ),
+};
diff --git a/keyboards/gray_studio/space65/keymaps/billiams/readme.md b/keyboards/gray_studio/space65/keymaps/billiams/readme.md
new file mode 100644
index 000000000..bf14fbfe9
--- /dev/null
+++ b/keyboards/gray_studio/space65/keymaps/billiams/readme.md
@@ -0,0 +1,80 @@
+## Billiam's Space65 layout (with split backspace)
+
+This layout is optimized for vim users on MacOS with a split backspace.
+
+Settings:
+
+* The `CAPS LOCK` key is a function key.
+* The `ALT` and `CMD` keys are swapped to replicate the Mac layout.
+* RESET is available as `Fn`+ `Right Ctrl` + `ESC`
+* Underglow toggle is available as `Fn` + `Q`.
+* vim-style arrow key bindings H J K L in layer 1
+
+### Initial Installation
+
+I found the instructions to be longer than they had to be, and I ended up having to Google some steps anyway. These are the steps I took to get my keyboard setup, in case you are new to the process.
+
+1. Fork and Clone the qmk_firmware repo locally
+```
+# Choose one:
+git clone git@github.com:qmk/qmk_firmware.git # OR
+git clone https://github.com/qmk/qmk_firmware.git
+```
+2. Customize your layout by starting with a [keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gray_studio/space65/keymaps). I copied the default and changed it to my liking.
+3. Before plugging in your keyboard into your computer, hold `ESC` key down
+4. Plug the keyboard into your computer, which will put the keyboard in bootloader mode.
+5. Build your hex file and flash your keyboard
+```
+make gray_studio/space65:billiams:flash # be in the qmk_firmware directory to do this
+```
+
+Notes:
+- If you are using QMK Toolbox, use `make gray_studio/space65:<keymap>` in the base qmk_firmware directory instead of step 5 above which will create a hex file `gray_studio_space65_billiams.hex` which you can then choose in the toolbox and hit flash
+- If you accidentally loaded the default keymap, then to `RESET` the keyboard and kick it into bootloader mode again, hold the `ESC` key and plug the board in.
+
+Hope this helps!
+
+### 0 Qwerty
+```
+,------------------------------------------------------------------------------------------------.
+| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del | INS |
+|------------------------------------------------------------------------------------------------+
+| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bkspc | PGUP |
+|------------------------------------------------------------------------------------------------+
+| Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter | PGDN |
+|------------------------------------------------------------------------------------------------+
+| Shift | Z | X | C | V | B | N | M | , | . | ?/ | Shift | up | ESC |
+|------------------------------------------------------------------------------------------------+
+| Ctrl | Alt | Cmd | Space | Alt | Ctrl | Left | Down | Right |
+`------------------------------------------------------------------------------------------------'
+```
+
+### 1 Fn Layer
+```
+,------------------------------------------------------------------------------------------------.
+| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |Vol- |Vol+ | Next |
+|------------------------------------------------------------------------------------------------+
+| |RGB T|RGB M| Hue-| Hue+| Sat-| Sat+| Val-| Val+| Spd- | Spd+ | | | | Prev |
+|------------------------------------------------------------------------------------------------+
+| | RGBP | RGBG | RGBK | | | Left| Down| Up |Right| | | Play/Pause | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | Scr- | Scr+ | | |PGUP | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | Fn2 | HOME | PGDN | END |
+`------------------------------------------------------------------------------------------------'
+```
+
+### 2 Fn Layer - Just for bootloader mode button
+```
+,------------------------------------------------------------------------------------------------.
+| | | | | | | | | | | | | | | | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | | | | | | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | | | | | |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | | | | | | | RESET |
+|------------------------------------------------------------------------------------------------+
+| | | | | | | | | |
+`------------------------------------------------------------------------------------------------'
+```
diff --git a/keyboards/gray_studio/space65/rules.mk b/keyboards/gray_studio/space65/rules.mk
index e3909d8dd..887d870a6 100644
--- a/keyboards/gray_studio/space65/rules.mk
+++ b/keyboards/gray_studio/space65/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi_blocker 65_iso_blocker
diff --git a/keyboards/gray_studio/think65/solder/readme.md b/keyboards/gray_studio/think65/solder/readme.md
index e8636bf8a..1d7e4450a 100644
--- a/keyboards/gray_studio/think65/solder/readme.md
+++ b/keyboards/gray_studio/think65/solder/readme.md
@@ -6,8 +6,6 @@ Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
Hardware Supported: Think6.5 Compatible PCB
Hardware Availability: [Geekhack GB](https://geekhack.org/index.php?topic=100166.0)
-**Note:** The `LAYOUT_65_ansi_blocker` LAYOUT macro utilizes the same pins and switch matrix as the hotswap version. Any firmware made with this LAYOUT macro can be flashed on both the Solder (Compatible) version and the Hotswap version of the Think6.5.
-
**Indicator LEDs:** The solder PCB ONLY supports Caps Lock LEDs unlike the Hotswap version that supports Num Lock, Caps Lock, and Scroll Lock.
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/gray_studio/think65/solder/solder.c b/keyboards/gray_studio/think65/solder/solder.c
index 4f40fb4a9..48ed25b19 100644
--- a/keyboards/gray_studio/think65/solder/solder.c
+++ b/keyboards/gray_studio/think65/solder/solder.c
@@ -25,17 +25,9 @@ void matrix_init_kb(void) {
// runs once when the firmware starts up
setPinOutput(C7);
-
matrix_init_user();
}
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
-
- matrix_scan_user();
-}
-
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here
// runs for every action, just before processing by the firmware
@@ -43,15 +35,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
return process_record_user(keycode, record);
}
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
- writePinLow(C7);
- } else {
- writePinHigh(C7);
+bool led_update_kb(led_t led_state) {
+ if(led_update_user(led_state)) {
+ writePin(C7, !led_state.caps_lock);
}
-
- led_set_user(usb_led);
+ return true;
}
-
diff --git a/keyboards/gray_studio/think65/solder/solder.h b/keyboards/gray_studio/think65/solder/solder.h
index 19ee55125..f38306b2b 100644
--- a/keyboards/gray_studio/think65/solder/solder.h
+++ b/keyboards/gray_studio/think65/solder/solder.h
@@ -32,16 +32,16 @@
}
#define LAYOUT_65_ansi_blocker( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
- K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, K3F, \
K40, K41, K43, K46, K4A, K4B, K4D, K4E, K4F \
) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F }, \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
{ K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, K2F }, \
- { KC_NO, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \
+ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, K3F }, \
{ K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
}
diff --git a/keyboards/grid600/press/rules.mk b/keyboards/grid600/press/rules.mk
index fb575b3ab..2d9a649e0 100644
--- a/keyboards/grid600/press/rules.mk
+++ b/keyboards/grid600/press/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/gskt00/rules.mk b/keyboards/gskt00/rules.mk
index 2acbeaa90..f0bbcad81 100755
--- a/keyboards/gskt00/rules.mk
+++ b/keyboards/gskt00/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/hadron/ver2/rules.mk b/keyboards/hadron/ver2/rules.mk
index 3d48d88e7..7e2ebf567 100644
--- a/keyboards/hadron/ver2/rules.mk
+++ b/keyboards/hadron/ver2/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = halfkay
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/halberd/config.h b/keyboards/halberd/config.h
index cf3460b61..57e29e858 100644
--- a/keyboards/halberd/config.h
+++ b/keyboards/halberd/config.h
@@ -44,7 +44,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D7, B4, C7, C6, B6, B5, F7, F6, F5, F4, F1 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
// #define BACKLIGHT_PIN B7
diff --git a/keyboards/halberd/rules.mk b/keyboards/halberd/rules.mk
index 35c693379..145d1f322 100644
--- a/keyboards/halberd/rules.mk
+++ b/keyboards/halberd/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/handwired/42/config.h b/keyboards/handwired/42/config.h
index 3f5060989..c88013f46 100644
--- a/keyboards/handwired/42/config.h
+++ b/keyboards/handwired/42/config.h
@@ -28,7 +28,7 @@
#define MATRIX_ROW_PINS { D2, D3, D0, D1 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/handwired/aek64/config.h b/keyboards/handwired/aek64/config.h
index 7d235358c..a072d562a 100644
--- a/keyboards/handwired/aek64/config.h
+++ b/keyboards/handwired/aek64/config.h
@@ -39,6 +39,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { E0, E1, C0, C1, C2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/handwired/bluepill/bluepill70/chconf.h b/keyboards/handwired/bluepill/bluepill70/chconf.h
index dfb1f9dfb..fdbc4aed0 100644
--- a/keyboards/handwired/bluepill/bluepill70/chconf.h
+++ b/keyboards/handwired/bluepill/bluepill70/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/handwired/bluepill/bluepill70/rules.mk b/keyboards/handwired/bluepill/bluepill70/rules.mk
index e89abca8c..5cf5f3f6c 100644
--- a/keyboards/handwired/bluepill/bluepill70/rules.mk
+++ b/keyboards/handwired/bluepill/bluepill70/rules.mk
@@ -44,4 +44,8 @@ ARMV = 7
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
# This also requires a patch to chibios:
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
-#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 \ No newline at end of file
+#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/ck4x4/chconf.h b/keyboards/handwired/ck4x4/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/handwired/ck4x4/chconf.h
+++ b/keyboards/handwired/ck4x4/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/handwired/ck4x4/rules.mk b/keyboards/handwired/ck4x4/rules.mk
index cd4bc260f..0709f341b 100644
--- a/keyboards/handwired/ck4x4/rules.mk
+++ b/keyboards/handwired/ck4x4/rules.mk
@@ -15,3 +15,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = no # Custom matrix file
DEFAULT_FOLDER = handwired/ck4x4
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/co60/rev1/config.h b/keyboards/handwired/co60/rev1/config.h
index 4d5140daf..2168516d2 100644
--- a/keyboards/handwired/co60/rev1/config.h
+++ b/keyboards/handwired/co60/rev1/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B2, B5, B4, D7, D6, B3, B0 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#ifdef __AVR__
diff --git a/keyboards/handwired/co60/rev6/config.h b/keyboards/handwired/co60/rev6/config.h
index a2c73853c..0a7227fb8 100644
--- a/keyboards/handwired/co60/rev6/config.h
+++ b/keyboards/handwired/co60/rev6/config.h
@@ -41,7 +41,7 @@
#define MATRIX_ROW_PINS { B0, B1, B2, A15, A10 }
#define MATRIX_COL_PINS { A2, A3, A6, B14, B15, A8, A9, A7, B3, B4, C14, C15, C13, B5, B6 }
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/handwired/co60/rev7/config.h b/keyboards/handwired/co60/rev7/config.h
index e13d28f50..98b36b99c 100644
--- a/keyboards/handwired/co60/rev7/config.h
+++ b/keyboards/handwired/co60/rev7/config.h
@@ -43,7 +43,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A10, A9, A3, A4, A5, A6, B0, B1, A15, B3, B4, B5, C13, C14, C15 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/handwired/dactyl_manuform/4x5/config.h b/keyboards/handwired/dactyl_manuform/4x5/config.h
index 1f24c9aca..698418fb7 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/config.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MATRIX_COL_PINS { B5, B4, E6, D7, C6 }
#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 }
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/dactyl_manuform/5x6/config.h b/keyboards/handwired/dactyl_manuform/5x6/config.h
index 413039449..fd0c23961 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/config.h
+++ b/keyboards/handwired/dactyl_manuform/5x6/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN D3
#define RGBLED_NUM 12
diff --git a/keyboards/handwired/dactyl_manuform/5x7/config.h b/keyboards/handwired/dactyl_manuform/5x7/config.h
index 435837498..bf56d0825 100644
--- a/keyboards/handwired/dactyl_manuform/5x7/config.h
+++ b/keyboards/handwired/dactyl_manuform/5x7/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN D3
#define RGBLED_NUM 12
diff --git a/keyboards/handwired/dactyl_manuform/6x6/config.h b/keyboards/handwired/dactyl_manuform/6x6/config.h
index 9bc501c5e..522e98b68 100644
--- a/keyboards/handwired/dactyl_manuform/6x6/config.h
+++ b/keyboards/handwired/dactyl_manuform/6x6/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_ROW_PINS { F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN D3
#define RGBLED_NUM 12
diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
index 7db3ceb75..d315cb180 100644
--- a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
+++ b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
@@ -37,6 +37,8 @@
#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 }
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED, normally used to indicate keyboard state:
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
diff --git a/keyboards/handwired/dactyl_promicro/config.h b/keyboards/handwired/dactyl_promicro/config.h
index 3c0b541d1..c57e76624 100644
--- a/keyboards/handwired/dactyl_promicro/config.h
+++ b/keyboards/handwired/dactyl_promicro/config.h
@@ -30,6 +30,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x3060
diff --git a/keyboards/handwired/daishi/config.h b/keyboards/handwired/daishi/config.h
index b4665bece..16ca49ba1 100644
--- a/keyboards/handwired/daishi/config.h
+++ b/keyboards/handwired/daishi/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { E6, E7, E3, B0, B1, B2, A6, A5, A4, A3, A2, A1, A0, F7, F6, F5, F4, F3 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/handwired/eagleii/config.h b/keyboards/handwired/eagleii/config.h
new file mode 100644
index 000000000..c66cb1813
--- /dev/null
+++ b/keyboards/handwired/eagleii/config.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x9789
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Eagle
+#define PRODUCT II
+#define DESCRIPTION Eagle II Keyboard
+
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 12
+#define MATRIX_ROW_PINS { D0, B5, F1, B2, F7, F6, D4, D7, B4, B7, F5, B0 }
+#define MATRIX_COL_PINS { D2, C6, E6, D5, B3, D3, D1, C7, F0, B6, B1, F4 }
+#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+#define DEBOUNCE 5
diff --git a/keyboards/handwired/eagleii/eagleii.c b/keyboards/handwired/eagleii/eagleii.c
new file mode 100644
index 000000000..5abd5b92f
--- /dev/null
+++ b/keyboards/handwired/eagleii/eagleii.c
@@ -0,0 +1 @@
+#include "eagleii.h"
diff --git a/keyboards/handwired/eagleii/eagleii.h b/keyboards/handwired/eagleii/eagleii.h
new file mode 100644
index 000000000..5f3acac79
--- /dev/null
+++ b/keyboards/handwired/eagleii/eagleii.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K47, K27, K37, K38, K28, K39, K29, K34, K24, K31, K21, K32, K22, K33, K23, K0A, K0B, K46, K44, \
+ K17, K97, K18, K98, K19, K99, K14, K94, K11, K91, K12, K92, K13, K83, K8A, K8B, K43, K4A, \
+ KA0, K77, K88, K78, K89, K79, K84, K74, K81, K71, K82, K72, K93, K1A, K1B, K42, K6B, \
+ K50, K87, K08, K68, K09, K69, K04, K61, K01, K62, K02, K70, K6A, K41, \
+ KB5, K66, K07, K64, K76, K03 \
+) { \
+ { KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K07, K08, K09, K0A, K0B }, \
+ { KC_NO, K11, K12, K13, K14, KC_NO, KC_NO, K17, K18, K19, K1A, K1B }, \
+ { KC_NO, K21, K22, K23, K24, KC_NO, KC_NO, K27, K28, K29, KC_NO, KC_NO }, \
+ { KC_NO, K31, K32, K33, K34, KC_NO, KC_NO, K37, K38, K39, KC_NO, KC_NO }, \
+ { KC_NO, K41, K42, K43, K44, KC_NO, K46, K47, KC_NO, KC_NO, K4A, KC_NO }, \
+ { K50, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
+ { KC_NO, K61, K62, KC_NO, K64, KC_NO, K66, KC_NO, K68, K69, K6A, K6B }, \
+ { K70, K71, K72, KC_NO, K74, KC_NO, K76, K77, K78, K79, KC_NO, KC_NO }, \
+ { KC_NO, K81, K82, K83, K84, KC_NO, KC_NO, K87, K88, K89, K8A, K8B }, \
+ { KC_NO, K91, K92, K93, K94, KC_NO, KC_NO, K97, K98, K99, KC_NO, KC_NO }, \
+ { KA0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KB5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
+}
diff --git a/keyboards/handwired/eagleii/info.json b/keyboards/handwired/eagleii/info.json
new file mode 100644
index 000000000..4c2edde6e
--- /dev/null
+++ b/keyboards/handwired/eagleii/info.json
@@ -0,0 +1,88 @@
+{
+ "keyboard_name": "EagleII",
+ "url": "",
+ "maintainer": "Spaceman",
+ "width": 21.5,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 74,
+ "layout": [
+ {"label":"K47 (F7,C7)", "x":0, "y":0, "w":1.5},
+ {"label":"K27 (F1,C7)", "x":1.5, "y":0},
+ {"label":"K37 (B2,C7)", "x":2.5, "y":0},
+ {"label":"K38 (B2,F0)", "x":3.5, "y":0},
+ {"label":"K28 (F1,F0)", "x":4.5, "y":0},
+ {"label":"K39 (B2,B6)", "x":5.5, "y":0},
+ {"label":"K29 (F1,B6)", "x":6.5, "y":0},
+ {"label":"K34 (B2,B3)", "x":7.5, "y":0},
+ {"label":"K24 (F1,B3)", "x":8.5, "y":0},
+ {"label":"K31 (B2,C6)", "x":9.5, "y":0},
+ {"label":"K21 (F1,C6)", "x":10.5, "y":0},
+ {"label":"K32 (B2,E6)", "x":11.5, "y":0},
+ {"label":"K22 (F1,E6)", "x":12.5, "y":0},
+ {"label":"K33 (B2,D5)", "x":13.5, "y":0},
+ {"label":"K23 (F1,D5)", "x":14.5, "y":0},
+ {"label":"K0A (D0,B1)", "x":16.5, "y":0},
+ {"label":"K0B (D0,F4)", "x":17.5, "y":0},
+ {"label":"K46 (F7,D1)", "x":18.5, "y":0},
+ {"label":"K44 (F7,B3)", "x":20.5, "y":0},
+ {"label":"K17 (B5,C7)", "x":0, "y":1, "w":2},
+ {"label":"K97 (B7,C7)", "x":2, "y":1},
+ {"label":"K18 (B5,F0)", "x":3, "y":1},
+ {"label":"K98 (B7,F0)", "x":4, "y":1},
+ {"label":"K19 (B5,B6)", "x":5, "y":1},
+ {"label":"K99 (B7,B6)", "x":6, "y":1},
+ {"label":"K14 (B5,B3)", "x":7, "y":1},
+ {"label":"K94 (B7,B3)", "x":8, "y":1},
+ {"label":"K11 (B5,C6)", "x":9, "y":1},
+ {"label":"K91 (B7,C6)", "x":10, "y":1},
+ {"label":"K12 (B5,E6)", "x":11, "y":1},
+ {"label":"K92 (B7,E6)", "x":12, "y":1},
+ {"label":"K13 (B5,D5)", "x":13, "y":1},
+ {"label":"K83 (B4,D5)", "x":14, "y":1, "w":1.5},
+ {"label":"K8A (B4,B1)", "x":16.5, "y":1},
+ {"label":"K8B (B4,F4)", "x":17.5, "y":1},
+ {"label":"K43 (F7,D5)", "x":18.5, "y":1},
+ {"label":"K4A (F7,B1)", "x":20.5, "y":1},
+ {"label":"KA0 (F5,D2)", "x":0.25, "y":2, "w":2},
+ {"label":"K77 (D7,C7)", "x":2.25, "y":2},
+ {"label":"K88 (B4,F0)", "x":3.25, "y":2},
+ {"label":"K78 (D7,F0)", "x":4.25, "y":2},
+ {"label":"K89 (B4,B6)", "x":5.25, "y":2},
+ {"label":"K79 (D7,B6)", "x":6.25, "y":2},
+ {"label":"K84 (B4,B3)", "x":7.25, "y":2},
+ {"label":"K74 (D7,B3)", "x":8.25, "y":2},
+ {"label":"K81 (B4,C6)", "x":9.25, "y":2},
+ {"label":"K71 (D7,C6)", "x":10.25, "y":2},
+ {"label":"K82 (B4,E6)", "x":11.25, "y":2},
+ {"label":"K72 (D7,E6)", "x":12.25, "y":2},
+ {"label":"K93 (B7,D5)", "x":13.25, "y":2, "w":2},
+ {"label":"K1A (B5,B1)", "x":16.5, "y":2},
+ {"label":"K1B (B5,F4)", "x":17.5, "y":2},
+ {"label":"K42 (F7,E6)", "x":18.5, "y":2},
+ {"label":"K6B (D4,F4)", "x":20.5, "y":2, "h":2},
+ {"label":"K50 (F6,D2)", "x":0.75, "y":3, "w":2},
+ {"label":"K87 (B4,C7)", "x":2.75, "y":3},
+ {"label":"K08 (D0,F0)", "x":3.75, "y":3},
+ {"label":"K68 (D4,F0)", "x":4.75, "y":3},
+ {"label":"K09 (D0,B6)", "x":5.75, "y":3},
+ {"label":"K69 (D4,B6)", "x":6.75, "y":3},
+ {"label":"K04 (D0,B3)", "x":7.75, "y":3},
+ {"label":"K61 (D4,C6)", "x":8.75, "y":3},
+ {"label":"K01 (D0,C6)", "x":9.75, "y":3},
+ {"label":"K62 (D4,E6)", "x":10.75, "y":3},
+ {"label":"K02 (D0,E6)", "x":11.75, "y":3},
+ {"label":"K70 (D7,D2)", "x":12.75, "y":3, "w":2},
+ {"label":"K6A (D4,B1)", "x":16.5, "y":3, "w":2},
+ {"label":"K41 (F7,C6)", "x":18.5, "y":3},
+ {"label":"KB5 (B0,D3)", "x":0.75, "y":4},
+ {"label":"K66 (D4,D1)", "x":1.75, "y":4},
+ {"label":"K07 (D0,C7)", "x":2.75, "y":4},
+ {"label":"K64 (D4,B3)", "x":3.75, "y":4, "w":8},
+ {"label":"K76 (D7,D1)", "x":11.75, "y":4},
+ {"label":"K03 (D0,D5)", "x":12.75, "y":4, "w":2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/eagleii/keymaps/default/keymap.c b/keyboards/handwired/eagleii/keymaps/default/keymap.c
new file mode 100644
index 000000000..dc26b8049
--- /dev/null
+++ b/keyboards/handwired/eagleii/keymaps/default/keymap.c
@@ -0,0 +1,12 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_LABK, KC_BSLS, KC_7, KC_8, KC_9, KC_F1,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_INS, KC_DEL, KC_SPC, KC_4, KC_5, KC_6, KC_F2,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_1, KC_2, KC_3, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_0, KC_DOT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MENU, KC_RABK
+ ),
+
+};
diff --git a/keyboards/handwired/eagleii/readme.md b/keyboards/handwired/eagleii/readme.md
new file mode 100644
index 000000000..d23e27028
--- /dev/null
+++ b/keyboards/handwired/eagleii/readme.md
@@ -0,0 +1,15 @@
+# Eagle II Keyboard
+
+![Eagle II](https://upload.wikimedia.org/wikipedia/en/a/ae/Eagleiicomp.jpg)
+
+A handwired conversion of an Eagle II computer.
+
+* Keyboard Maintainer: [Spaceman](https://github.com/rionlion100)
+* Hardware Supported: Eagle II Keyboard
+* Hardware Availability: Not available
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/eagleii:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/handwired/eagleii/rules.mk b/keyboards/handwired/eagleii/rules.mk
new file mode 100644
index 000000000..e45af67e5
--- /dev/null
+++ b/keyboards/handwired/eagleii/rules.mk
@@ -0,0 +1,26 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+EXTRAKEY_ENABLE = yes
+CONSOLE_ENABLE = no
+COMMAND_ENABLE = no
+SLEEP_LED_ENABLE = no
+NKRO_ENABLE = no
+BACKLIGHT_ENABLE = no
+AUDIO_ENABLE = no
+RGBLIGHT_ENABLE = no
diff --git a/keyboards/handwired/hacked_motospeed/config.h b/keyboards/handwired/hacked_motospeed/config.h
index d4bf11f23..0035a5e28 100644
--- a/keyboards/handwired/hacked_motospeed/config.h
+++ b/keyboards/handwired/hacked_motospeed/config.h
@@ -50,7 +50,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
-//#define DIODE_DIRECTION COL2ROW
+#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
@@ -245,4 +245,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
-// #define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/lovelive9/config.h b/keyboards/handwired/lovelive9/config.h
index c11a25df6..f1f6f69c5 100644
--- a/keyboards/handwired/lovelive9/config.h
+++ b/keyboards/handwired/lovelive9/config.h
@@ -19,6 +19,8 @@
#define MATRIX_ROW_PINS { NO_PIN }
#define MATRIX_COL_PINS { B4, B6, B2, D7, B1, F7, F6, F5, F4 }
+#define DIODE_DIRECTION COL2ROW
+
#define UNUSED_PINS
/* ws2812 RGB LED */
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h b/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h
new file mode 100644
index 000000000..c54aac318
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#undef MATRIX_COL_PINS
+#define MATRIX_COL_PINS { B3, B7, D0, D1, D2, D3, C6, C7, B5, B6, F7, F6 }
+
+#undef MATRIX_ROW_PINS
+#define MATRIX_ROW_PINS { F0, F1, F4, F5 }
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c b/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c
new file mode 100644
index 000000000..ae490914d
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c
@@ -0,0 +1,123 @@
+/* Copyright 2019 George Koenig
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+#include "ridingqwerty.h"
+
+/* MinOrca
+ ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓
+ ┃ ⎋ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ❦ ⌫ ┃
+ ┠────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────┨
+ ┃ ¶ ⇥ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ 🔢 ↵ ┃
+ ┠──────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───────────┨
+ ┃ " ⇧ │ Z │ X │ C │ V │ B │ N │ M │ , │ 𝔽 . │ ⇧ / ┃
+ ┠──────────┬───┴──────┬─┴────────┼────────┴────────┴──┬─────┴────────┴─────┬──┴───────┬┴───────┬┴───────────┨
+ ┃ { ⎈ │ [ ⌘ │ ( ⌥ │ 🔢 ␣ │ ★ ␣ │ ) ⌥ │ ] ⌘ │ } ⎈ ┃
+ ┗━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━┷━━━━━━━━━━━━┛
+*/
+
+#define LAYOUT_minorca( \
+ KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11, \
+ KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KB11, \
+ KC00, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11, \
+ KD00, KD02, KD03, KD04, KD07, KD09, KD10, KD11 \
+) { \
+ { KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11 }, \
+ { KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KC_NO, KB11 }, \
+ { KC00, KC_NO, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11 }, \
+ { KD00, KC_NO, KD02, KD03, KD04, KC_NO, KC_NO, KD07, KC_NO, KD09, KD10, KD11 } \
+}
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = {
+ {KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SC(BSPC) },
+ {ED(TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, NM(SCLN) },
+ {LS(QUOT), XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK(DOT), RS(SLSH) },
+ {LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
+/*
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
+ //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
+ //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
+ //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
+*/
+
+
+ },
+#ifdef UNICODE_H
+ [_RUNE] = {
+ {KC_ESC, X(INGWZ), X(WUNJO), X(EHWAZ), X(RAIDO), X(TIWAZ), X(IWAZ), X(UR), X(ISAZ), X(ETHEL), X(PERTH), SC(BSPC) },
+ {ED(TAB), X(ANSUZ), X(SOWIL), X(DAGAZ), X(FE), X(GEBO), X(HAGLZ), X(JERAN), X(KAUNA), X(LAUKZ), XXXXXXX, NM(SCLN) },
+ {MT_QUOT, XXXXXXX, X(ALGIZ), X(THURS), X(KAUNA), X(WUNJO), X(BEORC), X(NAUDZ), X(MANNZ), KC_COMM, FK(DOT), RS(SLSH) },
+ {LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
+ },
+#endif
+ [_EDITOR] = {
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
+ {KC_GRV, _______, _______, KC_END, _______, KC_F5, _______, _______, KC_INS, _______, KC_PGUP, KC_DELT },
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
+ {_______, KC_HOME, _______, KC_DELT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_SCLN },
+ //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
+ {_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGDN, _______, KC_SCLN, KC_QUOT, KC_BSLS },
+ //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
+ {_______, XXXXXXX, _______, _______, KC_EQL, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
+ //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
+ },
+ [_NUMBER] = {
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
+ {KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
+ {_______, KC_4, KC_5, KC_6, KC_PAST, _______, KC_PPLS, KC_4, KC_5, KC_6, XXXXXXX, _______ },
+ //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
+ {_______, KC_7, KC_8, KC_9, KC_SLSH, _______, _______, KC_MINS, KC_1, KC_2, KC_3, _______ },
+ //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
+ {_______, XXXXXXX, KC_0, _______, _______, XXXXXXX, XXXXXXX, KC_0, XXXXXXX, KC_DOT, _______, _______ }
+ //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
+ },
+ [_SYMBOL] = {
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
+ {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT },
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
+ {_______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, XXXXXXX, _______ },
+ //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
+ {_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_BSLS },
+ //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
+ {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
+ //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
+ },
+ [_SECRET] = {
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
+ {RESET, _______, _______, _______, SECRET0, SECRET1, _______, _______, _______, _______, VERSION, _______ },
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
+ {_______, SECRET4, SECRET8, DEBUG, _______, _______, _______, _______, _______, SECRET7, XXXXXXX, MAKE },
+ //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
+ {_______, XXXXXXX, SECRET6, _______, SECRET2, SECRET5, _______, _______, SECRET3, _______, _______, _______ },
+ //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
+ {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
+ //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
+ },
+ [_F_KEYS] = {
+ //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
+ {KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 },
+ //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______ },
+ //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
+ {_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
+ //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
+ {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
+ //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
+ },
+};
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md b/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md
new file mode 100644
index 000000000..4f0b3564b
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md
@@ -0,0 +1 @@
+# Handwire of Minorca using teensy 2.0
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk b/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk
new file mode 100644
index 000000000..ac798576a
--- /dev/null
+++ b/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk
@@ -0,0 +1,10 @@
+MCU = atmega32u4
+BOOTLOADER = halfkay
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+UNICODE_ENABLE = no # Unicode
+UNICODEMAP_ENABLE = yes # Unicode Map
diff --git a/keyboards/handwired/nicekey/config.h b/keyboards/handwired/nicekey/config.h
index 4af56cc52..9c1b18117 100644
--- a/keyboards/handwired/nicekey/config.h
+++ b/keyboards/handwired/nicekey/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B6 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.c b/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.c
deleted file mode 100644
index 8c5a87f35..000000000
--- a/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#include "hal.h"
-
-// Value to place in RTC backup register 10 for persistent bootloader mode
-#define RTC_BOOTLOADER_FLAG 0x424C
-
-/**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
-#if HAL_USE_PAL || defined(__DOXYGEN__)
-const PALConfig pal_default_config =
-{
- {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
- {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
- {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
- {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
- {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
-};
-#endif
-
-/*
- * Early initialization code.
- * This initialization must be performed just after stack setup and before
- * any other initialization.
- */
-void __early_init(void) {
-
- stm32_clock_init();
-}
-
-/*
- * Board-specific initialization code.
- */
-void boardInit(void) {
- //JTAG-DP Disabled and SW-DP Enabled
- AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
- //Set backup register DR10 to enter bootloader on reset
- BKP->DR10 = RTC_BOOTLOADER_FLAG;
-}
diff --git a/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.h b/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.h
deleted file mode 100644
index 9427adabf..000000000
--- a/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Setup for a Generic STM32F103 board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F103
-#define BOARD_NAME "Generic STM32F103x board"
-
-/*
- * Board frequencies.
- */
-#define STM32_LSECLK 32768
-#define STM32_HSECLK 8000000
-
-/*
- * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
- */
-#define STM32F103xB
-
-/*
- * IO pins assignments
- */
-
-/* on-board */
-
-#define GPIOA_LED 8
-#define GPIOD_OSC_IN 0
-#define GPIOD_OSC_OUT 1
-
-/* In case your board has a "USB enable" hardware
- controlled by a pin, define it here. (It could be just
- a 1.5k resistor connected to D+ line.)
-*/
-/*
-#define GPIOB_USB_DISC 10
-*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- *
- * The digits have the following meaning:
- * 0 - Analog input.
- * 1 - Push Pull output 10MHz.
- * 2 - Push Pull output 2MHz.
- * 3 - Push Pull output 50MHz.
- * 4 - Digital input.
- * 5 - Open Drain output 10MHz.
- * 6 - Open Drain output 2MHz.
- * 7 - Open Drain output 50MHz.
- * 8 - Digital input with PullUp or PullDown resistor depending on ODR.
- * 9 - Alternate Push Pull output 10MHz.
- * A - Alternate Push Pull output 2MHz.
- * B - Alternate Push Pull output 50MHz.
- * C - Reserved.
- * D - Alternate Open Drain output 10MHz.
- * E - Alternate Open Drain output 2MHz.
- * F - Alternate Open Drain output 50MHz.
- * Please refer to the STM32 Reference Manual for details.
- */
-
-/*
- * Port A setup.
- * Everything input with pull-up except:
- * PA2 - Alternate output (USART2 TX).
- * PA3 - Normal input (USART2 RX).
- * PA9 - Alternate output (USART1 TX).
- * PA10 - Normal input (USART1 RX).
- */
-#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */
-#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */
-#define VAL_GPIOAODR 0xFFFFFFFF
-
-/*
- * Port B setup.
- * Everything input with pull-up except:
- * PB10 - Push Pull output (USB switch).
- */
-#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
-#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */
-#define VAL_GPIOBODR 0xFFFFFFFF
-
-/*
- * Port C setup.
- * Everything input with pull-up except:
- * PC13 - Push Pull output (LED).
- */
-#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */
-#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */
-#define VAL_GPIOCODR 0xFFFFFFFF
-
-/*
- * Port D setup.
- * Everything input with pull-up except:
- * PD0 - Normal input (XTAL).
- * PD1 - Normal input (XTAL).
- */
-#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */
-#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */
-#define VAL_GPIODODR 0xFFFFFFFF
-
-/*
- * Port E setup.
- * Everything input with pull-up except:
- */
-#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */
-#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */
-#define VAL_GPIOEODR 0xFFFFFFFF
-
-/*
- * USB bus activation macro, required by the USB driver.
- */
-/* The point is that most of the generic STM32F103* boards
- have a 1.5k resistor connected on one end to the D+ line
- and on the other end to some pin. Or even a slightly more
- complicated "USB enable" circuit, controlled by a pin.
- That should go here.
-
- However on some boards (e.g. one that I have), there's no
- such hardware. In which case it's better to not do anything.
-*/
-/*
-#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT);
-
-/*
- * USB bus de-activation macro, required by the USB driver.
- */
-/*
-#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC)
-*/
-#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12);
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* _BOARD_H_ */
diff --git a/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.mk b/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.mk
deleted file mode 100644
index 6b8b312fd..000000000
--- a/keyboards/handwired/onekey/bluepill/boards/GENERIC_STM32_F103/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
diff --git a/keyboards/handwired/onekey/bluepill/chconf.h b/keyboards/handwired/onekey/bluepill/chconf.h
index bbd9b2da6..9299be587 100644
--- a/keyboards/handwired/onekey/bluepill/chconf.h
+++ b/keyboards/handwired/onekey/bluepill/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/handwired/onekey/bluepill/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/handwired/onekey/bluepill/ld/STM32F103x8_stm32duino_bootloader.ld
deleted file mode 100644
index d0688ef60..000000000
--- a/keyboards/handwired/onekey/bluepill/ld/STM32F103x8_stm32duino_bootloader.ld
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * ST32F103xB memory setup for use with the maplemini bootloader.
- * You will have to
- * #define CORTEX_VTOR_INIT 0x5000
- * in your projects chconf.h
- */
-MEMORY
-{
- flash0 : org = 0x08002000, len = 64k - 0x2000
- flash1 : org = 0x00000000, len = 0
- flash2 : org = 0x00000000, len = 0
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x20000000, len = 20k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash0);
-REGION_ALIAS("XTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash0);
-REGION_ALIAS("TEXT_FLASH_LMA", flash0);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash0);
-REGION_ALIAS("RODATA_FLASH_LMA", flash0);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash0);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash0);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/handwired/onekey/bluepill/rules.mk b/keyboards/handwired/onekey/bluepill/rules.mk
index 69436650b..83a81a56b 100644
--- a/keyboards/handwired/onekey/bluepill/rules.mk
+++ b/keyboards/handwired/onekey/bluepill/rules.mk
@@ -4,7 +4,11 @@ MCU = STM32F103
# GENERIC STM32F103C8T6 board - stm32duino bootloader
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
-BOARD = GENERIC_STM32_F103
+BOARD = STM32_F103_STM32DUINO
DFU_ARGS = -d 1eaf:0003 -a2 -R
DFU_SUFFIX_ARGS = -v 1eaf -p 0003
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h
index 64a447481..652a99cab 100644
--- a/keyboards/handwired/onekey/config.h
+++ b/keyboards/handwired/onekey/config.h
@@ -29,6 +29,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 1
#define MATRIX_COLS 1
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/onekey/stm32f0_disco/chconf.h b/keyboards/handwired/onekey/stm32f0_disco/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/handwired/onekey/stm32f0_disco/chconf.h
+++ b/keyboards/handwired/onekey/stm32f0_disco/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/handwired/onekey/stm32f0_disco/rules.mk b/keyboards/handwired/onekey/stm32f0_disco/rules.mk
index fe5e3f824..d8928e9ec 100644
--- a/keyboards/handwired/onekey/stm32f0_disco/rules.mk
+++ b/keyboards/handwired/onekey/stm32f0_disco/rules.mk
@@ -1,2 +1,6 @@
# MCU name
MCU = STM32F072
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/onekey/teensy_32/chconf.h b/keyboards/handwired/onekey/teensy_32/chconf.h
index 3294ac7ee..1919fcb97 100644
--- a/keyboards/handwired/onekey/teensy_32/chconf.h
+++ b/keyboards/handwired/onekey/teensy_32/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/handwired/onekey/teensy_32/ld/MK20DX256.ld b/keyboards/handwired/onekey/teensy_32/ld/MK20DX256.ld
deleted file mode 100644
index 66bc6b81e..000000000
--- a/keyboards/handwired/onekey/teensy_32/ld/MK20DX256.ld
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * MK20DX256 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x400
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 256k - 0x410
- flash3 : org = 0x00000000, len = 0
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFF8000, len = 64k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk
index 97171611e..2c411c0eb 100644
--- a/keyboards/handwired/onekey/teensy_32/rules.mk
+++ b/keyboards/handwired/onekey/teensy_32/rules.mk
@@ -39,3 +39,7 @@ MCU = cortex-m4
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
# I.e. 6 for Teensy LC; 7 for Teensy 3.x
ARMV = 7
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/onekey/teensy_lc/chconf.h b/keyboards/handwired/onekey/teensy_lc/chconf.h
index 3294ac7ee..1919fcb97 100644
--- a/keyboards/handwired/onekey/teensy_lc/chconf.h
+++ b/keyboards/handwired/onekey/teensy_lc/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/handwired/onekey/teensy_lc/ld/MKL26Z64.ld b/keyboards/handwired/onekey/teensy_lc/ld/MKL26Z64.ld
deleted file mode 100644
index c4ca8b874..000000000
--- a/keyboards/handwired/onekey/teensy_lc/ld/MKL26Z64.ld
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com
- * (C) 2016 flabbergast <s3+flabbergast@sdfeu.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-/*
- * KL26Z64 memory setup.
- */
-MEMORY
-{
- flash0 : org = 0x00000000, len = 0x100
- flash1 : org = 0x00000400, len = 0x10
- flash2 : org = 0x00000410, len = 62k - 0x410
- flash3 : org = 0x0000F800, len = 2k
- flash4 : org = 0x00000000, len = 0
- flash5 : org = 0x00000000, len = 0
- flash6 : org = 0x00000000, len = 0
- flash7 : org = 0x00000000, len = 0
- ram0 : org = 0x1FFFF800, len = 8k
- ram1 : org = 0x00000000, len = 0
- ram2 : org = 0x00000000, len = 0
- ram3 : org = 0x00000000, len = 0
- ram4 : org = 0x00000000, len = 0
- ram5 : org = 0x00000000, len = 0
- ram6 : org = 0x00000000, len = 0
- ram7 : org = 0x00000000, len = 0
-}
-
-/* Flash region for the configuration bytes.*/
-SECTIONS
-{
- .cfmprotect : ALIGN(4) SUBALIGN(4)
- {
- KEEP(*(.cfmconfig))
- } > flash1
-}
-
-/* For each data/text section two region are defined, a virtual region
- and a load region (_LMA suffix).*/
-
-/* Flash region to be used for exception vectors.*/
-REGION_ALIAS("VECTORS_FLASH", flash0);
-REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
-
-/* Flash region to be used for constructors and destructors.*/
-REGION_ALIAS("XTORS_FLASH", flash2);
-REGION_ALIAS("XTORS_FLASH_LMA", flash2);
-
-/* Flash region to be used for code text.*/
-REGION_ALIAS("TEXT_FLASH", flash2);
-REGION_ALIAS("TEXT_FLASH_LMA", flash2);
-
-/* Flash region to be used for read only data.*/
-REGION_ALIAS("RODATA_FLASH", flash2);
-REGION_ALIAS("RODATA_FLASH_LMA", flash2);
-
-/* Flash region to be used for various.*/
-REGION_ALIAS("VARIOUS_FLASH", flash2);
-REGION_ALIAS("VARIOUS_FLASH_LMA", flash2);
-
-/* Flash region to be used for RAM(n) initialization data.*/
-REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2);
-
-/* RAM region to be used for Main stack. This stack accommodates the processing
- of all exceptions and interrupts.*/
-REGION_ALIAS("MAIN_STACK_RAM", ram0);
-
-/* RAM region to be used for the process stack. This is the stack used by
- the main() function.*/
-REGION_ALIAS("PROCESS_STACK_RAM", ram0);
-
-/* RAM region to be used for data segment.*/
-REGION_ALIAS("DATA_RAM", ram0);
-REGION_ALIAS("DATA_RAM_LMA", flash2);
-
-/* RAM region to be used for BSS segment.*/
-REGION_ALIAS("BSS_RAM", ram0);
-
-/* RAM region to be used for the default heap.*/
-REGION_ALIAS("HEAP_RAM", ram0);
-
-__eeprom_workarea_start__ = ORIGIN(flash3);
-__eeprom_workarea_size__ = LENGTH(flash3);
-__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__;
-
-/* Generic rules inclusion.*/
-INCLUDE rules.ld
diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk
index 7859f6d74..32ab07d9c 100644
--- a/keyboards/handwired/onekey/teensy_lc/rules.mk
+++ b/keyboards/handwired/onekey/teensy_lc/rules.mk
@@ -39,3 +39,7 @@ MCU = cortex-m0plus
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
# I.e. 6 for Teensy LC; 7 for Teensy 3.x
ARMV = 6
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/owlet60/matrix.c b/keyboards/handwired/owlet60/matrix.c
index 994f527ec..dafc19fcc 100644
--- a/keyboards/handwired/owlet60/matrix.c
+++ b/keyboards/handwired/owlet60/matrix.c
@@ -215,10 +215,7 @@ void matrix_init(void) {
matrix_init_quantum();
setPinInput(D5);
- writePinLow(D5);
-
- setPinInput(B0);
- writePinLow(B0);
+ setPinInput(B0);
}
// modified for per col read matrix scan
diff --git a/keyboards/handwired/splittest/config.h b/keyboards/handwired/splittest/config.h
index 56574f752..3ff8547fc 100644
--- a/keyboards/handwired/splittest/config.h
+++ b/keyboards/handwired/splittest/config.h
@@ -33,6 +33,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 2
#define MATRIX_COLS 1
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/steamvan/rev1/config.h b/keyboards/handwired/steamvan/rev1/config.h
index f47dc90c1..78e46b343 100644
--- a/keyboards/handwired/steamvan/rev1/config.h
+++ b/keyboards/handwired/steamvan/rev1/config.h
@@ -43,7 +43,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, A10, B9, B6, B5, B4, B3, A15 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/handwired/tennie/config.h b/keyboards/handwired/tennie/config.h
index 20795b048..d26cb4c61 100644
--- a/keyboards/handwired/tennie/config.h
+++ b/keyboards/handwired/tennie/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D7, E6, B4, B5 }
#define UNUSED_PINS { B1, B2, B3, B6, F4, F5, F6, F7 D1}
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/*
diff --git a/keyboards/handwired/wulkan/config.h b/keyboards/handwired/wulkan/config.h
index 4a9cbada7..628206535 100644
--- a/keyboards/handwired/wulkan/config.h
+++ b/keyboards/handwired/wulkan/config.h
@@ -17,6 +17,8 @@
#define MATRIX_ROW_PINS { B8, A0, A1, A2 }
#define MATRIX_COL_PINS { B13, B14, B15, B9, B7, B6, B5, B4, B3, B2, B1, B0 }
+#define DIODE_DIRECTION COL2ROW
+
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/hecomi/alpha/config.h b/keyboards/hecomi/alpha/config.h
index dbc94454f..3600eb717 100644
--- a/keyboards/hecomi/alpha/config.h
+++ b/keyboards/hecomi/alpha/config.h
@@ -48,7 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SOFT_SERIAL_PIN D1 // or D1, D2, D3, E6
//#define USE_I2C
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/*
diff --git a/keyboards/hecomi/alpha/rules.mk b/keyboards/hecomi/alpha/rules.mk
index 83afff326..0f0b632b1 100644
--- a/keyboards/hecomi/alpha/rules.mk
+++ b/keyboards/hecomi/alpha/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/hecomi/rules.mk b/keyboards/hecomi/rules.mk
index 28febe217..ad2178e9e 100644
--- a/keyboards/hecomi/rules.mk
+++ b/keyboards/hecomi/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
DEFAULT_FOLDER = hecomi/alpha
diff --git a/keyboards/helix/pico/keymaps/default/rules.mk b/keyboards/helix/pico/keymaps/default/rules.mk
index 764b07300..c08445732 100644
--- a/keyboards/helix/pico/keymaps/default/rules.mk
+++ b/keyboards/helix/pico/keymaps/default/rules.mk
@@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+EXTRAKEY_ENABLE = yes # Audio control and System control
AUDIO_ENABLE = yes # Audio output on port B5
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
diff --git a/keyboards/helix/rev2/split_util.c b/keyboards/helix/rev2/split_util.c
index 89df43e27..9d31d0dec 100644
--- a/keyboards/helix/rev2/split_util.c
+++ b/keyboards/helix/rev2/split_util.c
@@ -20,18 +20,22 @@
#endif
#ifndef SPLIT_USB_TIMEOUT
- #define SPLIT_USB_TIMEOUT 2500
+# define SPLIT_USB_TIMEOUT 2000
+#endif
+
+#ifndef SPLIT_USB_TIMEOUT_POLL
+# define SPLIT_USB_TIMEOUT_POLL 10
#endif
volatile bool isLeftHand = true;
bool waitForUsb(void) {
- for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) {
- // This will return true of a USB connection has been established
+ for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) {
+ // This will return true if a USB connection has been established
if (UDADDR & _BV(ADDEN)) {
return true;
}
- wait_ms(100);
+ wait_ms(SPLIT_USB_TIMEOUT_POLL);
}
// Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow
diff --git a/keyboards/helix/rules.mk b/keyboards/helix/rules.mk
index 579262fe7..54a4d774f 100644
--- a/keyboards/helix/rules.mk
+++ b/keyboards/helix/rules.mk
@@ -17,10 +17,10 @@ BOOTLOADER = caterina
#
# See TOP/docs/config_options.md for more information.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/hhkb/rules.mk b/keyboards/hhkb/rules.mk
index a7a40aa63..fb1538d8a 100644
--- a/keyboards/hhkb/rules.mk
+++ b/keyboards/hhkb/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file for the HHKB
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/hid_liber/rules.mk b/keyboards/hid_liber/rules.mk
index 3642d8074..a0f881731 100755
--- a/keyboards/hid_liber/rules.mk
+++ b/keyboards/hid_liber/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
@@ -26,7 +26,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/hifumi/rules.mk b/keyboards/hifumi/rules.mk
index 33c8d6178..539fb7790 100644
--- a/keyboards/hifumi/rules.mk
+++ b/keyboards/hifumi/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/hineybush/h87a/keymaps/wkl/keymap.c b/keyboards/hineybush/h87a/keymaps/wkl/keymap.c
index 72b4d4e44..e3e410823 100644
--- a/keyboards/hineybush/h87a/keymaps/wkl/keymap.c
+++ b/keyboards/hineybush/h87a/keymaps/wkl/keymap.c
@@ -59,7 +59,6 @@ void led_set_user(uint8_t usb_led) {
writePinLow(D5);
} else {
setPinInput(D5);
- writePinLow(D5);
}
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
@@ -67,7 +66,6 @@ void led_set_user(uint8_t usb_led) {
writePinLow(E6);
} else {
setPinInput(E6);
- writePinLow(E6);
}
}
diff --git a/keyboards/hineybush/h87a/rules.mk b/keyboards/hineybush/h87a/rules.mk
index 2c5bc96c6..db167b5ae 100644
--- a/keyboards/hineybush/h87a/rules.mk
+++ b/keyboards/hineybush/h87a/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/hineybush/h88/h88.c b/keyboards/hineybush/h88/h88.c
index 46d639390..1f702e9e9 100644
--- a/keyboards/hineybush/h88/h88.c
+++ b/keyboards/hineybush/h88/h88.c
@@ -54,7 +54,6 @@ void led_set_user(uint8_t usb_led) {
writePinLow(D5);
} else {
setPinInput(D5);
- writePinLow(D5);
}
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
@@ -62,7 +61,6 @@ void led_set_user(uint8_t usb_led) {
writePinLow(E6);
} else {
setPinInput(E6);
- writePinLow(E6);
}
}
diff --git a/keyboards/hineybush/hineyg80/rules.mk b/keyboards/hineybush/hineyg80/rules.mk
index 7218e1e1b..1aa337931 100644
--- a/keyboards/hineybush/hineyg80/rules.mk
+++ b/keyboards/hineybush/hineyg80/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/honeycomb/rules.mk b/keyboards/honeycomb/rules.mk
index 05a3cff00..19852d7ec 100755
--- a/keyboards/honeycomb/rules.mk
+++ b/keyboards/honeycomb/rules.mk
@@ -14,11 +14,11 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-#MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+#MOUSEKEY_ENABLE = yes # Mouse keys
POINTING_DEVICE_ENABLE = yes # Generic Pointer, not as big as mouse keys hopefully.
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/hotdox/keymaps/ninjonas/README.md b/keyboards/hotdox/keymaps/ninjonas/README.md
index 5cbfacf9f..d761bf9c9 100644
--- a/keyboards/hotdox/keymaps/ninjonas/README.md
+++ b/keyboards/hotdox/keymaps/ninjonas/README.md
@@ -32,7 +32,7 @@ This keymap is designed based off my typing habits and is subject to change. Inf
### QWERTY
```c
-/* Keymap 0: QWERTY
+/* QWERTY
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
@@ -43,7 +43,7 @@ This keymap is designed based off my typing habits and is subject to change. Inf
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
+ * | | | Alt |  | Ctl | | BkSP | Del |LOWER | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Up | Down | | Left | Right|
@@ -57,16 +57,16 @@ This keymap is designed based off my typing habits and is subject to change. Inf
### LOWER
```c
-/* Keymap 1: LOWER
+/* LOWER
*
* ,--------------------------------------------------. ,----------------------------------------------------.
* | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | | | |KC_BRU| Play | Mute | | | | PgUp | Home | Up | End | | |
+ * | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | |KC_BRD| Next |VolUp |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
+ * | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | | Prev |VolDn | | | | | | | | | |
+ * | | | | Prev |VolDn | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
* | | | | | | | | | |M_CODE | |
* `----------------------------------' `-----------------------------------'
@@ -82,16 +82,16 @@ This keymap is designed based off my typing habits and is subject to change. Inf
### RAISE
```c
-/* Keymap 2: RAISE
+/* RAISE
*
* ,--------------------------------------------------. ,----------------------------------------------------.
- * | | | | |K_CSCN| | | | | | | | | | |
+ * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | M_MAKE | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
+ * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | M_VRSN | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
+ * | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | M_FLSH | | | | | | | | | | | | | | |
+ * | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `-----------------------------------'
diff --git a/keyboards/hotdox/keymaps/ninjonas/keymap.c b/keyboards/hotdox/keymaps/ninjonas/keymap.c
index eea86200c..6637eb3b3 100644
--- a/keyboards/hotdox/keymaps/ninjonas/keymap.c
+++ b/keyboards/hotdox/keymaps/ninjonas/keymap.c
@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "ninjonas.h"
+#include "ninjonas.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
@@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
+ * | | | Alt |  | Ctl | | BkSP | Del |LOWER | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Up | Down | | Left | Right|
@@ -41,10 +41,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_ergodox_wrapper(
// LEFT HAND
_____________________NUM_LEFT_______________________, KC_MPLY,
- _____________________QWERTY_L1______________________, KC_NO,
+ _____________________QWERTY_L1______________________, XXXXXXX,
_____________________QWERTY_L2______________________,
_____________________QWERTY_L3______________________, T_LBRC,
- M_SHFT, KC_NO, ________MOD_LEFT_________,
+ XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
// LEFT THUMB
KC_UP, KC_DOWN,
KC_HOME,
@@ -53,10 +53,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//RIGHT HAND
K_LOCK, _____________________NUM_RIGHT______________________,
- KC_NO, _____________________QWERTY_R1______________________,
+ XXXXXXX,_____________________QWERTY_R1______________________,
_____________________QWERTY_R2______________________,
T_RBRC, _____________________QWERTY_R3______________________,
- ________MOD_RIGHT________, M_XXX1, M_PYNV,
+ ________MOD_RIGHT________, XXXXXXX, XXXXXXX,
// RIGHT THUMB
KC_LEFT, KC_RGHT,
KC_PGUP,
@@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
* | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | = |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
+ * | | | Alt |  | Ctl | | BkSP | Del |LOWER | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Up | Down | | Left | Right|
@@ -88,10 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DVORAK] = LAYOUT_ergodox_wrapper(
// LEFT HAND
_____________________NUM_LEFT_______________________, KC_MPLY,
- _____________________DVORAK_L1______________________, KC_NO,
+ _____________________DVORAK_L1______________________, XXXXXXX,
_____________________DVORAK_L2______________________,
_____________________DVORAK_L3______________________, T_LBRC,
- M_SHFT, KC_NO, ________MOD_LEFT_________,
+ XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
// LEFT THUMB
KC_UP, KC_DOWN,
KC_HOME,
@@ -100,10 +100,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//RIGHT HAND
K_LOCK, _____________________NUM_RIGHT______________________,
- KC_NO, _____________________DVORAK_R1______________________,
+ XXXXXXX,_____________________DVORAK_R1______________________,
_____________________DVORAK_R2______________________,
T_RBRC, _____________________DVORAK_R3______________________,
- ________MOD_RIGHT________, M_XXX1, M_PYNV,
+ ________MOD_RIGHT________, XXXXXXX, XXXXXXX,
// RIGHT THUMB
KC_LEFT, KC_RGHT,
KC_PGUP,
@@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | K | M | , | . | / | = |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * |M_SHFT| | Alt |  | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
+ * | | | Alt |  | Ctl | | BkSP | Del |LOWER | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Up | Down | | Left | Right|
@@ -135,10 +135,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = LAYOUT_ergodox_wrapper(
// LEFT HAND
_____________________NUM_LEFT_______________________, KC_MPLY,
- _____________________COLEMAK_L1_____________________, KC_NO,
+ _____________________COLEMAK_L1_____________________, XXXXXXX,
_____________________COLEMAK_L2_____________________,
_____________________COLEMAK_L3_____________________, T_LBRC,
- M_SHFT, KC_NO, ________MOD_LEFT_________,
+ XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
// LEFT THUMB
KC_UP, KC_DOWN,
KC_HOME,
@@ -147,10 +147,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//RIGHT HAND
K_LOCK, _____________________NUM_RIGHT______________________,
- KC_NO, _____________________COLEMAK_R1_____________________,
+ XXXXXXX,_____________________COLEMAK_R1_____________________,
_____________________COLEMAK_R2_____________________,
T_RBRC, _____________________COLEMAK_R3_____________________,
- ________MOD_RIGHT________, M_XXX1, M_PYNV,
+ ________MOD_RIGHT________, XXXXXXX, XXXXXXX,
// RIGHT THUMB
KC_LEFT, KC_RGHT,
KC_PGUP,
@@ -163,11 +163,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,--------------------------------------------------. ,----------------------------------------------------.
* | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | | | |KC_BRU| Play | Mute | | | | PgUp | Home | Up | End | | |
+ * | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | |KC_BRD| Next |VolUp |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
+ * | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | | Prev |VolDn | | | | | | | | | |
+ * | | | | Prev |VolDn | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
* | | | | | | | | | |M_CODE | |
* `----------------------------------' `-----------------------------------'
@@ -182,9 +182,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = LAYOUT_ergodox_wrapper(
//LEFT HAND
_____________________FUNC_LEFT______________________, _______,
- _______, _______, _______, _________MEDIA_1_________, _______,
- _______, _______, _______, _________MEDIA_2_________,
- _______, _______, _______, _________MEDIA_3_________, _______,
+ _____________________LOWER_L1_______________________, _______,
+ _____________________LOWER_L2_______________________,
+ _____________________LOWER_L3_______________________, _______,
_______, _______, _______, _______, _______,
// LEFT THUMB
_______, _______,
@@ -194,9 +194,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//RIGHT HAND
_______, _____________________FUNC_RIGHT_____________________,
- _______, _______________NAV_1______________, _______, _______,
- _______________NAV_2______________, K_LOCK, _______,
- _______, _______, _______, _______, _______, _______, _______,
+ _______, _____________________LOWER_R1_______________________,
+ _____________________LOWER_R2_______________________,
+ _______, _____________________LOWER_R3_______________________,
_______, _______, _______, M_CODE, _______,
// RIGHT THUMB
_______, _______,
@@ -208,7 +208,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* RAISE
*
* ,--------------------------------------------------. ,----------------------------------------------------.
- * | | | | |K_CSCN| | | | | | | | | | |
+ * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
* | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
@@ -228,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_RAISE] = LAYOUT_ergodox_wrapper(
//LEFT HAND
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_CSCN, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX,
XXXXXXX, XXXXXXX, _____________MOUSE_2______________,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@@ -255,11 +255,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* ADJUST
*
* ,--------------------------------------------------. ,----------------------------------------------------.
- * | | | | | | | | | | | | |COLMAK|DVORAK |QWERTY |
+ * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | M_MAKE | | | | | | | | | | | | | | |
+ * | M_MAKE |RESET | | | | | | | | | | |COLMAK|DVORAK |QWERTY |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | M_VRSN | | | | | |------| |-------| | | | | | |
+ * | M_VRSN |M_MALL| | | | |------| |-------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
* | M_FLSH | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
@@ -276,9 +276,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_ergodox_wrapper(
//LEFT HAND
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _____________________ADJUST_L1______________________, XXXXXXX,
+ _____________________ADJUST_L1______________________,
+ _____________________ADJUST_L1______________________, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
// LEFT THUMB
_______, _______,
@@ -287,10 +287,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______,
//RIGHT HAND
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, _____________________ADJUST_R1______________________,
+ _____________________ADJUST_R1______________________,
+ XXXXXXX, _____________________ADJUST_R1______________________,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
// RIGHT THUMB
_______, _______,
diff --git a/keyboards/hotdox/keymaps/ninjonas/rules.mk b/keyboards/hotdox/keymaps/ninjonas/rules.mk
new file mode 100644
index 000000000..3ec5fb062
--- /dev/null
+++ b/keyboards/hotdox/keymaps/ninjonas/rules.mk
@@ -0,0 +1 @@
+LINK_TIME_OPTIMIZATION_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/hotdox/rules.mk b/keyboards/hotdox/rules.mk
index b5b1483c7..95f6c7ec6 100644
--- a/keyboards/hotdox/rules.mk
+++ b/keyboards/hotdox/rules.mk
@@ -16,10 +16,10 @@ BOOTLOADER = atmel-dfu
#
CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDone
UNICODE_ENABLE = yes # Unicode
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/hs60/v1/rules.mk b/keyboards/hs60/v1/rules.mk
index 13f65b6ee..81c86813c 100644
--- a/keyboards/hs60/v1/rules.mk
+++ b/keyboards/hs60/v1/rules.mk
@@ -19,17 +19,17 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/hs60/v2/ansi/ansi.h b/keyboards/hs60/v2/ansi/ansi.h
new file mode 100644
index 000000000..e29cc65c0
--- /dev/null
+++ b/keyboards/hs60/v2/ansi/ansi.h
@@ -0,0 +1,38 @@
+/* Copyright 2018 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#define XXX KC_NO
+
+#include "quantum.h"
+#include "../../wilba_tech/wt_rgb_backlight_keycodes.h"
+#include "via.h"
+
+// This a shortcut to help you visually see your layout.
+
+#define LAYOUT_60_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
+ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
+ { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
+}
diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h
new file mode 100644
index 000000000..4d0c03a9c
--- /dev/null
+++ b/keyboards/hs60/v2/ansi/config.h
@@ -0,0 +1,148 @@
+/*
+Copyright 2018 Yiancar
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x8968
+#define PRODUCT_ID 0x4854
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Yiancar-Designs
+#define PRODUCT HS60 V2
+#define DESCRIPTION GH60 compatible, tool free RGB keyboard
+
+#define HS60_ANSI
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+#define MATRIX_ROW_PINS { B3, B4, B5, A8, A4 }
+#define MATRIX_COL_PINS { A13, A10, A9, A14, A15, B8, B9, C13, C14, C15, A0, A1, A2, A3 }
+// To enable debugger set A13 A14 -> A5 A6
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* Bootmagic Lite key configuration */
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
+
+/* Backlight options */
+
+#define RGB_BACKLIGHT_ENABLED 1
+
+#define RGB_BACKLIGHT_HS60
+
+// they aren't really used if RGB_BACKLIGHT_HS60 defined
+#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
+#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
+#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
+#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
+#define RGB_BACKLIGHT_USE_ISO_ENTER 0
+#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
+
+// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
+#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
+
+// disable backlight after timeout in minutes, 0 = no timeout
+#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
+
+// the default brightness
+#define RGB_BACKLIGHT_BRIGHTNESS 255
+
+// the default effect (RGB test)
+#define RGB_BACKLIGHT_EFFECT 6
+
+// the default effect speed (0-3)
+#define RGB_BACKLIGHT_EFFECT_SPEED 0
+
+// the default color1 and color2
+#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
+#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
+
+#define DRIVER_COUNT 2
+#define DRIVER_LED_TOTAL 64
+
+// These define which keys in the matrix are alphas/mods
+// Used for backlight effects so colors are different for
+// alphas vs. mods
+// Each value is for a row, bit 0 is column 0
+// Alpha=0 Mod=1
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0010000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0010000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0010000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011110000000111
+
+#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+
+// Backlight config starts after VIA's EEPROM usage,
+// dynamic keymaps start after this.
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 32
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/hs60/v2/ansi/info.json b/keyboards/hs60/v2/ansi/info.json
new file mode 100644
index 000000000..a977f9be0
--- /dev/null
+++ b/keyboards/hs60/v2/ansi/info.json
@@ -0,0 +1,333 @@
+{
+ "keyboard_name": "HS60v2",
+ "maintainer": "yiancar",
+ "url": "",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_ansi": {
+ "key_count": 61,
+ "layout": [
+ {
+ "label": "~",
+ "x": 0,
+ "y": 0
+ },
+ {
+ "label": "!",
+ "x": 1,
+ "y": 0
+ },
+ {
+ "label": "@",
+ "x": 2,
+ "y": 0
+ },
+ {
+ "label": "#",
+ "x": 3,
+ "y": 0
+ },
+ {
+ "label": "$",
+ "x": 4,
+ "y": 0
+ },
+ {
+ "label": "%",
+ "x": 5,
+ "y": 0
+ },
+ {
+ "label": "^",
+ "x": 6,
+ "y": 0
+ },
+ {
+ "label": "&",
+ "x": 7,
+ "y": 0
+ },
+ {
+ "label": "*",
+ "x": 8,
+ "y": 0
+ },
+ {
+ "label": "(",
+ "x": 9,
+ "y": 0
+ },
+ {
+ "label": ")",
+ "x": 10,
+ "y": 0
+ },
+ {
+ "label": "_",
+ "x": 11,
+ "y": 0
+ },
+ {
+ "label": "+",
+ "x": 12,
+ "y": 0
+ },
+ {
+ "label": "Backspace",
+ "x": 13,
+ "y": 0,
+ "w": 2
+ },
+ {
+ "label": "Tab",
+ "x": 0,
+ "y": 1,
+ "w": 1.5
+ },
+ {
+ "label": "Q",
+ "x": 1.5,
+ "y": 1
+ },
+ {
+ "label": "W",
+ "x": 2.5,
+ "y": 1
+ },
+ {
+ "label": "E",
+ "x": 3.5,
+ "y": 1
+ },
+ {
+ "label": "R",
+ "x": 4.5,
+ "y": 1
+ },
+ {
+ "label": "T",
+ "x": 5.5,
+ "y": 1
+ },
+ {
+ "label": "Y",
+ "x": 6.5,
+ "y": 1
+ },
+ {
+ "label": "U",
+ "x": 7.5,
+ "y": 1
+ },
+ {
+ "label": "I",
+ "x": 8.5,
+ "y": 1
+ },
+ {
+ "label": "O",
+ "x": 9.5,
+ "y": 1
+ },
+ {
+ "label": "P",
+ "x": 10.5,
+ "y": 1
+ },
+ {
+ "label": "{",
+ "x": 11.5,
+ "y": 1
+ },
+ {
+ "label": "}",
+ "x": 12.5,
+ "y": 1
+ },
+ {
+ "label": "|",
+ "x": 13.5,
+ "y": 1,
+ "w": 1.5
+ },
+ {
+ "label": "Caps Lock",
+ "x": 0,
+ "y": 2,
+ "w": 1.75
+ },
+ {
+ "label": "A",
+ "x": 1.75,
+ "y": 2
+ },
+ {
+ "label": "S",
+ "x": 2.75,
+ "y": 2
+ },
+ {
+ "label": "D",
+ "x": 3.75,
+ "y": 2
+ },
+ {
+ "label": "F",
+ "x": 4.75,
+ "y": 2
+ },
+ {
+ "label": "G",
+ "x": 5.75,
+ "y": 2
+ },
+ {
+ "label": "H",
+ "x": 6.75,
+ "y": 2
+ },
+ {
+ "label": "J",
+ "x": 7.75,
+ "y": 2
+ },
+ {
+ "label": "K",
+ "x": 8.75,
+ "y": 2
+ },
+ {
+ "label": "L",
+ "x": 9.75,
+ "y": 2
+ },
+ {
+ "label": ":",
+ "x": 10.75,
+ "y": 2
+ },
+ {
+ "label": "\"",
+ "x": 11.75,
+ "y": 2
+ },
+ {
+ "label": "Enter",
+ "x": 12.75,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "Shift",
+ "x": 0,
+ "y": 3,
+ "w": 2.25
+ },
+ {
+ "label": "Z",
+ "x": 2.25,
+ "y": 3
+ },
+ {
+ "label": "X",
+ "x": 3.25,
+ "y": 3
+ },
+ {
+ "label": "C",
+ "x": 4.25,
+ "y": 3
+ },
+ {
+ "label": "V",
+ "x": 5.25,
+ "y": 3
+ },
+ {
+ "label": "B",
+ "x": 6.25,
+ "y": 3
+ },
+ {
+ "label": "N",
+ "x": 7.25,
+ "y": 3
+ },
+ {
+ "label": "M",
+ "x": 8.25,
+ "y": 3
+ },
+ {
+ "label": "<",
+ "x": 9.25,
+ "y": 3
+ },
+ {
+ "label": ">",
+ "x": 10.25,
+ "y": 3
+ },
+ {
+ "label": "?",
+ "x": 11.25,
+ "y": 3
+ },
+ {
+ "label": "Shift",
+ "x": 12.25,
+ "y": 3,
+ "w": 2.75
+ },
+ {
+ "label": "Ctrl",
+ "x": 0,
+ "y": 4,
+ "w": 1.25
+ },
+ {
+ "label": "Win",
+ "x": 1.25,
+ "y": 4,
+ "w": 1.25
+ },
+ {
+ "label": "Alt",
+ "x": 2.5,
+ "y": 4,
+ "w": 1.25
+ },
+ {
+ "x": 3.75,
+ "y": 4,
+ "w": 6.25
+ },
+ {
+ "label": "Alt",
+ "x": 10,
+ "y": 4,
+ "w": 1.25
+ },
+ {
+ "label": "Win",
+ "x": 11.25,
+ "y": 4,
+ "w": 1.25
+ },
+ {
+ "label": "Menu",
+ "x": 12.5,
+ "y": 4,
+ "w": 1.25
+ },
+ {
+ "label": "Ctrl",
+ "x": 13.75,
+ "y": 4,
+ "w": 1.25
+ }
+ ]
+ }
+ }
+}
diff --git a/keyboards/hs60/v2/keymaps/ansi/keymap.c b/keyboards/hs60/v2/ansi/keymaps/default/keymap.c
index ba649470b..ba649470b 100644
--- a/keyboards/hs60/v2/keymaps/ansi/keymap.c
+++ b/keyboards/hs60/v2/ansi/keymaps/default/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/ansi/readme.md b/keyboards/hs60/v2/ansi/keymaps/default/readme.md
index 3afd8afb3..3afd8afb3 100644
--- a/keyboards/hs60/v2/keymaps/ansi/readme.md
+++ b/keyboards/hs60/v2/ansi/keymaps/default/readme.md
diff --git a/keyboards/hs60/v2/keymaps/stanrc85/config.h b/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h
index d61e6bde4..bf39aae3a 100644
--- a/keyboards/hs60/v2/keymaps/stanrc85/config.h
+++ b/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h
@@ -1,10 +1,5 @@
#pragma once
-// Include overwrites for specific keymap
-#define HS60_ANSI
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x4854
-
// disable backlight after timeout in minutes, 0 = no timeout
#undef RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT
#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 20
diff --git a/keyboards/hs60/v2/keymaps/stanrc85/keymap.c b/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c
index 2e6a70483..11d8048f1 100644
--- a/keyboards/hs60/v2/keymaps/stanrc85/keymap.c
+++ b/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c
@@ -33,8 +33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1_60] = LAYOUT_60_ansi(
KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
+ _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS,
+ KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
_______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
diff --git a/keyboards/hs60/v2/keymaps/stanrc85/readme.md b/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md
index 430d363f3..430d363f3 100644
--- a/keyboards/hs60/v2/keymaps/stanrc85/readme.md
+++ b/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md
diff --git a/keyboards/hs60/v2/keymaps/default_via/rules.mk b/keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/hs60/v2/keymaps/default_via/rules.mk
+++ b/keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk
diff --git a/keyboards/hs60/v2/keymaps/ansi_via/keymap.c b/keyboards/hs60/v2/ansi/keymaps/via/keymap.c
index ba649470b..ba649470b 100644
--- a/keyboards/hs60/v2/keymaps/ansi_via/keymap.c
+++ b/keyboards/hs60/v2/ansi/keymaps/via/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/ansi_via/readme.md b/keyboards/hs60/v2/ansi/keymaps/via/readme.md
index a462da661..a462da661 100644
--- a/keyboards/hs60/v2/keymaps/ansi_via/readme.md
+++ b/keyboards/hs60/v2/ansi/keymaps/via/readme.md
diff --git a/keyboards/hs60/v2/keymaps/goatmaster/rules.mk b/keyboards/hs60/v2/ansi/keymaps/via/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/hs60/v2/keymaps/goatmaster/rules.mk
+++ b/keyboards/hs60/v2/ansi/keymaps/via/rules.mk
diff --git a/keyboards/hs60/v2/rules.mk b/keyboards/hs60/v2/ansi/rules.mk
index 37deb63be..d013775c1 100644
--- a/keyboards/hs60/v2/rules.mk
+++ b/keyboards/hs60/v2/ansi/rules.mk
@@ -10,7 +10,7 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# comment out to disable the options.
#
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
@@ -23,7 +23,7 @@ NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plu
CIE1931_CURVE = yes
-LAYOUTS = 60_ansi 60_iso
+LAYOUTS = 60_ansi
# project specific files
SRC = keyboards/wilba_tech/wt_main.c \
diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h
new file mode 100644
index 000000000..69c0a3fe0
--- /dev/null
+++ b/keyboards/hs60/v2/hhkb/config.h
@@ -0,0 +1,148 @@
+/*
+Copyright 2018 Yiancar
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x8968
+#define PRODUCT_ID 0x4855
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Yiancar-Designs
+#define PRODUCT HS60 V2
+#define DESCRIPTION GH60 compatible, tool free RGB keyboard
+
+#define HS60_HHKB
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+#define MATRIX_ROW_PINS { B3, B4, B5, A8, A4 }
+#define MATRIX_COL_PINS { A13, A10, A9, A14, A15, B8, B9, C13, C14, C15, A0, A1, A2, A3 }
+// To enable debugger set A13 A14 -> A5 A6
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* Bootmagic Lite key configuration */
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
+
+/* Backlight options */
+
+#define RGB_BACKLIGHT_ENABLED 1
+
+#define RGB_BACKLIGHT_HS60
+
+// they aren't really used if RGB_BACKLIGHT_HS60 defined
+#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
+#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
+#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
+#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
+#define RGB_BACKLIGHT_USE_ISO_ENTER 0
+#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
+
+// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
+#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
+
+// disable backlight after timeout in minutes, 0 = no timeout
+#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
+
+// the default brightness
+#define RGB_BACKLIGHT_BRIGHTNESS 255
+
+// the default effect (RGB test)
+#define RGB_BACKLIGHT_EFFECT 6
+
+// the default effect speed (0-3)
+#define RGB_BACKLIGHT_EFFECT_SPEED 0
+
+// the default color1 and color2
+#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
+#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
+
+#define DRIVER_COUNT 2
+#define DRIVER_LED_TOTAL 64
+
+// These define which keys in the matrix are alphas/mods
+// Used for backlight effects so colors are different for
+// alphas vs. mods
+// Each value is for a row, bit 0 is column 0
+// Alpha=0 Mod=1
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111
+
+#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+
+// Backlight config starts after VIA's EEPROM usage,
+// dynamic keymaps start after this.
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 32
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/hs60/v2/v2.h b/keyboards/hs60/v2/hhkb/hhkb.h
index e77076486..94248f01e 100644
--- a/keyboards/hs60/v2/v2.h
+++ b/keyboards/hs60/v2/hhkb/hhkb.h
@@ -23,34 +23,6 @@
// This a shortcut to help you visually see your layout.
-#define LAYOUT_60_iso( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
- K40, K41, K42, K46, K4A, K4B, K4C, K4D \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
- { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
-}
-
-#define LAYOUT_60_ansi( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
- K40, K41, K42, K46, K4A, K4B, K4C, K4D \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
- { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
- { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
-}
-
#define LAYOUT_60_hhkb( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, \
diff --git a/keyboards/hs60/v2/hhkb/info.json b/keyboards/hs60/v2/hhkb/info.json
new file mode 100644
index 000000000..cf95351d3
--- /dev/null
+++ b/keyboards/hs60/v2/hhkb/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "HS60v2",
+ "maintainer": "yiancar",
+ "url": "",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_hhkb": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+ }
+ }
+}
diff --git a/keyboards/hs60/v2/keymaps/hhkb/keymap.c b/keyboards/hs60/v2/hhkb/keymaps/default/keymap.c
index 9641eedb4..9641eedb4 100644
--- a/keyboards/hs60/v2/keymaps/hhkb/keymap.c
+++ b/keyboards/hs60/v2/hhkb/keymaps/default/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/hhkb/readme.md b/keyboards/hs60/v2/hhkb/keymaps/default/readme.md
index 5259a584d..5259a584d 100644
--- a/keyboards/hs60/v2/keymaps/hhkb/readme.md
+++ b/keyboards/hs60/v2/hhkb/keymaps/default/readme.md
diff --git a/keyboards/hs60/v2/keymaps/ansi_via/config.h b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/config.h
index 96adaf568..50c76489e 100644
--- a/keyboards/hs60/v2/keymaps/ansi_via/config.h
+++ b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/config.h
@@ -18,6 +18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Include overwrites for specific keymap */
-#define HS60_ANSI
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x4854
+#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR
+#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 255 }, .index = 3-1 } //red
diff --git a/keyboards/hs60/v2/keymaps/goatmaster/keymap.c b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/keymap.c
index 6273dbc64..6273dbc64 100644
--- a/keyboards/hs60/v2/keymaps/goatmaster/keymap.c
+++ b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/goatmaster/readme.md b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/readme.md
index ea9803cc0..ea9803cc0 100644
--- a/keyboards/hs60/v2/keymaps/goatmaster/readme.md
+++ b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/readme.md
diff --git a/keyboards/hs60/v2/keymaps/hhkb_via/rules.mk b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/hs60/v2/keymaps/hhkb_via/rules.mk
+++ b/keyboards/hs60/v2/hhkb/keymaps/goatmaster/rules.mk
diff --git a/keyboards/hs60/v2/keymaps/hhkb_via/keymap.c b/keyboards/hs60/v2/hhkb/keymaps/via/keymap.c
index 9641eedb4..9641eedb4 100644
--- a/keyboards/hs60/v2/keymaps/hhkb_via/keymap.c
+++ b/keyboards/hs60/v2/hhkb/keymaps/via/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/hhkb_via/readme.md b/keyboards/hs60/v2/hhkb/keymaps/via/readme.md
index ea9803cc0..ea9803cc0 100644
--- a/keyboards/hs60/v2/keymaps/hhkb_via/readme.md
+++ b/keyboards/hs60/v2/hhkb/keymaps/via/readme.md
diff --git a/keyboards/hs60/v2/keymaps/iso_andys8/rules.mk b/keyboards/hs60/v2/hhkb/keymaps/via/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/hs60/v2/keymaps/iso_andys8/rules.mk
+++ b/keyboards/hs60/v2/hhkb/keymaps/via/rules.mk
diff --git a/keyboards/hs60/v2/hhkb/rules.mk b/keyboards/hs60/v2/hhkb/rules.mk
new file mode 100644
index 000000000..44399851f
--- /dev/null
+++ b/keyboards/hs60/v2/hhkb/rules.mk
@@ -0,0 +1,31 @@
+# MCU name
+MCU = STM32F303
+
+# Do not put the microcontroller into power saving mode
+# when we get USB suspend event. We want it to keep updating
+# backlight effects.
+OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
+
+# Build Options
+# comment out to disable the options.
+#
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover
+AUDIO_ENABLE = no # Audio output on port C6
+NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
+#SERIAL_LINK_ENABLE = yes
+
+CIE1931_CURVE = yes
+
+# project specific files
+SRC = keyboards/wilba_tech/wt_main.c \
+ keyboards/wilba_tech/wt_rgb_backlight.c \
+ drivers/issi/is31fl3733.c \
+ quantum/color.c \
+ drivers/arm/i2c_master.c
diff --git a/keyboards/hs60/v2/info.json b/keyboards/hs60/v2/info.json
deleted file mode 100644
index c42e9e941..000000000
--- a/keyboards/hs60/v2/info.json
+++ /dev/null
@@ -1,1650 +0,0 @@
-{
- "keyboard_name": "HS60v2",
- "maintainer": "yiancar",
- "url": "",
- "width": 15,
- "height": 5,
- "layouts": {
- "LAYOUT_60_ansi": {
- "key_count": 61,
- "layout": [
- {
- "label": "~",
- "x": 0,
- "y": 0
- },
- {
- "label": "!",
- "x": 1,
- "y": 0
- },
- {
- "label": "@",
- "x": 2,
- "y": 0
- },
- {
- "label": "#",
- "x": 3,
- "y": 0
- },
- {
- "label": "$",
- "x": 4,
- "y": 0
- },
- {
- "label": "%",
- "x": 5,
- "y": 0
- },
- {
- "label": "^",
- "x": 6,
- "y": 0
- },
- {
- "label": "&",
- "x": 7,
- "y": 0
- },
- {
- "label": "*",
- "x": 8,
- "y": 0
- },
- {
- "label": "(",
- "x": 9,
- "y": 0
- },
- {
- "label": ")",
- "x": 10,
- "y": 0
- },
- {
- "label": "_",
- "x": 11,
- "y": 0
- },
- {
- "label": "+",
- "x": 12,
- "y": 0
- },
- {
- "label": "Backspace",
- "x": 13,
- "y": 0,
- "w": 2
- },
- {
- "label": "Tab",
- "x": 0,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Q",
- "x": 1.5,
- "y": 1
- },
- {
- "label": "W",
- "x": 2.5,
- "y": 1
- },
- {
- "label": "E",
- "x": 3.5,
- "y": 1
- },
- {
- "label": "R",
- "x": 4.5,
- "y": 1
- },
- {
- "label": "T",
- "x": 5.5,
- "y": 1
- },
- {
- "label": "Y",
- "x": 6.5,
- "y": 1
- },
- {
- "label": "U",
- "x": 7.5,
- "y": 1
- },
- {
- "label": "I",
- "x": 8.5,
- "y": 1
- },
- {
- "label": "O",
- "x": 9.5,
- "y": 1
- },
- {
- "label": "P",
- "x": 10.5,
- "y": 1
- },
- {
- "label": "{",
- "x": 11.5,
- "y": 1
- },
- {
- "label": "}",
- "x": 12.5,
- "y": 1
- },
- {
- "label": "|",
- "x": 13.5,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Caps Lock",
- "x": 0,
- "y": 2,
- "w": 1.75
- },
- {
- "label": "A",
- "x": 1.75,
- "y": 2
- },
- {
- "label": "S",
- "x": 2.75,
- "y": 2
- },
- {
- "label": "D",
- "x": 3.75,
- "y": 2
- },
- {
- "label": "F",
- "x": 4.75,
- "y": 2
- },
- {
- "label": "G",
- "x": 5.75,
- "y": 2
- },
- {
- "label": "H",
- "x": 6.75,
- "y": 2
- },
- {
- "label": "J",
- "x": 7.75,
- "y": 2
- },
- {
- "label": "K",
- "x": 8.75,
- "y": 2
- },
- {
- "label": "L",
- "x": 9.75,
- "y": 2
- },
- {
- "label": ":",
- "x": 10.75,
- "y": 2
- },
- {
- "label": "\"",
- "x": 11.75,
- "y": 2
- },
- {
- "label": "Enter",
- "x": 12.75,
- "y": 2,
- "w": 2.25
- },
- {
- "label": "Shift",
- "x": 0,
- "y": 3,
- "w": 2.25
- },
- {
- "label": "Z",
- "x": 2.25,
- "y": 3
- },
- {
- "label": "X",
- "x": 3.25,
- "y": 3
- },
- {
- "label": "C",
- "x": 4.25,
- "y": 3
- },
- {
- "label": "V",
- "x": 5.25,
- "y": 3
- },
- {
- "label": "B",
- "x": 6.25,
- "y": 3
- },
- {
- "label": "N",
- "x": 7.25,
- "y": 3
- },
- {
- "label": "M",
- "x": 8.25,
- "y": 3
- },
- {
- "label": "<",
- "x": 9.25,
- "y": 3
- },
- {
- "label": ">",
- "x": 10.25,
- "y": 3
- },
- {
- "label": "?",
- "x": 11.25,
- "y": 3
- },
- {
- "label": "Shift",
- "x": 12.25,
- "y": 3,
- "w": 2.75
- },
- {
- "label": "Ctrl",
- "x": 0,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 1.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Alt",
- "x": 2.5,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 3.75,
- "y": 4,
- "w": 6.25
- },
- {
- "label": "Alt",
- "x": 10,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 11.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Menu",
- "x": 12.5,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Ctrl",
- "x": 13.75,
- "y": 4,
- "w": 1.25
- }
- ]
- },
- "LAYOUT_60_iso": {
- "key_count": 62,
- "layout": [
- {
- "label": "\\u00ac",
- "x": 0,
- "y": 0
- },
- {
- "label": "!",
- "x": 1,
- "y": 0
- },
- {
- "label": "\"",
- "x": 2,
- "y": 0
- },
- {
- "label": "\\u00a3",
- "x": 3,
- "y": 0
- },
- {
- "label": "$",
- "x": 4,
- "y": 0
- },
- {
- "label": "%",
- "x": 5,
- "y": 0
- },
- {
- "label": "^",
- "x": 6,
- "y": 0
- },
- {
- "label": "&",
- "x": 7,
- "y": 0
- },
- {
- "label": "*",
- "x": 8,
- "y": 0
- },
- {
- "label": "(",
- "x": 9,
- "y": 0
- },
- {
- "label": ")",
- "x": 10,
- "y": 0
- },
- {
- "label": "_",
- "x": 11,
- "y": 0
- },
- {
- "label": "+",
- "x": 12,
- "y": 0
- },
- {
- "label": "Backspace",
- "x": 13,
- "y": 0,
- "w": 2
- },
- {
- "label": "Tab",
- "x": 0,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Q",
- "x": 1.5,
- "y": 1
- },
- {
- "label": "W",
- "x": 2.5,
- "y": 1
- },
- {
- "label": "E",
- "x": 3.5,
- "y": 1
- },
- {
- "label": "R",
- "x": 4.5,
- "y": 1
- },
- {
- "label": "T",
- "x": 5.5,
- "y": 1
- },
- {
- "label": "Y",
- "x": 6.5,
- "y": 1
- },
- {
- "label": "U",
- "x": 7.5,
- "y": 1
- },
- {
- "label": "I",
- "x": 8.5,
- "y": 1
- },
- {
- "label": "O",
- "x": 9.5,
- "y": 1
- },
- {
- "label": "P",
- "x": 10.5,
- "y": 1
- },
- {
- "label": "{",
- "x": 11.5,
- "y": 1
- },
- {
- "label": "}",
- "x": 12.5,
- "y": 1
- },
- {
- "label": "Enter",
- "x": 13.75,
- "y": 1,
- "w": 1.25,
- "h": 2
- },
- {
- "label": "Caps Lock",
- "x": 0,
- "y": 2,
- "w": 1.75
- },
- {
- "label": "A",
- "x": 1.75,
- "y": 2
- },
- {
- "label": "S",
- "x": 2.75,
- "y": 2
- },
- {
- "label": "D",
- "x": 3.75,
- "y": 2
- },
- {
- "label": "F",
- "x": 4.75,
- "y": 2
- },
- {
- "label": "G",
- "x": 5.75,
- "y": 2
- },
- {
- "label": "H",
- "x": 6.75,
- "y": 2
- },
- {
- "label": "J",
- "x": 7.75,
- "y": 2
- },
- {
- "label": "K",
- "x": 8.75,
- "y": 2
- },
- {
- "label": "L",
- "x": 9.75,
- "y": 2
- },
- {
- "label": ":",
- "x": 10.75,
- "y": 2
- },
- {
- "label": "@",
- "x": 11.75,
- "y": 2
- },
- {
- "label": "~",
- "x": 12.75,
- "y": 2
- },
- {
- "label": "Shift",
- "x": 0,
- "y": 3,
- "w": 1.25
- },
- {
- "label": "|",
- "x": 1.25,
- "y": 3
- },
- {
- "label": "Z",
- "x": 2.25,
- "y": 3
- },
- {
- "label": "X",
- "x": 3.25,
- "y": 3
- },
- {
- "label": "C",
- "x": 4.25,
- "y": 3
- },
- {
- "label": "V",
- "x": 5.25,
- "y": 3
- },
- {
- "label": "B",
- "x": 6.25,
- "y": 3
- },
- {
- "label": "N",
- "x": 7.25,
- "y": 3
- },
- {
- "label": "M",
- "x": 8.25,
- "y": 3
- },
- {
- "label": "<",
- "x": 9.25,
- "y": 3
- },
- {
- "label": ">",
- "x": 10.25,
- "y": 3
- },
- {
- "label": "?",
- "x": 11.25,
- "y": 3
- },
- {
- "label": "Shift",
- "x": 12.25,
- "y": 3,
- "w": 2.75
- },
- {
- "label": "Ctrl",
- "x": 0,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 1.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Alt",
- "x": 2.5,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 3.75,
- "y": 4,
- "w": 6.25
- },
- {
- "label": "AltGr",
- "x": 10,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 11.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Menu",
- "x": 12.5,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Ctrl",
- "x": 13.75,
- "y": 4,
- "w": 1.25
- }
- ]
- },
- "KEYMAP_AEK": {
- "key_count": 60,
- "layout": [
- {
- "label": "~",
- "x": 0,
- "y": 0
- },
- {
- "label": "!",
- "x": 1,
- "y": 0
- },
- {
- "label": "@",
- "x": 2,
- "y": 0
- },
- {
- "label": "#",
- "x": 3,
- "y": 0
- },
- {
- "label": "$",
- "x": 4,
- "y": 0
- },
- {
- "label": "%",
- "x": 5,
- "y": 0
- },
- {
- "label": "^",
- "x": 6,
- "y": 0
- },
- {
- "label": "&",
- "x": 7,
- "y": 0
- },
- {
- "label": "*",
- "x": 8,
- "y": 0
- },
- {
- "label": "(",
- "x": 9,
- "y": 0
- },
- {
- "label": ")",
- "x": 10,
- "y": 0
- },
- {
- "label": "_",
- "x": 11,
- "y": 0
- },
- {
- "label": "+",
- "x": 12,
- "y": 0
- },
- {
- "label": "Backspace",
- "x": 13,
- "y": 0,
- "w": 2
- },
- {
- "label": "Tab",
- "x": 0,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Q",
- "x": 1.5,
- "y": 1
- },
- {
- "label": "W",
- "x": 2.5,
- "y": 1
- },
- {
- "label": "E",
- "x": 3.5,
- "y": 1
- },
- {
- "label": "R",
- "x": 4.5,
- "y": 1
- },
- {
- "label": "T",
- "x": 5.5,
- "y": 1
- },
- {
- "label": "Y",
- "x": 6.5,
- "y": 1
- },
- {
- "label": "U",
- "x": 7.5,
- "y": 1
- },
- {
- "label": "I",
- "x": 8.5,
- "y": 1
- },
- {
- "label": "O",
- "x": 9.5,
- "y": 1
- },
- {
- "label": "P",
- "x": 10.5,
- "y": 1
- },
- {
- "label": "{",
- "x": 11.5,
- "y": 1
- },
- {
- "label": "}",
- "x": 12.5,
- "y": 1
- },
- {
- "label": "|",
- "x": 13.5,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Caps Lock",
- "x": 0,
- "y": 2,
- "w": 1.75
- },
- {
- "label": "A",
- "x": 1.75,
- "y": 2
- },
- {
- "label": "S",
- "x": 2.75,
- "y": 2
- },
- {
- "label": "D",
- "x": 3.75,
- "y": 2
- },
- {
- "label": "F",
- "x": 4.75,
- "y": 2
- },
- {
- "label": "G",
- "x": 5.75,
- "y": 2
- },
- {
- "label": "H",
- "x": 6.75,
- "y": 2
- },
- {
- "label": "J",
- "x": 7.75,
- "y": 2
- },
- {
- "label": "K",
- "x": 8.75,
- "y": 2
- },
- {
- "label": "L",
- "x": 9.75,
- "y": 2
- },
- {
- "label": ":",
- "x": 10.75,
- "y": 2
- },
- {
- "label": "\"",
- "x": 11.75,
- "y": 2
- },
- {
- "label": "Enter",
- "x": 12.75,
- "y": 2,
- "w": 2.25
- },
- {
- "label": "Shift",
- "x": 0,
- "y": 3,
- "w": 2.25
- },
- {
- "label": "Z",
- "x": 2.25,
- "y": 3
- },
- {
- "label": "X",
- "x": 3.25,
- "y": 3
- },
- {
- "label": "C",
- "x": 4.25,
- "y": 3
- },
- {
- "label": "V",
- "x": 5.25,
- "y": 3
- },
- {
- "label": "B",
- "x": 6.25,
- "y": 3
- },
- {
- "label": "N",
- "x": 7.25,
- "y": 3
- },
- {
- "label": "M",
- "x": 8.25,
- "y": 3
- },
- {
- "label": "<",
- "x": 9.25,
- "y": 3
- },
- {
- "label": ">",
- "x": 10.25,
- "y": 3
- },
- {
- "label": "?",
- "x": 11.25,
- "y": 3
- },
- {
- "label": "Shift",
- "x": 12.25,
- "y": 3,
- "w": 2.75
- },
- {
- "label": "Ctrl",
- "x": 0,
- "y": 4,
- "w": 1.5
- },
- {
- "label": "Win",
- "x": 1.5,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Alt",
- "x": 2.75,
- "y": 4,
- "w": 1.5
- },
- {
- "x": 4.25,
- "y": 4,
- "w": 6.5
- },
- {
- "label": "AltGr",
- "x": 10.75,
- "y": 4,
- "w": 1.5
- },
- {
- "label": "Win",
- "x": 12.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Ctrl",
- "x": 13.5,
- "y": 4,
- "w": 1.5
- }
- ]
- },
- "KEYMAP": {
- "key_count": 65,
- "layout": [
- {
- "label": "~",
- "x": 0,
- "y": 0
- },
- {
- "label": "!",
- "x": 1,
- "y": 0
- },
- {
- "label": "@",
- "x": 2,
- "y": 0
- },
- {
- "label": "#",
- "x": 3,
- "y": 0
- },
- {
- "label": "$",
- "x": 4,
- "y": 0
- },
- {
- "label": "%",
- "x": 5,
- "y": 0
- },
- {
- "label": "^",
- "x": 6,
- "y": 0
- },
- {
- "label": "&",
- "x": 7,
- "y": 0
- },
- {
- "label": "*",
- "x": 8,
- "y": 0
- },
- {
- "label": "(",
- "x": 9,
- "y": 0
- },
- {
- "label": ")",
- "x": 10,
- "y": 0
- },
- {
- "label": "_",
- "x": 11,
- "y": 0
- },
- {
- "label": "+",
- "x": 12,
- "y": 0
- },
- {
- "x": 13,
- "y": 0
- },
- {
- "label": "Back",
- "x": 14,
- "y": 0
- },
- {
- "label": "Tab",
- "x": 0,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Q",
- "x": 1.5,
- "y": 1
- },
- {
- "label": "W",
- "x": 2.5,
- "y": 1
- },
- {
- "label": "E",
- "x": 3.5,
- "y": 1
- },
- {
- "label": "R",
- "x": 4.5,
- "y": 1
- },
- {
- "label": "T",
- "x": 5.5,
- "y": 1
- },
- {
- "label": "Y",
- "x": 6.5,
- "y": 1
- },
- {
- "label": "U",
- "x": 7.5,
- "y": 1
- },
- {
- "label": "I",
- "x": 8.5,
- "y": 1
- },
- {
- "label": "O",
- "x": 9.5,
- "y": 1
- },
- {
- "label": "P",
- "x": 10.5,
- "y": 1
- },
- {
- "label": "{",
- "x": 11.5,
- "y": 1
- },
- {
- "label": "}",
- "x": 12.5,
- "y": 1
- },
- {
- "label": "|",
- "x": 13.5,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Caps Lock",
- "x": 0,
- "y": 2,
- "w": 1.75
- },
- {
- "label": "A",
- "x": 1.75,
- "y": 2
- },
- {
- "label": "S",
- "x": 2.75,
- "y": 2
- },
- {
- "label": "D",
- "x": 3.75,
- "y": 2
- },
- {
- "label": "F",
- "x": 4.75,
- "y": 2
- },
- {
- "label": "G",
- "x": 5.75,
- "y": 2
- },
- {
- "label": "H",
- "x": 6.75,
- "y": 2
- },
- {
- "label": "J",
- "x": 7.75,
- "y": 2
- },
- {
- "label": "K",
- "x": 8.75,
- "y": 2
- },
- {
- "label": "L",
- "x": 9.75,
- "y": 2
- },
- {
- "label": ":",
- "x": 10.75,
- "y": 2
- },
- {
- "label": "\"",
- "x": 11.75,
- "y": 2
- },
- {
- "x": 12.75,
- "y": 2
- },
- {
- "label": "Enter",
- "x": 13.75,
- "y": 2,
- "w": 1.25
- },
- {
- "x": 0,
- "y": 3
- },
- {
- "label": "Shift",
- "x": 1,
- "y": 3,
- "w": 1.25
- },
- {
- "label": "Z",
- "x": 2.25,
- "y": 3
- },
- {
- "label": "X",
- "x": 3.25,
- "y": 3
- },
- {
- "label": "C",
- "x": 4.25,
- "y": 3
- },
- {
- "label": "V",
- "x": 5.25,
- "y": 3
- },
- {
- "label": "B",
- "x": 6.25,
- "y": 3
- },
- {
- "label": "N",
- "x": 7.25,
- "y": 3
- },
- {
- "label": "M",
- "x": 8.25,
- "y": 3
- },
- {
- "label": "<",
- "x": 9.25,
- "y": 3
- },
- {
- "label": ">",
- "x": 10.25,
- "y": 3
- },
- {
- "label": "?",
- "x": 11.25,
- "y": 3
- },
- {
- "label": "Shift",
- "x": 12.25,
- "y": 3,
- "w": 1.75
- },
- {
- "x": 14,
- "y": 3
- },
- {
- "label": "Ctrl",
- "x": 0,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 1.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Alt",
- "x": 2.5,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 3.75,
- "y": 4,
- "w": 6.25
- },
- {
- "label": "Alt",
- "x": 10,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 11.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Menu",
- "x": 12.5,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Ctrl",
- "x": 13.75,
- "y": 4,
- "w": 1.25
- }
- ]
- },
- "LAYOUT_60_ansi_split_bs_rshift": {
- "key_count": 63,
- "layout": [
- {
- "label": "~",
- "x": 0,
- "y": 0
- },
- {
- "label": "!",
- "x": 1,
- "y": 0
- },
- {
- "label": "@",
- "x": 2,
- "y": 0
- },
- {
- "label": "#",
- "x": 3,
- "y": 0
- },
- {
- "label": "$",
- "x": 4,
- "y": 0
- },
- {
- "label": "%",
- "x": 5,
- "y": 0
- },
- {
- "label": "^",
- "x": 6,
- "y": 0
- },
- {
- "label": "&",
- "x": 7,
- "y": 0
- },
- {
- "label": "*",
- "x": 8,
- "y": 0
- },
- {
- "label": "(",
- "x": 9,
- "y": 0
- },
- {
- "label": ")",
- "x": 10,
- "y": 0
- },
- {
- "label": "_",
- "x": 11,
- "y": 0
- },
- {
- "label": "+",
- "x": 12,
- "y": 0
- },
- {
- "x": 13,
- "y": 0
- },
- {
- "label": "Back",
- "x": 14,
- "y": 0
- },
- {
- "label": "Tab",
- "x": 0,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Q",
- "x": 1.5,
- "y": 1
- },
- {
- "label": "W",
- "x": 2.5,
- "y": 1
- },
- {
- "label": "E",
- "x": 3.5,
- "y": 1
- },
- {
- "label": "R",
- "x": 4.5,
- "y": 1
- },
- {
- "label": "T",
- "x": 5.5,
- "y": 1
- },
- {
- "label": "Y",
- "x": 6.5,
- "y": 1
- },
- {
- "label": "U",
- "x": 7.5,
- "y": 1
- },
- {
- "label": "I",
- "x": 8.5,
- "y": 1
- },
- {
- "label": "O",
- "x": 9.5,
- "y": 1
- },
- {
- "label": "P",
- "x": 10.5,
- "y": 1
- },
- {
- "label": "{",
- "x": 11.5,
- "y": 1
- },
- {
- "label": "}",
- "x": 12.5,
- "y": 1
- },
- {
- "label": "|",
- "x": 13.5,
- "y": 1,
- "w": 1.5
- },
- {
- "label": "Caps Lock",
- "x": 0,
- "y": 2,
- "w": 1.75
- },
- {
- "label": "A",
- "x": 1.75,
- "y": 2
- },
- {
- "label": "S",
- "x": 2.75,
- "y": 2
- },
- {
- "label": "D",
- "x": 3.75,
- "y": 2
- },
- {
- "label": "F",
- "x": 4.75,
- "y": 2
- },
- {
- "label": "G",
- "x": 5.75,
- "y": 2
- },
- {
- "label": "H",
- "x": 6.75,
- "y": 2
- },
- {
- "label": "J",
- "x": 7.75,
- "y": 2
- },
- {
- "label": "K",
- "x": 8.75,
- "y": 2
- },
- {
- "label": "L",
- "x": 9.75,
- "y": 2
- },
- {
- "label": ":",
- "x": 10.75,
- "y": 2
- },
- {
- "label": "\"",
- "x": 11.75,
- "y": 2
- },
- {
- "label": "Enter",
- "x": 12.75,
- "y": 2,
- "w": 2.25
- },
- {
- "label": "Shift",
- "x": 0,
- "y": 3,
- "w": 2.25
- },
- {
- "label": "Z",
- "x": 2.25,
- "y": 3
- },
- {
- "label": "X",
- "x": 3.25,
- "y": 3
- },
- {
- "label": "C",
- "x": 4.25,
- "y": 3
- },
- {
- "label": "V",
- "x": 5.25,
- "y": 3
- },
- {
- "label": "B",
- "x": 6.25,
- "y": 3
- },
- {
- "label": "N",
- "x": 7.25,
- "y": 3
- },
- {
- "label": "M",
- "x": 8.25,
- "y": 3
- },
- {
- "label": "<",
- "x": 9.25,
- "y": 3
- },
- {
- "label": ">",
- "x": 10.25,
- "y": 3
- },
- {
- "label": "?",
- "x": 11.25,
- "y": 3
- },
- {
- "label": "Shift",
- "x": 12.25,
- "y": 3,
- "w": 1.75
- },
- {
- "x": 14,
- "y": 3
- },
- {
- "label": "Ctrl",
- "x": 0,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 1.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Alt",
- "x": 2.5,
- "y": 4,
- "w": 1.25
- },
- {
- "x": 3.75,
- "y": 4,
- "w": 6.25
- },
- {
- "label": "Alt",
- "x": 10,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Win",
- "x": 11.25,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Menu",
- "x": 12.5,
- "y": 4,
- "w": 1.25
- },
- {
- "label": "Ctrl",
- "x": 13.75,
- "y": 4,
- "w": 1.25
- }
- ]
- }
- }
-}
diff --git a/keyboards/hs60/v2/config.h b/keyboards/hs60/v2/iso/config.h
index 91fdf6080..5c2488c78 100644
--- a/keyboards/hs60/v2/config.h
+++ b/keyboards/hs60/v2/iso/config.h
@@ -82,6 +82,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
+/* Bootmagic Lite key configuration */
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
+
/* Backlight options */
#define RGB_BACKLIGHT_ENABLED 1
@@ -136,5 +140,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 32
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/hs60/v2/iso/info.json b/keyboards/hs60/v2/iso/info.json
new file mode 100644
index 000000000..11f6f52a2
--- /dev/null
+++ b/keyboards/hs60/v2/iso/info.json
@@ -0,0 +1,76 @@
+{
+ "keyboard_name": "HS60v2",
+ "maintainer": "yiancar",
+ "url": "",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_iso": {
+ "key_count": 62,
+ "layout": [
+ {"label":"\\u00ac", "x":0, "y":0},
+ {"label":"!", "x":1, "y":0},
+ {"label":"\"", "x":2, "y":0},
+ {"label":"\\u00a3", "x":3, "y":0},
+ {"label":"$", "x":4, "y":0},
+ {"label":"%", "x":5, "y":0},
+ {"label":"^", "x":6, "y":0},
+ {"label":"&", "x":7, "y":0},
+ {"label":"*", "x":8, "y":0},
+ {"label":"(", "x":9, "y":0},
+ {"label":")", "x":10, "y":0},
+ {"label":"_", "x":11, "y":0},
+ {"label":"+", "x":12, "y":0},
+ {"label":"Backspace", "x":13, "y":0, "w":2},
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"{", "x":11.5, "y":1},
+ {"label":"}", "x":12.5, "y":1},
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":":", "x":10.75, "y":2},
+ {"label":"@", "x":11.75, "y":2},
+ {"label":"~", "x":12.75, "y":2},
+ {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
+ {"label":"Shift", "x":0, "y":3, "w":1.25},
+ {"label":"|", "x":1.25, "y":3},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":"<", "x":9.25, "y":3},
+ {"label":">", "x":10.25, "y":3},
+ {"label":"?", "x":11.25, "y":3},
+ {"label":"Shift", "x":12.25, "y":3, "w":2.75},
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"Win", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"x":3.75, "y":4, "w":6.25},
+ {"label":"AltGr", "x":10, "y":4, "w":1.25},
+ {"label":"Win", "x":11.25, "y":4, "w":1.25},
+ {"label":"Menu", "x":12.5, "y":4, "w":1.25},
+ {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/hs60/v2/iso/iso.h b/keyboards/hs60/v2/iso/iso.h
new file mode 100644
index 000000000..6a51b7556
--- /dev/null
+++ b/keyboards/hs60/v2/iso/iso.h
@@ -0,0 +1,38 @@
+/* Copyright 2018 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#define XXX KC_NO
+
+#include "quantum.h"
+#include "../../wilba_tech/wt_rgb_backlight_keycodes.h"
+#include "via.h"
+
+// This a shortcut to help you visually see your layout.
+
+#define LAYOUT_60_iso( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K41, K42, K46, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D }, \
+ { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
+}
diff --git a/keyboards/hs60/v2/keymaps/default/keymap.c b/keyboards/hs60/v2/iso/keymaps/default/keymap.c
index c1e575769..c1e575769 100644
--- a/keyboards/hs60/v2/keymaps/default/keymap.c
+++ b/keyboards/hs60/v2/iso/keymaps/default/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/default/readme.md b/keyboards/hs60/v2/iso/keymaps/default/readme.md
index 9aa0a3a2b..9aa0a3a2b 100644
--- a/keyboards/hs60/v2/keymaps/default/readme.md
+++ b/keyboards/hs60/v2/iso/keymaps/default/readme.md
diff --git a/keyboards/hs60/v2/keymaps/iso_andys8/keymap.c b/keyboards/hs60/v2/iso/keymaps/iso_andys8/keymap.c
index 12272ee79..12272ee79 100644
--- a/keyboards/hs60/v2/keymaps/iso_andys8/keymap.c
+++ b/keyboards/hs60/v2/iso/keymaps/iso_andys8/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/iso_andys8/readme.md b/keyboards/hs60/v2/iso/keymaps/iso_andys8/readme.md
index 1b843feb9..1b843feb9 100644
--- a/keyboards/hs60/v2/keymaps/iso_andys8/readme.md
+++ b/keyboards/hs60/v2/iso/keymaps/iso_andys8/readme.md
diff --git a/keyboards/hs60/v2/keymaps/stanrc85/rules.mk b/keyboards/hs60/v2/iso/keymaps/iso_andys8/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/hs60/v2/keymaps/stanrc85/rules.mk
+++ b/keyboards/hs60/v2/iso/keymaps/iso_andys8/rules.mk
diff --git a/keyboards/hs60/v2/keymaps/default_via/keymap.c b/keyboards/hs60/v2/iso/keymaps/via/keymap.c
index c1e575769..c1e575769 100644
--- a/keyboards/hs60/v2/keymaps/default_via/keymap.c
+++ b/keyboards/hs60/v2/iso/keymaps/via/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/default_via/readme.md b/keyboards/hs60/v2/iso/keymaps/via/readme.md
index 2a440f708..2a440f708 100644
--- a/keyboards/hs60/v2/keymaps/default_via/readme.md
+++ b/keyboards/hs60/v2/iso/keymaps/via/readme.md
diff --git a/keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk b/keyboards/hs60/v2/iso/keymaps/via/rules.mk
index 1e5b99807..1e5b99807 100644
--- a/keyboards/hs60/v2/keymaps/win_osx_dual/rules.mk
+++ b/keyboards/hs60/v2/iso/keymaps/via/rules.mk
diff --git a/keyboards/hs60/v2/keymaps/win_osx_dual/keymap.c b/keyboards/hs60/v2/iso/keymaps/win_osx_dual/keymap.c
index 31d7ec1ed..31d7ec1ed 100644
--- a/keyboards/hs60/v2/keymaps/win_osx_dual/keymap.c
+++ b/keyboards/hs60/v2/iso/keymaps/win_osx_dual/keymap.c
diff --git a/keyboards/hs60/v2/keymaps/win_osx_dual/readme.md b/keyboards/hs60/v2/iso/keymaps/win_osx_dual/readme.md
index c2e58bf68..c2e58bf68 100644
--- a/keyboards/hs60/v2/keymaps/win_osx_dual/readme.md
+++ b/keyboards/hs60/v2/iso/keymaps/win_osx_dual/readme.md
diff --git a/keyboards/hs60/v2/iso/keymaps/win_osx_dual/rules.mk b/keyboards/hs60/v2/iso/keymaps/win_osx_dual/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/hs60/v2/iso/keymaps/win_osx_dual/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/hs60/v2/iso/rules.mk b/keyboards/hs60/v2/iso/rules.mk
new file mode 100644
index 000000000..582ed4e81
--- /dev/null
+++ b/keyboards/hs60/v2/iso/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = STM32F303
+
+# Do not put the microcontroller into power saving mode
+# when we get USB suspend event. We want it to keep updating
+# backlight effects.
+OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
+
+# Build Options
+# comment out to disable the options.
+#
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover
+AUDIO_ENABLE = no # Audio output on port C6
+NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
+#SERIAL_LINK_ENABLE = yes
+
+CIE1931_CURVE = yes
+
+LAYOUTS = 60_iso
+
+# project specific files
+SRC = keyboards/wilba_tech/wt_main.c \
+ keyboards/wilba_tech/wt_rgb_backlight.c \
+ drivers/issi/is31fl3733.c \
+ quantum/color.c \
+ drivers/arm/i2c_master.c
diff --git a/keyboards/hs60/v2/keymaps/goatmaster/config.h b/keyboards/hs60/v2/keymaps/goatmaster/config.h
deleted file mode 100644
index f63c90355..000000000
--- a/keyboards/hs60/v2/keymaps/goatmaster/config.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright 2018 Yiancar
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#pragma once
-
-/* Include overwrites for specific keymap */
-
-#define HS60_HHKB
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x4855
-
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_0
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_1
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_2
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_3
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_4
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111
-
-#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR
-#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 255 }, .index = 3-1 } //red
diff --git a/keyboards/hs60/v2/keymaps/hhkb_via/config.h b/keyboards/hs60/v2/keymaps/hhkb_via/config.h
deleted file mode 100644
index fc1b6d8f4..000000000
--- a/keyboards/hs60/v2/keymaps/hhkb_via/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2018 Yiancar
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#pragma once
-
-/* Include overwrites for specific keymap */
-
-#define HS60_HHKB
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x4855
-
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_0
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_1
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_2
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_3
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_4
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111
diff --git a/keyboards/hs60/v2/readme.md b/keyboards/hs60/v2/readme.md
index e838426a2..bd747b1f3 100644
--- a/keyboards/hs60/v2/readme.md
+++ b/keyboards/hs60/v2/readme.md
@@ -17,7 +17,7 @@ Due to the RGB implementation, the HS60 is currently not compatible with communi
Make example for this keyboard (after setting up your build environment):
- make hs60/v2:default
+ make hs60/v2/<layout>:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
@@ -34,4 +34,4 @@ See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools)
- Unplug
- Hold Escape
- Plug In
-- Flash using QMK Toolbox or dfu-util (`make hs60/v2:<keymap>:dfu-util`)
+- Flash using QMK Toolbox or dfu-util (`make hs60/v2/<layout>:<keymap>:dfu-util`)
diff --git a/keyboards/hs60/v2/v2.c b/keyboards/hs60/v2/v2.c
index 2e12538e9..f817ef19e 100644
--- a/keyboards/hs60/v2/v2.c
+++ b/keyboards/hs60/v2/v2.c
@@ -13,6 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#ifndef RGB_BACKLIGHT_HS60
-#error RGB_BACKLIGHT_M60_A not defined, recheck config.h
+#error RGB_BACKLIGHT_HS60 not defined, recheck config.h
#endif
diff --git a/keyboards/idobo/rules.mk b/keyboards/idobo/rules.mk
index 421a4eaae..62fe37fb3 100644
--- a/keyboards/idobo/rules.mk
+++ b/keyboards/idobo/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
EXTRAFLAGS += -flto # Use link time optimization
LAYOUTS = ortho_5x15
diff --git a/keyboards/illuminati/is0/rules.mk b/keyboards/illuminati/is0/rules.mk
index 7baa8f4c3..9c19f7d21 100644
--- a/keyboards/illuminati/is0/rules.mk
+++ b/keyboards/illuminati/is0/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/infinity60/chconf.h b/keyboards/infinity60/chconf.h
index d9114ec85..513ae821d 100644
--- a/keyboards/infinity60/chconf.h
+++ b/keyboards/infinity60/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/infinity60/rules.mk b/keyboards/infinity60/rules.mk
index 6fb43dc75..f93766af9 100644
--- a/keyboards/infinity60/rules.mk
+++ b/keyboards/infinity60/rules.mk
@@ -73,3 +73,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
LAYOUTS = 60_ansi_split_bs_rshift
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/ivy/rules.mk b/keyboards/ivy/rules.mk
index ae94bd3fb..97c9aa136 100644
--- a/keyboards/ivy/rules.mk
+++ b/keyboards/ivy/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/j80/j80.c b/keyboards/j80/j80.c
index 4ac0200a2..bed30cdec 100644
--- a/keyboards/j80/j80.c
+++ b/keyboards/j80/j80.c
@@ -16,10 +16,21 @@
#include "j80.h"
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
+ setPinOutput(D6);
+}
+
bool led_update_kb(led_t led_state) {
if (led_update_user(led_state)) {
- writePin(D1, led_state.caps_lock);
writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
writePin(D6, led_state.scroll_lock);
}
return true;
diff --git a/keyboards/jc65/v32a/config.h b/keyboards/jc65/v32a/config.h
index 5439dbe39..392aebc2a 100644
--- a/keyboards/jc65/v32a/config.h
+++ b/keyboards/jc65/v32a/config.h
@@ -32,7 +32,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 }
#define DIODE_DIRECTION COL2ROW
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLED_NUM 16
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 8
diff --git a/keyboards/jc65/v32a/v32a.c b/keyboards/jc65/v32a/v32a.c
index 2a289872f..f195e8f61 100644
--- a/keyboards/jc65/v32a/v32a.c
+++ b/keyboards/jc65/v32a/v32a.c
@@ -17,32 +17,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "v32a.h"
-#ifdef BACKLIGHT_ENABLE
-void backlight_init_ports(void) {
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // Turn out the lights
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // Turn on the lights
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
- }
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/jc65/v32u4/rules.mk b/keyboards/jc65/v32u4/rules.mk
index e1498325c..34206244a 100644
--- a/keyboards/jc65/v32u4/rules.mk
+++ b/keyboards/jc65/v32u4/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/jd40/rules.mk b/keyboards/jd40/rules.mk
index 439f885fe..73336244e 100644
--- a/keyboards/jd40/rules.mk
+++ b/keyboards/jd40/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-# CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+# CONSOLE_ENABLE = yes # Console for debug
# COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/jd45/rules.mk b/keyboards/jd45/rules.mk
index 9ec5048ae..cc5af4b7a 100644
--- a/keyboards/jd45/rules.mk
+++ b/keyboards/jd45/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
diff --git a/keyboards/jj40/config.h b/keyboards/jj40/config.h
index 2310ce87e..90bcacfd1 100644
--- a/keyboards/jj40/config.h
+++ b/keyboards/jj40/config.h
@@ -35,7 +35,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 12
-// #define BACKLIGHT_BREATHING // Requires #4324 to enable hardware pwm for atmega32a
+#define BACKLIGHT_BREATHING
/* RGB underglow */
// NOTE: for PS2AVRGB boards, underglow commands are sent via I2C to 0xB0.
diff --git a/keyboards/jj40/rules.mk b/keyboards/jj40/rules.mk
index c53a6804c..767ebb93a 100644
--- a/keyboards/jj40/rules.mk
+++ b/keyboards/jj40/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = bootloadHID
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -26,11 +26,11 @@ NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
WS2812_DRIVER = i2c
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x12 planck_mit
diff --git a/keyboards/jj4x4/README.md b/keyboards/jj4x4/README.md
index a7c93c930..24212bc99 100644
--- a/keyboards/jj4x4/README.md
+++ b/keyboards/jj4x4/README.md
@@ -16,6 +16,24 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e
make jj4x4:default:flash
-**Reset Key**: Hold down the key located at *K00*, commonly programmed as *8* while plugging in the keyboard.
+**Reset Key**:
+
+Hold down the key located at *K12*, commonly programmed as *8* while plugging in the keyboard USB cable.
+
+Key *K12* is in the above picture:
+
+Row 2 from the top, Column 2 from the left, see the schematic below:
+
+```
+ ,-----------------------.
+ | | | | |
+ |-----`-----`-----`-----|
+ | | K12 | | |
+ |-----`-----`-----`-----|
+ | | | | |
+ |-----`-----`-----`-----|
+ | | | | |
+ `-----`-----`-----`-----'
+```
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/jj4x4/config.h b/keyboards/jj4x4/config.h
index 8918e60da..b3f33d6e7 100644
--- a/keyboards/jj4x4/config.h
+++ b/keyboards/jj4x4/config.h
@@ -38,7 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 12
-// #define BACKLIGHT_BREATHING // Requires #4324 to enable hardware pwm for atmega32a
+#define BACKLIGHT_BREATHING
/* RGB underglow */
// NOTE: for PS2AVRGB boards, underglow commands are sent via I2C to 0xB0.
diff --git a/keyboards/jj4x4/rules.mk b/keyboards/jj4x4/rules.mk
index aa74cc7c9..82e25e6a7 100644
--- a/keyboards/jj4x4/rules.mk
+++ b/keyboards/jj4x4/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = bootloadHID
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -26,11 +26,11 @@ NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
WS2812_DRIVER = i2c
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x4
diff --git a/keyboards/jj50/backlight.c b/keyboards/jj50/backlight.c
deleted file mode 100644
index fbd241fa9..000000000
--- a/keyboards/jj50/backlight.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#include "backlight.h"
-#include "quantum.h"
-
-#include <avr/pgmspace.h>
-#include <avr/interrupt.h>
-
-#include "backlight_custom.h"
-#include "breathing_custom.h"
-
-// DEBUG
-#include <stdlib.h>
-#include <stdio.h>
-
-// Port D: digital pins of the AVR chipset
-#define NUMLOCK_PORT (1 << 0) // D0
-#define CAPSLOCK_PORT (1 << 1) // D1
-#define BACKLIGHT_PORT (1 << 4) // D4
-#define SCROLLLOCK_PORT (1 << 6) // D6
-
-#define TIMER_CLK_DIV64 0x03 ///< Timer clocked at F_CPU/64
-#define TIMER1PRESCALE TIMER_CLK_DIV64 ///< timer 1 prescaler default
-
-#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
-
-#define PWM_MAX 0xFF
-#define TIMER_TOP 255 // 8 bit PWM
-
-extern backlight_config_t backlight_config;
-
-/**
- * References
- * Port Registers: https://www.arduino.cc/en/Reference/PortManipulation
- * TCCR1A: https://electronics.stackexchange.com/questions/92350/what-is-the-difference-between-tccr1a-and-tccr1b
- * Timers: http://www.avrbeginners.net/architecture/timers/timers.html
- * 16-bit timer setup: http://sculland.com/ATmega168/Interrupts-And-Timers/16-Bit-Timer-Setup/
- * PS2AVRGB firmware: https://github.com/showjean/ps2avrU/tree/master/firmware
- */
-
-// @Override
-// turn LEDs on and off depending on USB caps/num/scroll lock states.
-__attribute__ ((weak))
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1 << USB_LED_NUM_LOCK)) {
- // turn on
- DDRD |= NUMLOCK_PORT;
- PORTD |= NUMLOCK_PORT;
- } else {
- // turn off
- DDRD &= ~NUMLOCK_PORT;
- PORTD &= ~NUMLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- DDRD |= CAPSLOCK_PORT;
- PORTD |= CAPSLOCK_PORT;
- } else {
- DDRD &= ~CAPSLOCK_PORT;
- PORTD &= ~CAPSLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
- DDRD |= SCROLLLOCK_PORT;
- PORTD |= SCROLLLOCK_PORT;
- } else {
- DDRD &= ~SCROLLLOCK_PORT;
- PORTD &= ~SCROLLLOCK_PORT;
- }
-}
-
-#ifdef BACKLIGHT_ENABLE
-
-// sets up Timer 1 for 8-bit PWM
-void timer1PWMSetup(void) { // NOTE ONLY CALL THIS ONCE
- // default 8 bit mode
- TCCR1A &= ~(1 << 1); // cbi(TCCR1A,PWM11); <- set PWM11 bit to HIGH
- TCCR1A |= (1 << 0); // sbi(TCCR1A,PWM10); <- set PWM10 bit to LOW
-
- // clear output compare value A
- // outb(OCR1AH, 0);
- // outb(OCR1AL, 0);
-
- // clear output comparator registers for B
- OCR1BH = 0; // outb(OCR1BH, 0);
- OCR1BL = 0; // outb(OCR1BL, 0);
-}
-
-bool is_init = false;
-void timer1Init(void) {
- // timer1SetPrescaler(TIMER1PRESCALE)
- // set to DIV/64
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | TIMER1PRESCALE;
-
- // reset TCNT1
- TCNT1H = 0; // outb(TCNT1H, 0);
- TCNT1L = 0; // outb(TCNT1L, 0);
-
- // TOIE1: Timer Overflow Interrupt Enable (Timer 1);
- TIMSK |= _BV(TOIE1); // sbi(TIMSK, TOIE1);
-
- is_init = true;
-}
-
-void timer1UnInit(void) {
- // set prescaler back to NONE
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | 0x00; // TIMERRTC_CLK_STOP
-
- // disable timer overflow interrupt
- TIMSK &= ~_BV(TOIE1); // overflow bit?
-
- setPWM(0);
-
- is_init = false;
-}
-
-
-// handle TCNT1 overflow
-//! Interrupt handler for tcnt1 overflow interrupt
-ISR(TIMER1_OVF_vect, ISR_NOBLOCK)
-{
- // sei();
- // handle breathing here
- #ifdef BACKLIGHT_BREATHING
- if (is_breathing()) {
- custom_breathing_handler();
- }
- #endif
-
- // TODO call user defined function
-}
-
-// enable timer 1 PWM
-// timer1PWMBOn()
-void timer1PWMBEnable(void) {
- // turn on channel B (OC1B) PWM output
- // set OC1B as non-inverted PWM
- TCCR1A |= _BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-// disable timer 1 PWM
-// timer1PWMBOff()
-void timer1PWMBDisable(void) {
- TCCR1A &= ~_BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-void enableBacklight(void) {
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
-}
-
-void disableBacklight(void) {
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
-}
-
-void startPWM(void) {
- timer1Init();
- timer1PWMBEnable();
- enableBacklight();
-}
-
-void stopPWM(void) {
- timer1UnInit();
- disableBacklight();
- timer1PWMBDisable();
-}
-
-void b_led_init_ports(void) {
- /* turn backlight on/off depending on user preference */
- #if BACKLIGHT_ON_STATE == 0
- // DDRx register: sets the direction of Port D
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
- #else
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
- #endif
-
- timer1PWMSetup();
- startPWM();
-
- #ifdef BACKLIGHT_BREATHING
- breathing_enable();
- #endif
-}
-
-void b_led_set(uint8_t level) {
- if (level > BACKLIGHT_LEVELS) {
- level = BACKLIGHT_LEVELS;
- }
-
- setPWM((int)(TIMER_TOP * (float) level / BACKLIGHT_LEVELS));
-}
-
-// called every matrix scan
-void b_led_task(void) {
- // do nothing for now
-}
-
-void setPWM(uint16_t xValue) {
- if (xValue > TIMER_TOP) {
- xValue = TIMER_TOP;
- }
- OCR1B = xValue; // timer1PWMBSet(xValue);
-}
-
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/jj50/backlight_custom.h b/keyboards/jj50/backlight_custom.h
deleted file mode 100644
index 7210be840..000000000
--- a/keyboards/jj50/backlight_custom.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifndef BACKLIGHT_CUSTOM_H
-#define BACKLIGHT_CUSTOM_H
-
-#include <avr/pgmspace.h>
-void b_led_init_ports(void);
-void b_led_set(uint8_t level);
-void b_led_task(void);
-void setPWM(uint16_t xValue);
-
-#endif // BACKLIGHT_CUSTOM_H
diff --git a/keyboards/jj50/breathing_custom.h b/keyboards/jj50/breathing_custom.h
deleted file mode 100644
index 71416b1b4..000000000
--- a/keyboards/jj50/breathing_custom.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Breathing effect code for PS2AVRGB boards (ATMEGA32A)
- * Works in conjunction with `backlight.c`.
- *
- * Code adapted from `quantum.c` to register with the existing TIMER1 overflow
- * handler in `backlight.c` instead of setting up its own timer.
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifdef BACKLIGHT_ENABLE
-#ifdef BACKLIGHT_BREATHING
-
-#include "backlight_custom.h"
-
-#ifndef BREATHING_PERIOD
-#define BREATHING_PERIOD 6
-#endif
-
-#define breathing_min() do {breathing_counter = 0;} while (0)
-#define breathing_max() do {breathing_counter = breathing_period * 244 / 2;} while (0)
-
-// TODO make this share code with quantum.c
-
-#define BREATHING_NO_HALT 0
-#define BREATHING_HALT_OFF 1
-#define BREATHING_HALT_ON 2
-#define BREATHING_STEPS 128
-
-static uint8_t breathing_period = BREATHING_PERIOD;
-static uint8_t breathing_halt = BREATHING_NO_HALT;
-static uint16_t breathing_counter = 0;
-
-static bool breathing = false;
-
-bool is_breathing(void) {
- return breathing;
-}
-
-// See http://jared.geek.nz/2013/feb/linear-led-pwm
-static uint16_t cie_lightness(uint16_t v) {
- if (v <= 5243) // if below 8% of max
- return v / 9; // same as dividing by 900%
- else {
- uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
- // to get a useful result with integer division, we shift left in the expression above
- // and revert what we've done again after squaring.
- y = y * y * y >> 8;
- if (y > 0xFFFFUL) // prevent overflow
- return 0xFFFFU;
- else
- return (uint16_t) y;
- }
-}
-
-void breathing_enable(void) {
- breathing = true;
- breathing_counter = 0;
- breathing_halt = BREATHING_NO_HALT;
- // interrupt already registered
-}
-
-void breathing_pulse(void) {
- if (get_backlight_level() == 0)
- breathing_min();
- else
- breathing_max();
- breathing_halt = BREATHING_HALT_ON;
- // breathing_interrupt_enable();
- breathing = true;
-}
-
-void breathing_disable(void) {
- breathing = false;
- // backlight_set(get_backlight_level());
- b_led_set(get_backlight_level()); // custom implementation of backlight_set()
-}
-
-void breathing_self_disable(void)
-{
- if (get_backlight_level() == 0)
- breathing_halt = BREATHING_HALT_OFF;
- else
- breathing_halt = BREATHING_HALT_ON;
-}
-
-void breathing_toggle(void) {
- if (is_breathing())
- breathing_disable();
- else
- breathing_enable();
-}
-
-void breathing_period_set(uint8_t value)
-{
- if (!value)
- value = 1;
- breathing_period = value;
-}
-
-void breathing_period_default(void) {
- breathing_period_set(BREATHING_PERIOD);
-}
-
-void breathing_period_inc(void)
-{
- breathing_period_set(breathing_period+1);
-}
-
-void breathing_period_dec(void)
-{
- breathing_period_set(breathing_period-1);
-}
-
-/* To generate breathing curve in python:
- * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)]
- */
-static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-// Use this before the cie_lightness function.
-static inline uint16_t scale_backlight(uint16_t v) {
- return v / BACKLIGHT_LEVELS * get_backlight_level();
-}
-
-void custom_breathing_handler(void) {
- uint16_t interval = (uint16_t) breathing_period * 244 / BREATHING_STEPS;
- // resetting after one period to prevent ugly reset at overflow.
- breathing_counter = (breathing_counter + 1) % (breathing_period * 244);
- uint8_t index = breathing_counter / interval % BREATHING_STEPS;
-
- if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) ||
- ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1)))
- {
- // breathing_interrupt_disable();
- }
-
- setPWM(cie_lightness(scale_backlight((uint16_t) pgm_read_byte(&breathing_table[index]) * 0x0101U)));
-}
-
-#endif // BACKLIGHT_BREATHING
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/jj50/config.h b/keyboards/jj50/config.h
index 884a28d50..9b9feb067 100644
--- a/keyboards/jj50/config.h
+++ b/keyboards/jj50/config.h
@@ -38,7 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4 }
#define DIODE_DIRECTION COL2ROW
-//#define BACKLIGHT_PIN D4
+#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 12
#define RGB_DI_PIN E2
diff --git a/keyboards/jj50/jj50.c b/keyboards/jj50/jj50.c
index a302adf40..91b10aebe 100644
--- a/keyboards/jj50/jj50.c
+++ b/keyboards/jj50/jj50.c
@@ -16,20 +16,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "jj50.h"
-
-#include "backlight.h"
-#include "backlight_custom.h"
-
-#ifdef BACKLIGHT_ENABLE
-void backlight_init_ports(void) {
- b_led_init_ports();
-}
-
-void backlight_task(void) {
- b_led_task();
-}
-
-void backlight_set(uint8_t level) {
- b_led_set(level);
-}
-#endif
diff --git a/keyboards/jj50/rules.mk b/keyboards/jj50/rules.mk
index 62b21e4df..38faf3716 100644
--- a/keyboards/jj50/rules.mk
+++ b/keyboards/jj50/rules.mk
@@ -29,6 +29,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
#OPT_DEFS = -DDEBUG_LEVEL=0
-SRC = backlight.c
-
LAYOUTS = ortho_5x12
diff --git a/keyboards/jm60/chconf.h b/keyboards/jm60/chconf.h
index d9114ec85..513ae821d 100644
--- a/keyboards/jm60/chconf.h
+++ b/keyboards/jm60/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/jm60/rules.mk b/keyboards/jm60/rules.mk
index d11c38ecf..ed6431b65 100644
--- a/keyboards/jm60/rules.mk
+++ b/keyboards/jm60/rules.mk
@@ -34,7 +34,7 @@ ARMV = 7
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
#OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000
-OPT_DEFS =
+OPT_DEFS =
# Build Options
# comment out to disable the options.
@@ -52,5 +52,9 @@ BACKLIGHT_ENABLE = no
VISUALIZER_ENABLE = no
#LED_DRIVER = is31fl3731c
-#LED_WIDTH = 16
+#LED_WIDTH = 16
#LED_HEIGHT = 5
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/jnao/rules.mk b/keyboards/jnao/rules.mk
index 913ba4d1e..0dcd21146 100644
--- a/keyboards/jnao/rules.mk
+++ b/keyboards/jnao/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x12 ortho_4x12
LAYOUTS_HAS_RGB = no
diff --git a/keyboards/k_type/chconf.h b/keyboards/k_type/chconf.h
index d9114ec85..513ae821d 100644
--- a/keyboards/k_type/chconf.h
+++ b/keyboards/k_type/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/k_type/rules.mk b/keyboards/k_type/rules.mk
index 43579fcc7..e53f316b9 100644
--- a/keyboards/k_type/rules.mk
+++ b/keyboards/k_type/rules.mk
@@ -74,3 +74,7 @@ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
DEBUG_ENABLE = yes
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/kagamidget/config.h b/keyboards/kagamidget/config.h
index 7fe67ffd3..c88730215 100644
--- a/keyboards/kagamidget/config.h
+++ b/keyboards/kagamidget/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/kagamidget/rules.mk b/keyboards/kagamidget/rules.mk
index 93c64e735..a803d1f79 100644
--- a/keyboards/kagamidget/rules.mk
+++ b/keyboards/kagamidget/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
RGBLIGHT_ENABLE = yes
diff --git a/keyboards/katana60/rules.mk b/keyboards/katana60/rules.mk
index ef5ef0685..62a038091 100644
--- a/keyboards/katana60/rules.mk
+++ b/keyboards/katana60/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE ?= no # MIDI support
UNICODE_ENABLE ?= no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/kbdfans/kbd19x/rules.mk b/keyboards/kbdfans/kbd19x/rules.mk
index eb9b5fe7b..1c76790f3 100644
--- a/keyboards/kbdfans/kbd19x/rules.mk
+++ b/keyboards/kbdfans/kbd19x/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kbdfans/kbd4x/rules.mk b/keyboards/kbdfans/kbd4x/rules.mk
index eccc6ebbe..7c7b490f6 100644
--- a/keyboards/kbdfans/kbd4x/rules.mk
+++ b/keyboards/kbdfans/kbd4x/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x12 planck_mit
diff --git a/keyboards/kbdfans/kbd66/rules.mk b/keyboards/kbdfans/kbd66/rules.mk
index 4a96ef03f..5d6c81e7f 100644
--- a/keyboards/kbdfans/kbd66/rules.mk
+++ b/keyboards/kbdfans/kbd66/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/kbdfans/kbd67/hotswap/rules.mk b/keyboards/kbdfans/kbd67/hotswap/rules.mk
index 74a62a22b..08dd1f635 100644
--- a/keyboards/kbdfans/kbd67/hotswap/rules.mk
+++ b/keyboards/kbdfans/kbd67/hotswap/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/mikefightsbears/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/mikefightsbears/keymap.c
index bda8fbc7a..426c72978 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/mikefightsbears/keymap.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/mikefightsbears/keymap.c
@@ -10,10 +10,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[1] = LAYOUT_65_ansi_blocker(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
- KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_END,
- KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, RGB_SAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
- KC_TRNS, RGB_RMOD, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_PGUP, KC_VOLD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
+ _______, _______, RGB_VAI, _______, _______, RGB_SAI, RGB_HUI, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END,
+ _______, RGB_SPD, RGB_VAD, RGB_SPI, _______, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, KC_VOLU,
+ _______, RGB_RMOD, RGB_TOG, RGB_MOD, _______, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_VOLD,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
)
};
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/keymap.c
new file mode 100644
index 000000000..37d7fc0c3
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/keymap.c
@@ -0,0 +1,29 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_65_ansi_blocker(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,\
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, KC_PGUP,\
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,\
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,\
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT),
+ [1] = LAYOUT_65_ansi_blocker(
+ KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME,\
+ KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP,\
+ KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, KC_PGDN,\
+ KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT),
+ [2] = LAYOUT_65_ansi_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ [3] = LAYOUT_65_ansi_blocker(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
+
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/rules.mk
new file mode 100644
index 000000000..43061db1d
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
index b60685e2b..9e47d1258 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
@@ -1,10 +1,10 @@
#pragma once
#include "config_common.h"
-#define VENDOR_ID 0xFEED
+#define VENDOR_ID 0x4B42 // KB
#define PRODUCT_ID 0x1224
#define DEVICE_VER 0x0001
#define MANUFACTURER KBDfans
-#define PRODUCT kbd67mkiirgb
+#define PRODUCT kbd67mkiirgb v1
#define DESCRIPTION kbd67mkii rgb keyboard
#define MATRIX_ROWS 5
@@ -42,4 +42,4 @@
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 35
#define DRIVER_2_LED_TOTAL 32
-#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file
+#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
index bd6827ab0..f1be48510 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
@@ -1,10 +1,10 @@
#pragma once
#include "config_common.h"
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x1224
+#define VENDOR_ID 0x4B42 // KB
+#define PRODUCT_ID 0x1225
#define DEVICE_VER 0x0002
#define MANUFACTURER KBDfans
-#define PRODUCT kbd67mkiirgb
+#define PRODUCT kbd67mkiirgb v2
#define DESCRIPTION kbd67mkii rgb keyboard
#define MATRIX_ROWS 5
diff --git a/keyboards/kbdfans/kbd67/rev1/rules.mk b/keyboards/kbdfans/kbd67/rev1/rules.mk
index a29ca53ec..7e305070b 100644
--- a/keyboards/kbdfans/kbd67/rev1/rules.mk
+++ b/keyboards/kbdfans/kbd67/rev1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kbdfans/kbd67/rev2/rules.mk b/keyboards/kbdfans/kbd67/rev2/rules.mk
index 7f66fc0c8..d97db91e3 100644
--- a/keyboards/kbdfans/kbd67/rev2/rules.mk
+++ b/keyboards/kbdfans/kbd67/rev2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi 65_iso
diff --git a/keyboards/kbdfans/kbd6x/rules.mk b/keyboards/kbdfans/kbd6x/rules.mk
index ae63197e7..ca46832c1 100644
--- a/keyboards/kbdfans/kbd6x/rules.mk
+++ b/keyboards/kbdfans/kbd6x/rules.mk
@@ -14,20 +14,20 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c b/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c
index ad3b6f6c5..1221e753a 100644
--- a/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c
+++ b/keyboards/kbdfans/kbd75/keymaps/tucznak/keymap.c
@@ -85,6 +85,5 @@ void led_set_user(uint8_t usb_led) {
writePinLow(B2);
} else {
setPinInput(B2);
- writePinLow(B2);
}
}
diff --git a/keyboards/kbdfans/kbd75/readme.md b/keyboards/kbdfans/kbd75/readme.md
index 89fe27416..09f06a6ad 100644
--- a/keyboards/kbdfans/kbd75/readme.md
+++ b/keyboards/kbdfans/kbd75/readme.md
@@ -4,10 +4,12 @@ Keyboard Maintainer: QMK Community
Hardware Supported: KBD75 PCB rev 1 and 2
Hardware Availability: https://kbdfans.myshopify.com/products/kbd75-keyboard-set?variant=35638534029
-The KBD75 has two revisions. Revision 2 has a USB C port and allows a numpad layout. `.hex` files made
-for KBD75 revision 1, will still work for revision 2. `.hex` files made for revision 2 (excluding the numpad)
-will also still work on revision 1. Both revisions share the same switch matrix but have switch holes in
-different areas.
+The KBD75 was sold through various rounds, with various PCB changes between them.
+
+* **Round 1 (2017)**: Black PCB - Bootmapper Client, atmega32a MCU (Use [Winkeyless.kr B.mini](../../winkeyless/bmini/) firmware)
+* **Round 2 (2018)**: White PCB - Bootmapper Client, atmega32a MCU (Use [Winkeyless.kr B.mini](../../winkeyless/bmini/) firmware)
+* **Round 3-5 (2018)**: White PCB - QMK Firmware, atmega32u4 MCU (Use KBD75 rev1 or rev2(without numpad support))
+* **Round 6 (2019)**: White PCB with USB C - QMK Firmware, atmega32u4 MCU (Use KBD75 rev1 or rev2(with numpad support))
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/kbdfans/kbd75/rev1/rules.mk b/keyboards/kbdfans/kbd75/rev1/rules.mk
index de0af62b8..ae6507a85 100644
--- a/keyboards/kbdfans/kbd75/rev1/rules.mk
+++ b/keyboards/kbdfans/kbd75/rev1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/kbdfans/kbd75/rev2/rules.mk b/keyboards/kbdfans/kbd75/rev2/rules.mk
index de0af62b8..ae6507a85 100644
--- a/keyboards/kbdfans/kbd75/rev2/rules.mk
+++ b/keyboards/kbdfans/kbd75/rev2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/kbdfans/kbd8x/rules.mk b/keyboards/kbdfans/kbd8x/rules.mk
index fcc28884f..e177a2558 100644
--- a/keyboards/kbdfans/kbd8x/rules.mk
+++ b/keyboards/kbdfans/kbd8x/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/kbdfans/kbdpad/mk1/mk1.c b/keyboards/kbdfans/kbdpad/mk1/mk1.c
index aa781875c..540ba3589 100644
--- a/keyboards/kbdfans/kbdpad/mk1/mk1.c
+++ b/keyboards/kbdfans/kbdpad/mk1/mk1.c
@@ -16,14 +16,18 @@
#include "mk1.h"
-#define NUMLOCK_PIN D0
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
-void matrix_init_kb(void) {
- setPinOutput(NUMLOCK_PIN);
- matrix_init_user();
+void led_init_ports(void) {
+ setPinOutput(D0);
}
-void led_set_kb(uint8_t usb_led) {
- writePin(NUMLOCK_PIN, IS_LED_ON(usb_led, USB_LED_NUM_LOCK));
- led_set_user(usb_led);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ }
+ return true;
}
diff --git a/keyboards/kbdfans/kbdpad_mk2/rules.mk b/keyboards/kbdfans/kbdpad_mk2/rules.mk
index cfb65f5ed..0b86b5904 100644
--- a/keyboards/kbdfans/kbdpad_mk2/rules.mk
+++ b/keyboards/kbdfans/kbdpad_mk2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_6x4
diff --git a/keyboards/kc60/keymaps/ws2812/rules.mk b/keyboards/kc60/keymaps/ws2812/rules.mk
index 5d5a6f8ab..393ff863e 100644
--- a/keyboards/kc60/keymaps/ws2812/rules.mk
+++ b/keyboards/kc60/keymaps/ws2812/rules.mk
@@ -3,10 +3,10 @@
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/kc60/rules.mk b/keyboards/kc60/rules.mk
index 3e7e4797c..487b22c38 100644
--- a/keyboards/kc60/rules.mk
+++ b/keyboards/kc60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/kc60se/rules.mk b/keyboards/kc60se/rules.mk
index 1685cb742..0432d8032 100644
--- a/keyboards/kc60se/rules.mk
+++ b/keyboards/kc60se/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/keebio/bdn9/rules.mk b/keyboards/keebio/bdn9/rules.mk
index a54833407..176175ca2 100644
--- a/keyboards/keebio/bdn9/rules.mk
+++ b/keyboards/keebio/bdn9/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/keebio/bfo9000/config.h b/keyboards/keebio/bfo9000/config.h
index b45ec9c2f..0b279bc34 100644
--- a/keyboards/keebio/bfo9000/config.h
+++ b/keyboards/keebio/bfo9000/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D3, D2, D4, C6, D7, E6 }
#define MATRIX_COL_PINS { B5, B6, B2, B3, B1, F7, F6, F5, F4 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/bfo9000/rules.mk b/keyboards/keebio/bfo9000/rules.mk
index c0f4ed42d..af9ca797b 100644
--- a/keyboards/keebio/bfo9000/rules.mk
+++ b/keyboards/keebio/bfo9000/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/chocopad/rules.mk b/keyboards/keebio/chocopad/rules.mk
index ac68b6652..a21d919d7 100644
--- a/keyboards/keebio/chocopad/rules.mk
+++ b/keyboards/keebio/chocopad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/keebio/dilly/rules.mk b/keyboards/keebio/dilly/rules.mk
index 14f62bd8f..dbb338e3a 100644
--- a/keyboards/keebio/dilly/rules.mk
+++ b/keyboards/keebio/dilly/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/keebio/ergodicity/rules.mk b/keyboards/keebio/ergodicity/rules.mk
index 0c794fb75..3d318fc7b 100644
--- a/keyboards/keebio/ergodicity/rules.mk
+++ b/keyboards/keebio/ergodicity/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/keebio/fourier/config.h b/keyboards/keebio/fourier/config.h
index 9ddc53a0c..a0e85a3b1 100644
--- a/keyboards/keebio/fourier/config.h
+++ b/keyboards/keebio/fourier/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, D7, E6, B4 }
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
#define QMK_ESC_OUTPUT F5
#define QMK_ESC_INPUT F4
#define QMK_LED B0
diff --git a/keyboards/keebio/fourier/rules.mk b/keyboards/keebio/fourier/rules.mk
index 9bd9e1dcc..6ad9ad9ce 100644
--- a/keyboards/keebio/fourier/rules.mk
+++ b/keyboards/keebio/fourier/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/config.h b/keyboards/keebio/iris/keymaps/jasondunsmore/config.h
index 8aa4be367..195c1d3bb 100644
--- a/keyboards/keebio/iris/keymaps/jasondunsmore/config.h
+++ b/keyboards/keebio/iris/keymaps/jasondunsmore/config.h
@@ -17,11 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-/* Use I2C or Serial, not both */
#define USE_SERIAL
-// #define USE_I2C
-
-/* Select hand configuration */
#define MASTER_LEFT
-
-#define TAPPING_TERM 200
+#define TAPPING_TERM 150
+#define TAPPING_TOGGLE 2
diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c b/keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c
index 5f9307663..930c747f0 100644
--- a/keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c
+++ b/keyboards/keebio/iris/keymaps/jasondunsmore/keymap.c
@@ -4,144 +4,61 @@ extern keymap_config_t keymap_config;
// Layers
#define _QWERTY 0 // Base layer
-#define _NUMB 1
-#define _NAVI 2
+#define _NAVI 1 // Navigation layer
+#define _NUMP 2 // Numpad layer
// Keys
-#define KC_NUMB MO(_NUMB)
-#define KC_NAVI MO(_NAVI)
+#define KC_NAVI TT(_NAVI)
+#define KC_NUMP TT(_NUMP)
#define KC_AGRV LALT_T(KC_GRAVE)
+#define KC_AQUO RALT_T(KC_QUOTE)
#define KC_GUIE LGUI_T(KC_ESC)
-#define KC_REST RESET
-#define KC_DBUG DEBUG
-
-// Tap Dance Declarations
-enum {
- TD_LALT_GRV_BSLS = 0,
- TD_LSFT_LBRC,
- TD_RSFT_RBRC,
-};
-
-void alt_grave_backslash(qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- if (!state->pressed) {
- register_code(KC_GRAVE);
- } else {
- register_code(KC_LALT);
- }
- } else if (state->count == 2) {
- register_code(KC_BSLASH);
- }
-}
-
-void alt_grave_backslash_reset(qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- unregister_code(KC_GRAVE);
- unregister_code(KC_LALT);
- } else if (state->count == 2) {
- unregister_code(KC_BSLASH);
- }
-}
-
-void left_brackets(qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- if (!state->pressed) {
- register_code(KC_LSFT);
- register_code(KC_9);
- } else {
- register_code(KC_LSFT);
- }
- } else if (state->count == 2) {
- register_code(KC_LBRC);
- }
-}
-
-void left_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- unregister_code(KC_LSFT);
- unregister_code(KC_9);
- } else if (state->count == 2) {
- unregister_code(KC_LBRC);
- }
-}
-
-void right_brackets(qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- if (!state->pressed) {
- register_code(KC_RSFT);
- register_code(KC_0);
- } else {
- register_code(KC_RSFT);
- }
- } else if (state->count == 2) {
- register_code(KC_RBRC);
- }
-}
-
-void right_brackets_reset(qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- unregister_code(KC_RSFT);
- unregister_code(KC_0);
- } else if (state->count == 2) {
- unregister_code(KC_RBRC);
- }
-}
-
-
-// Tap Dance Definitions
-qk_tap_dance_action_t tap_dance_actions[] = {
- // Tap once for KC_SLSH, twice for KC_BSLS
- [TD_LALT_GRV_BSLS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, alt_grave_backslash, alt_grave_backslash_reset),
- [TD_LSFT_LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, left_brackets, left_brackets_reset),
- [TD_RSFT_RBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, right_brackets, right_brackets_reset)
-};
-
-// Tap Dance Keys
-#define KC_AGRB TD(TD_LALT_GRV_BSLS)
-#define KC_LSBK TD(TD_LSFT_LBRC)
-#define KC_RSBK TD(TD_RSFT_RBRC)
+#define KC_DSFT RSFT_T(KC_DEL)
+#define KC_PSFT LSFT_T(KC_KP_PLUS)
+#define KC_MCTL RCTL_T(KC_MINS)
+#define KC_ECTL LCTL_T(KC_EQL)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
- GUIE, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL,
+ GUIE, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSLS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- AGRB, A, S, D, F, G, H, J, K, L, SCLN,QUOT,
+ AGRV, A, S, D, F, G, H, J, K, L, SCLN,AQUO,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- LSBK, Z, X, C, V, B, MINS, EQL, N, M, COMM,DOT, SLSH,RSBK,
+ PSFT, Z, X, C, V, B, NAVI, NAVI, N, M, COMM,DOT, SLSH,DSFT,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- NUMB,LCTL,SPC, ENT, RCTL,NAVI
+ NAVI,ECTL, SPC, ENT, MCTL,NAVI
// `----+----+----' `----+----+----'
),
- [_NUMB] = LAYOUT_kc(
+ [_NAVI] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
F12, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- NO, F17, F18, F19, F20, NO, NO, 7, 8, 9, 0, TRNS,
+ TRNS,TRNS,MUTE,VOLU,TRNS,TRNS, PGUP,HOME, UP, END, TRNS,TRNS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- TRNS,F13, F14, F15, F16, NO, ASTR, 4, 5, 6, PLUS,TRNS,
+ TRNS,TRNS,BRID,VOLD,BRIU,TRNS, PGDN,LEFT,DOWN,RGHT,TRNS,TRNS,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- TRNS,F21, F22, F23, F24, NO, TRNS, TRNS,SLSH, 1, 2, 3, MINS,TRNS,
+ TRNS,TRNS,TRNS,NUMP,INS, TRNS,TRNS, TRNS,TRNS,CAPS,LBRC,RBRC,TRNS,TRNS,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- TRNS,TRNS,TRNS, TRNS,DOT, TRNS
+ TRNS,TRNS,TRNS, TRNS,TRNS,TRNS
// `----+----+----' `----+----+----'
- ),
+ ),
- [_NAVI] = LAYOUT_kc(
+ [_NUMP] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
- PWR, MUTE,VOLD,VOLU,BRID,BRIU, REST,DBUG, NO, NO, NO, TRNS,
+ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,NLCK,PSLS,PAST,PMNS,TRNS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- WAKE,HOME,PGUP, UP, PGDN,TRNS, NO, NO, NO, NO, NO, TRNS,
+ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, P7, P8, P9, PPLS,TRNS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
- TRNS,END, LEFT,DOWN,RGHT,TRNS, PAUS,CAPS,PSCR,SLCK,INS, TRNS,
+ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, P4, P5, P6, PCMM,TRNS,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, NO, NO, NO, NO, NO, TRNS,
+ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, P1, P2, P3, PEQL,TRNS,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- TRNS,TRNS,TRNS, TRNS,TRNS,TRNS
+ TRNS,TRNS,TRNS, PENT, P0, PDOT
// `----+----+----' `----+----+----'
)
};
diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/readme.md b/keyboards/keebio/iris/keymaps/jasondunsmore/readme.md
index 0817b5e9b..1f4f57603 100644
--- a/keyboards/keebio/iris/keymaps/jasondunsmore/readme.md
+++ b/keyboards/keebio/iris/keymaps/jasondunsmore/readme.md
@@ -1,7 +1,7 @@
# jasondunsmore's iris layout
-_QWERTY is the default layer, from which all letters, symbols and
-numbers can be accessed. The _NUMB layer contains a numberpad,
-operators, and function keys. The _NAVI layer contains navigation
-keys, some hardware adjustment keys, lock keys, and RESET/DEBUG for
-QMK.
+_QWERTY is the default layer, from which all letters, numbers, and
+symbols (with the exception of the square brackets and curly braces)
+can be accessed. The _NAVI layer contains navigation keys, some
+hardware adjustment keys, and lock keys. The _NUMP layer contains a
+numberpad and operators.
diff --git a/keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk b/keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk
index d58c21f2b..a6c5cfa18 100644
--- a/keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk
+++ b/keyboards/keebio/iris/keymaps/jasondunsmore/rules.mk
@@ -1,2 +1 @@
-TAP_DANCE_ENABLE = yes
COMMAND_ENABLE = no
diff --git a/keyboards/keebio/iris/rev1/rules.mk b/keyboards/keebio/iris/rev1/rules.mk
index 2d7155bf8..53719d755 100644
--- a/keyboards/keebio/iris/rev1/rules.mk
+++ b/keyboards/keebio/iris/rev1/rules.mk
@@ -16,10 +16,10 @@ BOOTLOADER = caterina
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/iris/rev1_led/rules.mk b/keyboards/keebio/iris/rev1_led/rules.mk
index 2d7155bf8..53719d755 100644
--- a/keyboards/keebio/iris/rev1_led/rules.mk
+++ b/keyboards/keebio/iris/rev1_led/rules.mk
@@ -16,10 +16,10 @@ BOOTLOADER = caterina
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/iris/rev2/rules.mk b/keyboards/keebio/iris/rev2/rules.mk
index 317898854..765fa7f07 100644
--- a/keyboards/keebio/iris/rev2/rules.mk
+++ b/keyboards/keebio/iris/rev2/rules.mk
@@ -16,10 +16,10 @@ BOOTLOADER = caterina
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/iris/rev3/rules.mk b/keyboards/keebio/iris/rev3/rules.mk
index f3c90a078..ea92bc98f 100644
--- a/keyboards/keebio/iris/rev3/rules.mk
+++ b/keyboards/keebio/iris/rev3/rules.mk
@@ -16,10 +16,10 @@ BOOTLOADER = qmk-dfu
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/iris/rev4/rules.mk b/keyboards/keebio/iris/rev4/rules.mk
index f3c90a078..ea92bc98f 100644
--- a/keyboards/keebio/iris/rev4/rules.mk
+++ b/keyboards/keebio/iris/rev4/rules.mk
@@ -16,10 +16,10 @@ BOOTLOADER = qmk-dfu
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/laplace/rules.mk b/keyboards/keebio/laplace/rules.mk
index 01efe96f6..8d273917c 100644
--- a/keyboards/keebio/laplace/rules.mk
+++ b/keyboards/keebio/laplace/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/levinson/keymaps/steno/rules.mk b/keyboards/keebio/levinson/keymaps/steno/rules.mk
index 9c31e590e..47cd0563d 100644
--- a/keyboards/keebio/levinson/keymaps/steno/rules.mk
+++ b/keyboards/keebio/levinson/keymaps/steno/rules.mk
@@ -1,6 +1,6 @@
EXTRAKEY_ENABLE = no # Disable if you run out of usb endpoints. Media keys need this to work.
-MOUSEKEY_ENABLE = no # Mouse keys(+4700) Uses extra usb enpoints.
-STENO_ENABLE = yes # Additional protocols for Stenography(+1700), requires VIRTSER.
+MOUSEKEY_ENABLE = no # Mouse keys Uses extra usb enpoints.
+STENO_ENABLE = yes # Additional protocols for Stenography, requires VIRTSER.
AUDIO_ENABLE = no # Audio output on port C6
MIDI_ENABLE = no # MIDI controls
NKRO_ENABLE = yes
diff --git a/keyboards/keebio/levinson/rev1/config.h b/keyboards/keebio/levinson/rev1/config.h
index a34c8bdcc..5b23f18c1 100644
--- a/keyboards/keebio/levinson/rev1/config.h
+++ b/keyboards/keebio/levinson/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/levinson/rev2/config.h b/keyboards/keebio/levinson/rev2/config.h
index 9d6947125..e8e7294dd 100644
--- a/keyboards/keebio/levinson/rev2/config.h
+++ b/keyboards/keebio/levinson/rev2/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, D7, E6, B4 }
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h
index 3e45b9d42..da5f4e741 100644
--- a/keyboards/keebio/levinson/rev3/config.h
+++ b/keyboards/keebio/levinson/rev3/config.h
@@ -40,6 +40,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { F4, F7, D3, B5, B4, E6 }
#define SPLIT_HAND_PIN D2
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/levinson/rules.mk b/keyboards/keebio/levinson/rules.mk
index c7446445f..d80f94a29 100644
--- a/keyboards/keebio/levinson/rules.mk
+++ b/keyboards/keebio/levinson/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/nyquist/rev1/rules.mk b/keyboards/keebio/nyquist/rev1/rules.mk
index c377644ba..a3c3f036b 100644
--- a/keyboards/keebio/nyquist/rev1/rules.mk
+++ b/keyboards/keebio/nyquist/rev1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/nyquist/rev2/rules.mk b/keyboards/keebio/nyquist/rev2/rules.mk
index a6131ae52..9735fbebd 100644
--- a/keyboards/keebio/nyquist/rev2/rules.mk
+++ b/keyboards/keebio/nyquist/rev2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/nyquist/rev3/rules.mk b/keyboards/keebio/nyquist/rev3/rules.mk
index 740ff8002..d7db1800a 100644
--- a/keyboards/keebio/nyquist/rev3/rules.mk
+++ b/keyboards/keebio/nyquist/rev3/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = qmk-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/quefrency/keymaps/default65/keymap.c b/keyboards/keebio/quefrency/keymaps/default65/keymap.c
index 3e7773167..4ac622f8e 100644
--- a/keyboards/keebio/quefrency/keymaps/default65/keymap.c
+++ b/keyboards/keebio/quefrency/keymaps/default65/keymap.c
@@ -30,3 +30,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ else if (index == 1) {
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ }
+}
diff --git a/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c b/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c
index 4503291d2..478152006 100644
--- a/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c
+++ b/keyboards/keebio/quefrency/keymaps/default65macro/keymap.c
@@ -30,3 +30,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ else if (index == 1) {
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ }
+}
diff --git a/keyboards/hs60/v2/keymaps/ansi/config.h b/keyboards/keebio/quefrency/keymaps/yoryer/config.h
index 96adaf568..f9efe78c5 100644
--- a/keyboards/hs60/v2/keymaps/ansi/config.h
+++ b/keyboards/keebio/quefrency/keymaps/yoryer/config.h
@@ -1,5 +1,9 @@
/*
-Copyright 2018 Yiancar
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+Copyright 2018 Danny Nguyen <danny@keeb.io>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -14,10 +18,10 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#pragma once
-/* Include overwrites for specific keymap */
+/* Use I2C or Serial, not both */
-#define HS60_ANSI
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x4854
+#define USE_SERIAL
+// #define USE_I2C
diff --git a/keyboards/keebio/quefrency/keymaps/yoryer/keymap.c b/keyboards/keebio/quefrency/keymaps/yoryer/keymap.c
new file mode 100644
index 000000000..fcfaead5b
--- /dev/null
+++ b/keyboards/keebio/quefrency/keymaps/yoryer/keymap.c
@@ -0,0 +1,50 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum layer {
+ _BASE,
+ _FN1,
+ _RGB2,
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /**
+ LA1, LA2, LA3, LA4, LA5, LA6, LA7, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
+ LB1, LB2, LB3, LB4, LB5, LB6, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
+ LC1, LC2, LC3, LC4, LC5, LC6, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
+ LD1, LD3, LD4, LD5, LD6, LD7, RD1, RD2, RD3, RD4, RD6, RD7, RD8, RD9, \
+ LE1, LE2, LE3, LE5, LE7, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
+ ) \
+ **/
+ [_BASE] = LAYOUT_65(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_HOME, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(_FN1), KC_SPC, _______, KC_RALT, KC_RCTL, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN1] = LAYOUT_65(
+ KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MUTE, KC_BRMU, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRMD, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, \
+ _______, _______, _______, TG(_RGB2), _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
+ ),
+
+ [_RGB2] = LAYOUT_65(
+ KC_GESC, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______, _______, _______, _______, _______, RGB_VAI, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAD, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_HUD, RGB_MOD
+ )
+};
diff --git a/keyboards/keebio/quefrency/quefrency.h b/keyboards/keebio/quefrency/quefrency.h
index 0c387a6d5..89db94236 100644
--- a/keyboards/keebio/quefrency/quefrency.h
+++ b/keyboards/keebio/quefrency/quefrency.h
@@ -5,6 +5,9 @@
#ifdef KEYBOARD_keebio_quefrency_rev1
#include "rev1.h"
#endif
+#ifdef KEYBOARD_keebio_quefrency_rev2
+ #include "rev2.h"
+#endif
// Used to create a keymap using only KC_ prefixed keys
#define LAYOUT_kc( \
diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h
index 1d726a0fc..1e3be6347 100644
--- a/keyboards/keebio/quefrency/rev1/config.h
+++ b/keyboards/keebio/quefrency/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { F5, F6, F7, B1, B3, B2, B6, C6 }
#define SPLIT_HAND_PIN D2
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h
new file mode 100644
index 000000000..e50c8142e
--- /dev/null
+++ b/keyboards/keebio/quefrency/rev2/config.h
@@ -0,0 +1,62 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xCB10
+#define PRODUCT_ID 0x1257
+#define DEVICE_VER 0x0200
+#define MANUFACTURER Keebio
+#define PRODUCT Quefrency
+#define DESCRIPTION Split 60/65 percent staggered keyboard
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 9
+
+#define DIODE_DIRECTION COL2ROW
+// wiring of each half
+#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7 }
+#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 }
+#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
+#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
+#define SPLIT_HAND_PIN F7
+#define ENCODERS_PAD_A { F6 }
+#define ENCODERS_PAD_B { F5 }
+#define ENCODERS_PAD_A_RIGHT { D4 }
+#define ENCODERS_PAD_B_RIGHT { D6 }
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* serial.c configuration for split keyboard */
+#define SOFT_SERIAL_PIN D0
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN E6
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 16 // Number of LEDs
+#define RGBLED_SPLIT { 8, 8 }
+#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 }
diff --git a/keyboards/keebio/quefrency/rev2/rev2.c b/keyboards/keebio/quefrency/rev2/rev2.c
new file mode 100644
index 000000000..d713a0ff3
--- /dev/null
+++ b/keyboards/keebio/quefrency/rev2/rev2.c
@@ -0,0 +1 @@
+#include "quefrency.h"
diff --git a/keyboards/keebio/quefrency/rev2/rev2.h b/keyboards/keebio/quefrency/rev2/rev2.h
new file mode 100644
index 000000000..6d3db5584
--- /dev/null
+++ b/keyboards/keebio/quefrency/rev2/rev2.h
@@ -0,0 +1,194 @@
+#pragma once
+
+#include "quefrency.h"
+#include "quantum.h"
+
+#ifdef USE_I2C
+#include <stddef.h>
+#ifdef __AVR__
+ #include <avr/io.h>
+ #include <avr/interrupt.h>
+#endif
+#endif
+
+#define LAYOUT_60( \
+ LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
+ LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
+ LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
+ LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
+ LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
+ ) \
+ { \
+ { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
+ { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
+ }
+
+#define LAYOUT LAYOUT_60 // For backwards compatibility with Rev. 1
+
+#define LAYOUT_65( \
+ LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
+ LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
+ LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
+ LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
+ LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
+ ) \
+ { \
+ { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { KC_NO, KC_NO, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
+ { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
+ }
+
+#define LAYOUT_60_with_macro( \
+ LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
+ LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, \
+ LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, \
+ LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
+ LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
+ ) \
+ { \
+ { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
+ { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, KC_NO }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, KC_NO }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
+ }
+
+#define LAYOUT_65_with_macro( \
+ LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
+ LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
+ LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
+ LD1, LD2, LD3, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
+ LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
+ ) \
+ { \
+ { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { LD1, LD2, LD3, KC_NO, LD5, LD6, LD7, LD8, LD9 }, \
+ { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO, RC8, RC9 }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
+ }
+
+#define LAYOUT_60_iso( \
+ LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
+ LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
+ LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
+ LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
+ LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
+ ) \
+ { \
+ { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
+ { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
+ }
+
+#define LAYOUT_65_iso( \
+ LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
+ LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
+ LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
+ LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
+ LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
+ ) \
+ { \
+ { KC_NO, KC_NO, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { KC_NO, KC_NO, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { KC_NO, KC_NO, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { KC_NO, KC_NO, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
+ { KC_NO, KC_NO, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
+ }
+
+#define LAYOUT_60_iso_with_macro( \
+ LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, \
+ LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, \
+ LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, \
+ LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, \
+ LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8 \
+ ) \
+ { \
+ { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
+ { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, KC_NO }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, KC_NO }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, KC_NO }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, KC_NO }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, KC_NO } \
+ }
+
+#define LAYOUT_65_iso_with_macro( \
+ LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
+ LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB9, \
+ LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
+ LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
+ LE1, LE2, LE3, LE4, LE5, LE6, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
+ ) \
+ { \
+ { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
+ { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, KC_NO, RB9 }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
+ }
+
+#define LAYOUT_all( \
+ LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
+ LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
+ LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9, \
+ LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9, RD1, RD2, RD3, RD4, RD5, RD7, RD8, RD9, \
+ LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
+ ) \
+ { \
+ { LA1, LA2, LA3, LA4, LA5, LA6, LA7, LA8, LA9 }, \
+ { LB1, LB2, LB3, LB4, LB5, LB6, LB7, LB8, KC_NO }, \
+ { LC1, LC2, LC3, LC4, LC5, LC6, LC7, LC8, KC_NO }, \
+ { LD1, LD2, LD3, LD4, LD5, LD6, LD7, LD8, LD9 }, \
+ { LE1, LE2, LE3, LE4, LE5, LE6, LE7, LE8, KC_NO }, \
+ { RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9 }, \
+ { RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9 }, \
+ { RC1, RC2, RC3, RC4, RC5, RC6, RC7, RC8, RC9 }, \
+ { RD1, RD2, RD3, RD4, RD5, KC_NO, RD7, RD8, RD9 }, \
+ { RE1, RE2, KC_NO, RE4, RE5, RE6, RE7, RE8, RE9 } \
+ }
diff --git a/keyboards/keebio/quefrency/rev2/rules.mk b/keyboards/keebio/quefrency/rev2/rules.mk
new file mode 100644
index 000000000..32e788159
--- /dev/null
+++ b/keyboards/keebio/quefrency/rev2/rules.mk
@@ -0,0 +1,3 @@
+BACKLIGHT_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+ENCODER_ENABLE = yes
diff --git a/keyboards/keebio/quefrency/rules.mk b/keyboards/keebio/quefrency/rules.mk
index 284a0def3..a13f0478b 100644
--- a/keyboards/keebio/quefrency/rules.mk
+++ b/keyboards/keebio/quefrency/rules.mk
@@ -15,11 +15,11 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
diff --git a/keyboards/keebio/rorschach/rules.mk b/keyboards/keebio/rorschach/rules.mk
index f6007e442..caf5fdf82 100644
--- a/keyboards/keebio/rorschach/rules.mk
+++ b/keyboards/keebio/rorschach/rules.mk
@@ -11,10 +11,10 @@ MCU = atmega32u4
# ATmega328P USBasp
BOOTLOADER = caterina
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/tragicforce68/rules.mk b/keyboards/keebio/tragicforce68/rules.mk
index f9f487a2a..549ffe9fa 100644
--- a/keyboards/keebio/tragicforce68/rules.mk
+++ b/keyboards/keebio/tragicforce68/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/keebio/tukey/rules.mk b/keyboards/keebio/tukey/rules.mk
index c74f16996..af163a0d6 100644
--- a/keyboards/keebio/tukey/rules.mk
+++ b/keyboards/keebio/tukey/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/keebio/viterbi/rules.mk b/keyboards/keebio/viterbi/rules.mk
index 0759ab925..0b746d172 100644
--- a/keyboards/keebio/viterbi/rules.mk
+++ b/keyboards/keebio/viterbi/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keebio/wavelet/config.h b/keyboards/keebio/wavelet/config.h
index 6f67fdbaf..71366ec24 100644
--- a/keyboards/keebio/wavelet/config.h
+++ b/keyboards/keebio/wavelet/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F4, F5, F7, B3, D2, D1, D4, D7 }
#define MATRIX_COL_PINS { F6, B1, B2, B6, B4, E6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/wavelet/rules.mk b/keyboards/keebio/wavelet/rules.mk
index f924db62b..b00535b7b 100644
--- a/keyboards/keebio/wavelet/rules.mk
+++ b/keyboards/keebio/wavelet/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/keycapsss/o4l_5x12/rules.mk b/keyboards/keycapsss/o4l_5x12/rules.mk
index 070353537..8077dc1e1 100644
--- a/keyboards/keycapsss/o4l_5x12/rules.mk
+++ b/keyboards/keycapsss/o4l_5x12/rules.mk
@@ -11,10 +11,10 @@ MCU = atmega32u4
# ATmega328P USBasp
BOOTLOADER = caterina
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/keyhive/maypad/rules.mk b/keyboards/keyhive/maypad/rules.mk
index f76179af6..a14772f6a 100644
--- a/keyboards/keyhive/maypad/rules.mk
+++ b/keyboards/keyhive/maypad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x4 numpad_5x4
diff --git a/keyboards/kinesis/keymaps/carpalx/rules.mk b/keyboards/kinesis/keymaps/carpalx/rules.mk
index 63f52ac18..9c6a4673d 100644
--- a/keyboards/kinesis/keymaps/carpalx/rules.mk
+++ b/keyboards/kinesis/keymaps/carpalx/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/kinesis/keymaps/default/rules.mk b/keyboards/kinesis/keymaps/default/rules.mk
index 7a331cd53..46af5cd7b 100644
--- a/keyboards/kinesis/keymaps/default/rules.mk
+++ b/keyboards/kinesis/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/kinesis/keymaps/default_pretty/rules.mk b/keyboards/kinesis/keymaps/default_pretty/rules.mk
index 7a331cd53..46af5cd7b 100644
--- a/keyboards/kinesis/keymaps/default_pretty/rules.mk
+++ b/keyboards/kinesis/keymaps/default_pretty/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/kinesis/keymaps/dvorak/rules.mk b/keyboards/kinesis/keymaps/dvorak/rules.mk
index 7a331cd53..46af5cd7b 100644
--- a/keyboards/kinesis/keymaps/dvorak/rules.mk
+++ b/keyboards/kinesis/keymaps/dvorak/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/kinesis/rules.mk b/keyboards/kinesis/rules.mk
index faa3e454c..cc0691e98 100644
--- a/keyboards/kinesis/rules.mk
+++ b/keyboards/kinesis/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/kingly_keys/little_foot/rules.mk b/keyboards/kingly_keys/little_foot/rules.mk
index d360340c5..c314b98dd 100644
--- a/keyboards/kingly_keys/little_foot/rules.mk
+++ b/keyboards/kingly_keys/little_foot/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk b/keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk
index 1e3cebb14..5e60b284c 100644
--- a/keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk
+++ b/keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk
@@ -1 +1,3 @@
RGBLIGHT_ENABLE = yes
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/kingly_keys/romac/rules.mk b/keyboards/kingly_keys/romac/rules.mk
index a3da8aa83..9bd22f18b 100644
--- a/keyboards/kingly_keys/romac/rules.mk
+++ b/keyboards/kingly_keys/romac/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/kingly_keys/romac_plus/rules.mk b/keyboards/kingly_keys/romac_plus/rules.mk
index ce00f6166..24aa01c53 100644
--- a/keyboards/kingly_keys/romac_plus/rules.mk
+++ b/keyboards/kingly_keys/romac_plus/rules.mk
@@ -14,20 +14,20 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes # Enable support for EC11 Rotary Encoder
OLED_DRIVER_ENABLE = yes # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C
diff --git a/keyboards/kingly_keys/ropro/rules.mk b/keyboards/kingly_keys/ropro/rules.mk
index 69774ec35..d3fad8265 100644
--- a/keyboards/kingly_keys/ropro/rules.mk
+++ b/keyboards/kingly_keys/ropro/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
diff --git a/keyboards/kingly_keys/smd_milk/rules.mk b/keyboards/kingly_keys/smd_milk/rules.mk
index 815f4866c..f34f8891b 100644
--- a/keyboards/kingly_keys/smd_milk/rules.mk
+++ b/keyboards/kingly_keys/smd_milk/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/kingly_keys/soap/rules.mk b/keyboards/kingly_keys/soap/rules.mk
index 27e315847..56adb1e55 100644
--- a/keyboards/kingly_keys/soap/rules.mk
+++ b/keyboards/kingly_keys/soap/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
diff --git a/keyboards/kira75/rules.mk b/keyboards/kira75/rules.mk
index 0f29718cc..ad3d1a865 100644
--- a/keyboards/kira75/rules.mk
+++ b/keyboards/kira75/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/kmac/config.h b/keyboards/kmac/config.h
index 652263d2b..b2c7f4d44 100644
--- a/keyboards/kmac/config.h
+++ b/keyboards/kmac/config.h
@@ -46,7 +46,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define DIODE_DIRECTION
/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
+//#define BACKLIGHT_LEVELS 3
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
diff --git a/keyboards/kmac/matrix.c b/keyboards/kmac/matrix.c
index 2212ee076..9bc59a078 100644
--- a/keyboards/kmac/matrix.c
+++ b/keyboards/kmac/matrix.c
@@ -140,7 +140,7 @@ static void select_col(uint8_t col) {
static void init_pins(void) {
unselect_cols();
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
- setPinInput(row_pins[x]);
+ setPinInputHigh(row_pins[x]);
}
setPinInputHigh(E2);
diff --git a/keyboards/kmac/rules.mk b/keyboards/kmac/rules.mk
index 8f53f26cd..beda52398 100644
--- a/keyboards/kmac/rules.mk
+++ b/keyboards/kmac/rules.mk
@@ -17,18 +17,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/kmini/config.h b/keyboards/kmini/config.h
index b5460c9de..6224a739e 100755
--- a/keyboards/kmini/config.h
+++ b/keyboards/kmini/config.h
@@ -43,7 +43,7 @@
//#define DIODE_DIRECTION
/* number of backlight levels */
-#define BACKLIGHT_LEVELS 3
+//#define BACKLIGHT_LEVELS 3
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
diff --git a/keyboards/kmini/rules.mk b/keyboards/kmini/rules.mk
index 0406c3232..076770a0a 100755
--- a/keyboards/kmini/rules.mk
+++ b/keyboards/kmini/rules.mk
@@ -17,18 +17,18 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Custom matrix file
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/knops/mini/keymaps/mverteuil/config.h b/keyboards/knops/mini/keymaps/mverteuil/config.h
new file mode 100644
index 000000000..f72145c5a
--- /dev/null
+++ b/keyboards/knops/mini/keymaps/mverteuil/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2017 Pawnerd, 2019 Matthew de Verteuil
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#if defined(AUDIO_ENABLE)
+ #define AUDIO_CLICKY
+ #define B5_AUDIO
+ #define C6_AUDIO
+ #define STARTUP_SONG SONG(ZELDA_PUZZLE)
+ #define GOODBYE_SONG SONG(COIN_SOUND)
+#endif
diff --git a/keyboards/knops/mini/keymaps/mverteuil/keymap.c b/keyboards/knops/mini/keymaps/mverteuil/keymap.c
new file mode 100644
index 000000000..5ecba0d5a
--- /dev/null
+++ b/keyboards/knops/mini/keymaps/mverteuil/keymap.c
@@ -0,0 +1,306 @@
+#include QMK_KEYBOARD_H
+
+#define MAXIMIZ A(G(KC_F))
+#define NXTDSPL C(A(G(KC_RIGHT)))
+#define BTMHALF A(G(KC_DOWN))
+#define TOPHALF A(G(KC_UP))
+#define NXTTHRD SS_LCTL(SS_LALT(SS_TAP(X_RIGHT)))
+#define PRVTHRD C(A(KC_LEFT))
+
+#define LT_MSTP LT(_LAYER_SELECT, KC_MSTP)
+#define LT_ESC LT(_LAYER_SELECT, KC_ESC)
+#define LT_NXTH TD(TD_SPEC)
+
+#define writeLayerLedState(layer) writePin(layer)
+#define layer_led_0_off B6, false
+#define layer_led_1_off D5, true
+#define layer_led_2_off B0, false
+#define layer_led_0_on B6, true
+#define layer_led_1_on D5, false
+#define layer_led_2_on B0, true
+
+void led_init_animation(void);
+void led_set_layer(int layer);
+void td_spectacles_finish(qk_tap_dance_state_t *state, void *user_data);
+void td_spectacles_reset(qk_tap_dance_state_t *state, void *user_data);
+
+enum layer_led_mode {
+ ALL_LAYERS_OFF = -1,
+ LAYER_0,
+ LAYER_1,
+ LAYER_2,
+ LAYER_3,
+ LAYER_4,
+ LAYER_5,
+ ALL_LAYERS_ON,
+};
+
+enum mini_layers {
+ _MEDIA,
+ _COPYPASTA,
+ _SPECTACLES,
+ _LAYER_3,
+ _LAYER_4,
+ _LAYER_5,
+ _LAYER_SELECT,
+};
+
+enum { TD_SPEC = 0 };
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ /* Tap once for spectacles macro, hold for layer toggle */
+ [TD_SPEC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_spectacles_finish, td_spectacles_reset),
+};
+
+/*
+ * Key Layout
+ * _____ _____ _____
+ * | | | | | |
+ * | 1 | | 2 | | 3 |
+ * |_____| |_____| |_____|
+ * _____ _____ _____
+ * | | | | | |
+ * | 4 | | 5 | | 6 |
+ * |_____| |_____| |_____|
+ *
+ * Hold 1 and:
+ * - press 4, 5, or 6 to change layers
+ * - press 3 to reset, or press and hold 3 to enter DFU programming mode
+ *
+ * If something prevents you from using the above to reprogram, you can hold 3 while powering on as a fallback.
+ */
+
+/* clang-format off */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * Layer 0 (Media Keys)
+ * _____ _____ _____
+ * | | | | | |
+ * |Stop | |VolUp| |Play |
+ * |_____| |_____| |_____|
+ * _____ _____ _____
+ * | | | | | |
+ * |Prev | |VolDn| |Next |
+ * |_____| |_____| |_____|
+ *
+ */
+ [_MEDIA] = LAYOUT(
+ LT_MSTP, KC_VOLU, KC_MPLY,
+ KC_MPRV, KC_VOLD, KC_MNXT
+ ),
+
+ /*
+ * Layer 1 (Copy and Paste Macros)
+ * _____ _____ _____
+ * | | | | | |
+ * | ESC | |Ctl+Z| |CSf+Z|
+ * |_____| |_____| |_____|
+ * _____ _____ _____
+ * | | | | | |
+ * |Ctl+X| |Ctl+C| |Ctl+V|
+ * |_____| |_____| |_____|
+ *
+ */
+
+ [_COPYPASTA] = LAYOUT(
+ LT_ESC, C(KC_Z), C(S(KC_Z)),
+ C(KC_X), C(KC_C), C(KC_V)
+ ),
+
+ /*
+ * Layer 2 (Spectacles Macros)
+ * _LT&_ _____ _____
+ * | Win | | Win | | Win |
+ * | Next| | Top | |Mximze
+ * |_1/3_| |_1/2_| |_____|
+ * _____ _____ _____
+ * | Win | | Win | | Win |
+ * | Prev| | Bot | | Next|
+ * |_1/3_| |_1/2_| |Displ|
+ *
+ */
+ [_SPECTACLES] = LAYOUT(
+ LT_NXTH,TOPHALF,MAXIMIZ,
+ PRVTHRD,BTMHALF,NXTDSPL
+ ),
+
+ /*
+ * Layer 6 (Layer Select/Reset)
+ * _____ _____ _____
+ * | | | | | |
+ * |None | |None | |Reset|
+ * |_____| |_____| |_____|
+ * _____ _____ _____
+ * |Layer| |Layer| |Layer|
+ * | 0 | | 1 | | 2 |
+ * |_____| |_____| |_____|
+ *
+ * Layers 0, 1, and 2 have the top left button held to activate this layer.
+ * Then press the specific layer to switch to it.
+ *
+ */
+ [_LAYER_SELECT] = LAYOUT(
+ _______, _______, RESET,
+ TO(_MEDIA),TO(_COPYPASTA),TO(_SPECTACLES)
+ )
+};
+/* clang-format on */
+
+/*
+ * Knops Mini LED Numbers:
+ * _____ _____ _____
+ * | | | | | |
+ * | 1 | | 2 | | 3 | <---
+ * |_____| |_____| |_____| | These LEDs are called 'Switch LEDs'
+ * _____ _____ _____ |----- To turn on/off these leds, use:
+ * | | | | | | | set_switch_led( [1-6], [true/false]);
+ * | 4 | | 5 | | 6 | <---
+ * |_____| |_____| |_____|
+ *
+ * < 0 > < 1 > < 2 > <--- These front-LEDs are called 'Layer LEDs'
+ * To turn on/off these leds, use:
+ * set_layer_led( [0-2], [true/false] );
+ */
+
+void set_switch_led(int ledId, bool state) {
+ switch (ledId) {
+ case 1:
+ writePin(D7, state);
+ break;
+ case 2:
+ writePin(readPin(B7) ? C6 : C7, state);
+ break;
+ case 3:
+ writePin(D4, state);
+ break;
+ case 4:
+ writePin(E6, state);
+ break;
+ case 5:
+ writePin(B4, state);
+ break;
+ case 6:
+ writePin(D6, state);
+ break;
+ }
+}
+
+void set_layer_led(int layerLedMode) {
+ writeLayerLedState(layer_led_0_off);
+ writeLayerLedState(layer_led_1_off);
+ writeLayerLedState(layer_led_2_off);
+
+ switch (layerLedMode) {
+ case ALL_LAYERS_OFF:
+ break;
+ case LAYER_0:
+ writeLayerLedState(layer_led_0_on);
+ break;
+ case LAYER_1:
+ writeLayerLedState(layer_led_1_on);
+ break;
+ case LAYER_2:
+ writeLayerLedState(layer_led_2_on);
+ break;
+ case LAYER_3:
+ writeLayerLedState(layer_led_0_on);
+ writeLayerLedState(layer_led_1_on);
+ break;
+ case LAYER_4:
+ writeLayerLedState(layer_led_1_on);
+ writeLayerLedState(layer_led_2_on);
+ break;
+ case LAYER_5:
+ writeLayerLedState(layer_led_0_on);
+ writeLayerLedState(layer_led_2_on);
+ break;
+ default:
+ writeLayerLedState(layer_led_0_on);
+ writeLayerLedState(layer_led_1_on);
+ writeLayerLedState(layer_led_2_on);
+ break;
+ }
+}
+
+void led_init_animation() {
+ for (int i = ALL_LAYERS_OFF; i <= ALL_LAYERS_ON; i++) {
+ led_set_layer(i);
+ }
+
+ led_set_layer(LAYER_0);
+}
+
+/*
+ * This function led_set_layer gets called when you switch between layers.
+ * It allows you to turn on and off leds for each different layer and do
+ * other cool stuff.
+ */
+void led_set_layer(int layer) {
+ switch (layer) {
+ case ALL_LAYERS_OFF:
+ set_switch_led(1, false);
+ set_switch_led(2, false);
+ set_switch_led(3, false);
+ set_switch_led(4, false);
+ set_switch_led(5, false);
+ set_switch_led(6, false);
+
+ case _LAYER_SELECT:
+ set_switch_led(1, false);
+ set_switch_led(2, false);
+ set_switch_led(3, false);
+ set_switch_led(4, true);
+ set_switch_led(5, true);
+ set_switch_led(6, true);
+ break;
+
+ default:
+ set_switch_led(1, true);
+ set_switch_led(2, true);
+ set_switch_led(3, true);
+ set_switch_led(4, true);
+ set_switch_led(5, true);
+ set_switch_led(6, true);
+ break;
+ }
+
+ set_layer_led(layer);
+}
+
+/*
+ * Prepare all LED ports for output
+ */
+void led_init_ports() {
+ setPinOutput(D7); // Switch 1 LED
+ setPinOutput(C6); // Switch 2 LED Pin1
+ setPinOutput(C7); // Switch 2 LED Pin2
+ setPinOutput(D4); // Switch 3 LED
+ setPinOutput(E6); // Switch 4 LED
+ setPinOutput(B4); // Switch 5 LED
+ setPinOutput(D6); // Switch 6 LED
+ setPinOutput(D5); // Layer 0 LED
+ setPinOutput(B6); // Layer 1 LED
+ setPinOutput(B0); // Layer 2 LED
+}
+
+// Runs on layer change, no matter where the change was initiated
+layer_state_t layer_state_set_user(layer_state_t state) {
+ set_layer_led(get_highest_layer(state));
+ led_set_layer(get_highest_layer(state));
+ return state;
+}
+
+void matrix_init_user(void) {
+ led_init_ports();
+ led_init_animation();
+}
+
+void td_spectacles_finish(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->pressed) {
+ layer_on(_LAYER_SELECT);
+ } else {
+ SEND_STRING(NXTTHRD);
+ }
+}
+
+void td_spectacles_reset(qk_tap_dance_state_t *state, void *user_data) { layer_off(_LAYER_SELECT); }
diff --git a/keyboards/knops/mini/keymaps/mverteuil/readme.md b/keyboards/knops/mini/keymaps/mverteuil/readme.md
new file mode 100644
index 000000000..46ea01583
--- /dev/null
+++ b/keyboards/knops/mini/keymaps/mverteuil/readme.md
@@ -0,0 +1 @@
+# mverteuil does knops mini
diff --git a/keyboards/knops/mini/keymaps/mverteuil/rules.mk b/keyboards/knops/mini/keymaps/mverteuil/rules.mk
new file mode 100644
index 000000000..91a53d56a
--- /dev/null
+++ b/keyboards/knops/mini/keymaps/mverteuil/rules.mk
@@ -0,0 +1,6 @@
+BACKLIGHT_ENABLE = no
+CONSOLE_ENABLE = no
+TAP_DANCE_ENABLE = yes
+MOUSEKEY_ENABLE = no
+AUDIO_ENABLE = no
+
diff --git a/keyboards/knops/mini/rules.mk b/keyboards/knops/mini/rules.mk
index ef5ef0685..312bfb4fd 100644
--- a/keyboards/knops/mini/rules.mk
+++ b/keyboards/knops/mini/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE ?= no # MIDI support
UNICODE_ENABLE ?= no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6
diff --git a/keyboards/kona_classic/keymaps/ansi/rules.mk b/keyboards/kona_classic/keymaps/ansi/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/ansi/rules.mk
+++ b/keyboards/kona_classic/keymaps/ansi/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/ansi_arrows/rules.mk b/keyboards/kona_classic/keymaps/ansi_arrows/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/ansi_arrows/rules.mk
+++ b/keyboards/kona_classic/keymaps/ansi_arrows/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/ansi_arrows_lcap/rules.mk b/keyboards/kona_classic/keymaps/ansi_arrows_lcap/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/ansi_arrows_lcap/rules.mk
+++ b/keyboards/kona_classic/keymaps/ansi_arrows_lcap/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/ansi_split/rules.mk b/keyboards/kona_classic/keymaps/ansi_split/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/ansi_split/rules.mk
+++ b/keyboards/kona_classic/keymaps/ansi_split/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/ansi_split_arrows/rules.mk b/keyboards/kona_classic/keymaps/ansi_split_arrows/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/ansi_split_arrows/rules.mk
+++ b/keyboards/kona_classic/keymaps/ansi_split_arrows/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/default/rules.mk b/keyboards/kona_classic/keymaps/default/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/default/rules.mk
+++ b/keyboards/kona_classic/keymaps/default/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/iso/rules.mk b/keyboards/kona_classic/keymaps/iso/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/iso/rules.mk
+++ b/keyboards/kona_classic/keymaps/iso/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/iso_arrows/rules.mk b/keyboards/kona_classic/keymaps/iso_arrows/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/iso_arrows/rules.mk
+++ b/keyboards/kona_classic/keymaps/iso_arrows/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/iso_split/rules.mk b/keyboards/kona_classic/keymaps/iso_split/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/iso_split/rules.mk
+++ b/keyboards/kona_classic/keymaps/iso_split/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/keymaps/iso_split_arrows/rules.mk b/keyboards/kona_classic/keymaps/iso_split_arrows/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/kona_classic/keymaps/iso_split_arrows/rules.mk
+++ b/keyboards/kona_classic/keymaps/iso_split_arrows/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/kona_classic/rules.mk b/keyboards/kona_classic/rules.mk
index 0a7df029c..2640360f2 100644
--- a/keyboards/kona_classic/rules.mk
+++ b/keyboards/kona_classic/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
diff --git a/keyboards/kudox/rules.mk b/keyboards/kudox/rules.mk
index 5d8c2b2bb..4ae8ea7fb 100644
--- a/keyboards/kudox/rules.mk
+++ b/keyboards/kudox/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/kudox_game/rules.mk b/keyboards/kudox_game/rules.mk
index 71d7cf270..d3fa26ee6 100644
--- a/keyboards/kudox_game/rules.mk
+++ b/keyboards/kudox_game/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/kv/revt/config.h b/keyboards/kv/revt/config.h
new file mode 100644
index 000000000..8aa5a1d31
--- /dev/null
+++ b/keyboards/kv/revt/config.h
@@ -0,0 +1,39 @@
+/* Copyright 2020 Hybrid65
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6565
+#define PRODUCT_ID 0x6520
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Hybrid
+#define PRODUCT KVT
+#define DESCRIPTION SouthPaw Keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 21
+#define MATRIX_ROW_PINS { A6, B13, B8, A0, A1, A2 }
+#define MATRIX_COL_PINS { B7, B6, B5, B4, B3, B2, B14, B1, B15, B0, B9, B10, B11, B12, A14, A13, A4, A5, A7, A8, A15 }
+#define UNUSED_PINS { }
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/kv/revt/keymaps/default/keymap.c b/keyboards/kv/revt/keymaps/default/keymap.c
new file mode 100644
index 000000000..c1f9c6b5c
--- /dev/null
+++ b/keyboards/kv/revt/keymaps/default/keymap.c
@@ -0,0 +1,64 @@
+/* Copyright 2020 Hybrid65
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap (Base Layer) Default Layer
+ *.----------------------------------------------------------------------------------------------------------------.
+ *| |Esc| | F1| F2| F3| F4| | F5| F6| F7| F8| | F9|F10|F12|F12| |Pscr| Slck | Pause|
+ *| Nlck| / | * | - | | ~ | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| - | = |Backsp | | Inc| Home | PgUp|
+ *|----------------------------------------------------------------------------------------------------------------|
+ *| NP7 | NP8| NP9| | |Tab | Q| W| E| R| T| Y| U| I| O| P| [ | ] | \ | | Del| End | PgDw|
+ *|---------------| + |------------------------------------------------------------------------------------------|
+ *| NP4 | NP5| NP6| | |CAPS | A| S| D| F| G| H| J| K| L| ; | ' |Return | |
+ *|---------------|-----|------------------------------------------------------------------------------------------|
+ *| NP1 | NP2| NP3| | |Shift | Z| X| C| V| B| N| M| , | . | / | Shift | | Up | |
+ *|---------------|Enter|------------------------------------------------------------------------------------------|
+ *| 0 | Del| | |Ctrl|Win |Alt | Space |Alt | Win |FN |Ctrl | |Left| Down | Right|
+ *`----------------------------------------------------------------------------------------------------------------'
+ */
+[0] = LAYOUT_default(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
+ KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
+ KC_KP_4, KC_KP_5, KC_KP_6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
+ KC_KP_0, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), \
+
+/* Keymap Fn Layer
+ *.-----------------------------------------------------------------------------------------------------------------.
+ *| | | |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24| | | | |
+ *| | | | | | | | | | | | | | | | | | | | |Pl/Pa| Next| Vol+|
+ *|-----------------------------------------------------------------------------------------------------------------|
+ *| | | | | | |MB1|MBU|MB2|MWU| | | | | | | | | | | Stop| Prev| Vol-|
+ *|---------------| |-------------------------------------------------------------------------------------------|
+ *| | | | | | |MBL|MBD|MBR|MWD| | | |Rst| | | | | |
+ *|---------------|-----|-------------------------------------------------------------------------------------------|
+ *| | | | | | | | |Calc| | | |Mute| | | | | | | |
+ *|---------------| |-------------------------------------------------------------------------------------------|
+ *| | | | | | | | | | | | | | | | |
+ *'-----------------------------------------------------------------------------------------------------------------'
+ */
+[1] = LAYOUT_default(
+ _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, _______, \
+_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLU, \
+_______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPRV, KC_VOLD, \
+_______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, RESET, _______, _______, _______, _______, \
+_______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, \
+_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
+
+};
diff --git a/keyboards/kv/revt/keymaps/default/readme.md b/keyboards/kv/revt/keymaps/default/readme.md
new file mode 100644
index 000000000..63fb4e78d
--- /dev/null
+++ b/keyboards/kv/revt/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The Default keymap for KVT
diff --git a/keyboards/kv/revt/readme.md b/keyboards/kv/revt/readme.md
new file mode 100644
index 000000000..e2f463b37
--- /dev/null
+++ b/keyboards/kv/revt/readme.md
@@ -0,0 +1,18 @@
+# KVT
+
+![KVT default layout](https://i.imgur.com/nPwxzdU.jpg)
+
+A open source southpaw keyboard. The Default layer is a standard 104 ANSI keyboard just the numpad is on the left.
+There is a fn layer (its not in the layout image but in the keymap file) it adds media keys, f13-f24, and mouse keys.
+
+[More info on KVT github](https://github.com/Hybrid65/KVT)
+
+* Keyboard Maintainer: [Neil Feagan](https://github.com/Hybrid65)
+* Hardware Supported: KVT, Proton C
+* Hardware Availability: [List of vendors](https://qmk.fm/proton-c)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kv/revt:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/kv/revt/revt.c b/keyboards/kv/revt/revt.c
new file mode 100644
index 000000000..443a81401
--- /dev/null
+++ b/keyboards/kv/revt/revt.c
@@ -0,0 +1,25 @@
+/* Copyright 2020 Hybrid65
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "revt.h"
+
+void matrix_init_kb(void) {
+ // Turn status LED on
+ setPinOutput(C14);
+ writePinHigh(C14);
+
+ matrix_init_user();
+}
diff --git a/keyboards/kv/revt/revt.h b/keyboards/kv/revt/revt.h
new file mode 100644
index 000000000..ed98f4aab
--- /dev/null
+++ b/keyboards/kv/revt/revt.h
@@ -0,0 +1,36 @@
+/* Copyright 2020 Hybrid65
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_default( \
+ K04, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, K0K, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, \
+ K30, K31, K32, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3H, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4H, K4J, \
+ K50, K52, K54, K55, K56, K59, K5E, K5F, K5G, K5H, K5I, K5J, K5K \
+) \
+{ \
+ { KC_NO, KC_NO, KC_NO, KC_NO, K04, KC_NO, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, K0K, }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, }, \
+ { K30, K31, K32, KC_NO, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, KC_NO, K3H, KC_NO, KC_NO, KC_NO, }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, KC_NO, KC_NO, K4H, KC_NO, K4J, KC_NO, }, \
+ { K50, KC_NO, K52, KC_NO, K54, K55, K56, KC_NO, KC_NO, K59, KC_NO, KC_NO, KC_NO, KC_NO, K5E, K5F, K5G, K5H, K5I, K5J, K5K }, \
+}
diff --git a/keyboards/kv/revt/rules.mk b/keyboards/kv/revt/rules.mk
new file mode 100644
index 000000000..3a09683c3
--- /dev/null
+++ b/keyboards/kv/revt/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = STM32F303
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kyria/keymaps/ninjonas/config.h b/keyboards/kyria/keymaps/ninjonas/config.h
new file mode 100644
index 000000000..5673e6c3d
--- /dev/null
+++ b/keyboards/kyria/keymaps/ninjonas/config.h
@@ -0,0 +1,37 @@
+/* Copyright 2020 ninjonas
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define TAPPING_TERM 200
+
+#ifdef OLED_DRIVER_ENABLE
+ #define OLED_DISPLAY_128X64
+ #define OLED_TIMEOUT 15000
+#endif
+
+#ifdef RGBLIGHT_ENABLE
+# define RGBLIGHT_SLEEP
+# define RGBLIGHT_LIMIT_VAL 200
+# define RGBLIGHT_HUE_STEP 8
+# define RGBLIGHT_SAT_STEP 8
+# define RGBLIGHT_VAL_STEP 8
+# define RGBLIGHT_SPLIT
+#endif
+
+// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
+#define SPLIT_USB_DETECT
+#define SPLIT_USB_TIMEOUT 1000
diff --git a/keyboards/kyria/keymaps/ninjonas/encoder.c b/keyboards/kyria/keymaps/ninjonas/encoder.c
new file mode 100644
index 000000000..e3a4f2661
--- /dev/null
+++ b/keyboards/kyria/keymaps/ninjonas/encoder.c
@@ -0,0 +1,84 @@
+/* Copyright 2020 ninjonas
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "ninjonas.h"
+
+#ifdef ENCODER_ENABLE
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) {
+ switch (get_highest_layer(layer_state)) {
+ case _LOWER:
+ if (clockwise) {
+ tap_code16(SGUI(KC_TAB));
+ } else {
+ tap_code16(LGUI(KC_TAB));
+ }
+ break;
+ case _RAISE:
+ if (clockwise) {
+ tap_code(KC_PGUP);
+ } else {
+ tap_code(KC_PGDN);
+ }
+ break;
+ case _ADJUST:
+ if (clockwise) {
+ rgblight_increase_hue();
+ } else {
+ rgblight_decrease_hue();
+ }
+ break;
+ default:
+ if (clockwise) {
+ tap_code(KC_BRIU);
+ } else {
+ tap_code(KC_BRID);
+ }
+ break;
+ }
+ } else if (index == 1) {
+ switch (get_highest_layer(layer_state)) {
+ case _LOWER:
+ if (clockwise) {
+ tap_code(KC_UP);
+ } else {
+ tap_code(KC_DOWN);
+ }
+ break;
+ case _RAISE:
+ if (clockwise) {
+ tap_code16(LCTL(KC_TAB));
+ } else {
+ tap_code16(LCTL(LSFT(KC_TAB)));
+ }
+ break;
+ case _ADJUST:
+ if (clockwise) {
+ rgblight_increase_val();
+ } else {
+ rgblight_decrease_val();
+ }
+ break;
+ default:
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ break;
+ }
+ }
+}
+#endif \ No newline at end of file
diff --git a/keyboards/kyria/keymaps/ninjonas/keymap.c b/keyboards/kyria/keymaps/ninjonas/keymap.c
new file mode 100644
index 000000000..e6cde72d5
--- /dev/null
+++ b/keyboards/kyria/keymaps/ninjonas/keymap.c
@@ -0,0 +1,105 @@
+/* Copyright 2020 ninjonas
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+#include "ninjonas.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QWERTY] = LAYOUT_wrapper(
+// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
+ _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
+ _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
+ _____________________QWERTY_L3______________________,XXXXXXX,KC_LALT, M_COPA,XXXXXXX,_____________________QWERTY_R3______________________,
+// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
+ _____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
+// `----------------------------------------' `----------------------------------------'
+ ),
+
+ [_DVORAK] = LAYOUT_wrapper(
+// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
+ _____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
+ _____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
+ _____________________DVORAK_L3______________________,XXXXXXX,KC_LALT, M_COPA,XXXXXXX,_____________________DVORAK_R3______________________,
+// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
+ _____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
+// `----------------------------------------' `----------------------------------------'
+ ),
+
+ [_COLEMAK] = LAYOUT_wrapper(
+// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
+ _____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________,
+// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
+ _____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________,
+// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
+ _____________________COLEMAK_L3_____________________,XXXXXXX,KC_LALT, M_COPA,XXXXXXX,_____________________COLEMAK_R3_____________________,
+// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
+ _____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
+// `----------------------------------------' `----------------------------------------'
+ ),
+
+ [_LOWER] = LAYOUT_wrapper(
+// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
+ _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
+ _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
+ _____________________LOWER_L3_______________________,_______,_______, _______,_______,_____________________LOWER_R3_______________________,
+// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+// `----------------------------------------' `----------------------------------------'
+ ),
+
+ [_RAISE] = LAYOUT_wrapper(
+// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
+ _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
+ _____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
+ _____________________FUNC_LEFT______________________,_______,_______, K_CPRF,_______,_____________________FUNC_RIGHT_____________________,
+// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+// `----------------------------------------' `----------------------------------------'
+ ),
+
+ [_ADJUST] = LAYOUT_wrapper(
+// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
+ _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
+ _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
+// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
+ _____________________ADJUST_L3______________________,_______,_______, _______,_______,_____________________ADJUST_R3______________________,
+// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
+ _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
+// `----------------------------------------' `----------------------------------------'
+ ),
+/*
+ [_TEMPLATE] = LAYOUT_wrapper(
+// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX
+// `----------------------------------------' `----------------------------------------'
+ ),
+*/
+}; \ No newline at end of file
diff --git a/keyboards/kyria/keymaps/ninjonas/oled.c b/keyboards/kyria/keymaps/ninjonas/oled.c
new file mode 100644
index 000000000..ff21b4885
--- /dev/null
+++ b/keyboards/kyria/keymaps/ninjonas/oled.c
@@ -0,0 +1,168 @@
+/* Copyright 2020 ninjonas
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "ninjonas.h"
+
+#ifdef OLED_DRIVER_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
+
+static void render_logo(void) {
+ static const char PROGMEM logo[] = {
+ // Converter: https://javl.github.io/image2cpp/
+ // Image Dimensions: 128x64
+ // Code Output Format: Plain Bytes
+ // Draw Mode: Vertical, 1 bit per pixel
+0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0xe0,
+0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
+0xe0, 0x00, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00,
+0xc0, 0xe0, 0xe0, 0xe0, 0x20, 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
+0xe0, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
+0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xe0, 0xe0, 0xfc, 0xfe,
+0xfe, 0xfe, 0xee, 0xee, 0x0e, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80,
+0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
+0x00, 0x00, 0x79, 0xfd, 0xfd, 0xfd, 0xec, 0xee, 0x76, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
+0x07, 0x3f, 0xff, 0xfc, 0xf8, 0xff, 0x7f, 0x07, 0x0f, 0x7f, 0xff, 0xf8, 0xfc, 0xff, 0x3f, 0x07,
+0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xfe, 0xf0, 0xff, 0x7f, 0x0f, 0x07, 0x3f, 0xff, 0xfc, 0xf8,
+0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0xff, 0xfe, 0xf8, 0xff, 0xff, 0x1f, 0x03,
+0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xff, 0xf6, 0xe6, 0xe6, 0xf7, 0xf7, 0x77, 0x37, 0x17, 0x00, 0x30,
+0x79, 0xfd, 0xfd, 0xfd, 0xee, 0xee, 0x76, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
+0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7f, 0xff, 0xf1, 0xe0, 0xe0, 0xff, 0xff, 0x7f, 0x3f,
+0x0e, 0x00, 0x0e, 0x3f, 0x7f, 0xff, 0xff, 0xe0, 0xe0, 0xe1, 0xff, 0x7f, 0x7f, 0x3f, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x0c, 0x3c, 0xfc, 0xfc, 0xfc, 0xc0, 0x00, 0xe0, 0xfc, 0xfc, 0x7c, 0x1c, 0x00, 0xf0, 0xf8,
+0xf8, 0xfc, 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x30, 0xb8, 0xbc, 0xbc,
+0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x1d,
+0x00, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0xe0, 0xf0,
+0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x20, 0xb8, 0xbc, 0xbc,
+0xbc, 0xdc, 0xdc, 0xfc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x0c, 0x7c, 0xfc, 0xfc, 0xc0, 0x00, 0xe0,
+0xfc, 0xfc, 0xfc, 0xfc, 0xf0, 0x80, 0x00, 0xf8, 0xfc, 0xfc, 0x3c, 0x04, 0x0c, 0x7c, 0xfc, 0xfc,
+0xf0, 0x00, 0xc0, 0xfc, 0xfc, 0x7c, 0xfc, 0xf8, 0xc0, 0x00, 0xf0, 0xfc, 0xfc, 0x7c, 0x0c, 0x00,
+0x00, 0x00, 0xc0, 0xc1, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x07, 0x0f,
+0x1f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x1f, 0x1f,
+0x1d, 0x1d, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00,
+0x00, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x03, 0x07,
+0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1f,
+0x1d, 0x1d, 0x0c, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f,
+0x0f, 0x01, 0x00, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f,
+0x1f, 0x1e, 0x1f, 0x1f, 0x03, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00,
+0x00, 0x80, 0xc1, 0xf1, 0xf9, 0xf9, 0xf9, 0xb8, 0xb8, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
+0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
+0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
+0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x7c, 0xfe, 0xff, 0xff, 0xc7, 0x83, 0x83,
+0xc7, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xc7, 0x83, 0x83, 0xc7, 0xff,
+0xff, 0xfe, 0x7c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe,
+0x00, 0x00, 0x03, 0x1f, 0xff, 0xff, 0xf0, 0xe0, 0xfe, 0xff, 0x1f, 0x3f, 0xff, 0xfe, 0xe0, 0xf0,
+0xff, 0xff, 0x1f, 0x03, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xf8, 0xc0, 0xfc, 0xff, 0x3f, 0x1f, 0xff,
+0xfe, 0xf0, 0xe0, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xfc,
+0xff, 0x7f, 0x0f, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0x9b, 0x9b, 0xdf, 0xdf, 0xdf, 0xde,
+0x1c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
+0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,
+0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,
+0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,
+0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x1f, 0x0f,
+0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
+ };
+ oled_write_raw_P(logo, sizeof(logo));
+}
+
+static void render_qmk_logo(void) {
+ static const char PROGMEM qmk_logo[] = {
+ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
+
+ oled_write_P(qmk_logo, false);
+}
+
+void oled_white_space(void){
+ oled_write_P(PSTR(" "), false);
+}
+
+void render_layout_state(void) {
+ oled_write_P(PSTR("\nLayout: "), false);
+ switch (biton32(default_layer_state)) {
+ case _COLEMAK:
+ oled_write_P(PSTR("Colemak"), false);
+ break;
+ case _DVORAK:
+ oled_write_P(PSTR("Dvorak"), false);
+ break;
+ case _QWERTY:
+ oled_write_P(PSTR("Qwerty"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undefined"), false);
+ }
+}
+
+static void render_layer_state(void) {
+ oled_write_P(PSTR("\nLayer:"), false);
+ bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST);
+ bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST);
+ bool adjust = layer_state_is(_ADJUST);
+
+ if(lower){
+ oled_write_P(PSTR(" Lower "), true);
+ } else if(raise){
+ oled_write_P(PSTR(" Raise "), true);
+ } else if(adjust){
+ oled_write_P(PSTR(" Adjust "), true);
+ } else {
+ oled_write_P(PSTR(" Default"), false);
+ }
+}
+
+void render_mod_state(uint8_t modifiers) {
+ oled_write_P(PSTR("\nMods: "), false);
+ oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
+ oled_white_space();
+ oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL));
+ oled_white_space();
+ oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
+ oled_white_space();
+ oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
+}
+
+static void render_status(void) {
+ render_qmk_logo();
+ render_layout_state();
+ render_layer_state();
+ render_mod_state(get_mods()|get_oneshot_mods());
+}
+
+void oled_task_user(void) {
+ if (is_keyboard_master()) {
+ render_status();
+ } else {
+ render_logo();
+ oled_scroll_left();
+ }
+}
+#endif \ No newline at end of file
diff --git a/keyboards/kyria/keymaps/ninjonas/rules.mk b/keyboards/kyria/keymaps/ninjonas/rules.mk
new file mode 100644
index 000000000..3b2894a17
--- /dev/null
+++ b/keyboards/kyria/keymaps/ninjonas/rules.mk
@@ -0,0 +1,7 @@
+OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
+ENCODER_ENABLE = yes # Enables the use of one or more encoders
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+LINK_TIME_OPTIMIZATION_ENABLE = yes
+
+SRC += encoder.c \
+ oled.c \ No newline at end of file
diff --git a/keyboards/laptreus/rules.mk b/keyboards/laptreus/rules.mk
index 237a6ac8b..0f192113c 100644
--- a/keyboards/laptreus/rules.mk
+++ b/keyboards/laptreus/rules.mk
@@ -18,10 +18,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
#BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/launchpad/rules.mk b/keyboards/launchpad/rules.mk
index 59b285cf5..2b115b1e1 100644
--- a/keyboards/launchpad/rules.mk
+++ b/keyboards/launchpad/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/lazydesigners/dimple/rules.mk b/keyboards/lazydesigners/dimple/rules.mk
index 99e4911af..395cd8e9a 100644
--- a/keyboards/lazydesigners/dimple/rules.mk
+++ b/keyboards/lazydesigners/dimple/rules.mk
@@ -14,9 +14,9 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
diff --git a/keyboards/lazydesigners/the50/rules.mk b/keyboards/lazydesigners/the50/rules.mk
index 561e38a99..8194d084e 100644
--- a/keyboards/lazydesigners/the50/rules.mk
+++ b/keyboards/lazydesigners/the50/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/lazydesigners/the60/rules.mk b/keyboards/lazydesigners/the60/rules.mk
index 97ea15d34..233dd9967 100644
--- a/keyboards/lazydesigners/the60/rules.mk
+++ b/keyboards/lazydesigners/the60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/hs60/v2/keymaps/hhkb/config.h b/keyboards/lets_split/keymaps/DE_programming/config.h
index fc1b6d8f4..145be1422 100644
--- a/keyboards/hs60/v2/keymaps/hhkb/config.h
+++ b/keyboards/lets_split/keymaps/DE_programming/config.h
@@ -1,5 +1,7 @@
/*
-Copyright 2018 Yiancar
+This is the c configuration file for the keymap
+
+Copyright 2020 Mose Schmiedel <mose.schmiedel@web.de>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,19 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
-/* Include overwrites for specific keymap */
-
-#define HS60_HHKB
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x4855
+/* Use I2C or Serial, not both */
+#define USE_SERIAL
+// #define USE_I2C
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_0
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_1
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_2
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_3
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_4
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111
+/* Select hand configuration */
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
diff --git a/keyboards/lets_split/keymaps/DE_programming/keymap.c b/keyboards/lets_split/keymaps/DE_programming/keymap.c
new file mode 100644
index 000000000..32231f883
--- /dev/null
+++ b/keyboards/lets_split/keymaps/DE_programming/keymap.c
@@ -0,0 +1,97 @@
+#include QMK_KEYBOARD_H
+#include "keymap_german.h"
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layers {
+ _QWERTZ,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwertz
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Z | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | + |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Y | X | C | V | B | N | M | , | . | - |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | AltGr| Alt |Lower |Space | Space| Raise| Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTZ] = LAYOUT(
+ KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC,
+ KC_ESC, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, DE_PLUS, KC_ENT,
+ KC_LSFT, DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_ALGR, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ° | ! | ? | § | € | ~ | $ | ( | ) | < | > | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | Vol+ | Prev | Next | Play | & | @ | { | } | [ | ] |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Vol- | | | | | | % | / | \ | ' | " |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | | | |Lower | | Raise| = | * | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT(
+ DE_CIRC, DE_EXLM, DE_QST, DE_PARA, DE_EURO, DE_TILD, DE_DLR, DE_LPRN, DE_RPRN, DE_LESS, DE_MORE, KC_BSPC,
+ KC_DEL, KC_VOLU, KC_MPRV, KC_MNXT, KC_MPLY, DE_AMPR, DE_AT, DE_LCBR, DE_RCBR, DE_LBRC, DE_RBRC, KC_ENT,
+ KC_LSFT, KC_VOLD, _______, _______, _______, DE_PIPE, DE_PERC, DE_SLSH, DE_BSLS, DE_QUOT, DE_DQOT, KC_RSFT,
+ KC_LCTL, _______, _______, _______, _______, _______, _______, _______, DE_EQL, DE_ASTR, _______, _______
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | / | 7 | 8 | 9 | * | | | | # | Alt | ` | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | 4 | 5 | 6 | - | Pos1 | End | ä | ö | ü | ß |Enter |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| 1 | 2 | 3 | + |PageUp|PageDn| | | | |Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | . | 0 | = |Lower | | Raise| | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT(
+ DE_SLSH, KC_7, KC_8, KC_9, DE_ASTR, _______, _______, _______, DE_HASH, KC_LALT, DE_ACUT, KC_BSPC,
+ KC_DEL, KC_4, KC_5, KC_6, DE_MINS, KC_HOME, KC_END, DE_AE, DE_OE, DE_UE, DE_SS, KC_ENT,
+ KC_LSFT, KC_1, KC_2, KC_3, DE_PLUS, KC_PGUP, KC_PGDN, _______, _______, _______, _______, KC_LSFT,
+ _______, DE_DOT, KC_0, DE_EQL, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
diff --git a/keyboards/lets_split/keymaps/DE_programming/readme.md b/keyboards/lets_split/keymaps/DE_programming/readme.md
new file mode 100644
index 000000000..38e54609b
--- /dev/null
+++ b/keyboards/lets_split/keymaps/DE_programming/readme.md
@@ -0,0 +1,57 @@
+De_Programming Keymap
+======
+
+Features
+--------
+
+Changed Keymap to resemble German Layout. Optimized for Programming
+
+Layout
+--------
+
+ Qwertz
+ ,-----------------------------------------------------------------------------------.
+ | Tab | Q | W | E | R | T | Z | U | I | O | P | Bksp |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | Esc | A | S | D | F | G | H | J | K | L | + |Enter |
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| Y | X | C | V | B | N | M | , | . | - |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | GUI | AltGr| Alt |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ `-----------------------------------------------------------------------------------'
+
+
+ Lower
+ ,-----------------------------------------------------------------------------------.
+ | ° | ! | ? | § | € | ~ | $ | ( | ) | < | > | Bksp |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | Del | F1 | F2 | F3 | F4 | & | @ | { | } | [ | ] |Enter |
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| F5 | F6 | F7 | F8 | | | % | / | \ | ' | " |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | Ctrl | F9 | F10 | F11 | F12 | | Prev | Next | Vol- | Vol+ | Play |
+ `-----------------------------------------------------------------------------------'
+
+
+ Raise
+ ,-----------------------------------------------------------------------------------.
+ | / | 7 | 8 | 9 | * | | | | # | Alt | ` | Bksp |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | Del | 4 | 5 | 6 | - | Pos1 | End | ä | ö | ü | ß |Enter |
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | Shift| 1 | 2 | 3 | + |PageUp|PageDn| | | | |Shift |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | . | 0 | = | Enter| | Prev | Next | Vol- | Vol+ | Play |
+ `-----------------------------------------------------------------------------------'
+
+
+ Adjust (Lower + Raise)
+ ,-----------------------------------------------------------------------------------.
+ | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
+ |------+------+------+------+------+-------------+------+------+------+------+------|
+ | | | |Aud on|Audoff|AGnorm|AGswap|Qwertz| | | | |
+ |------+------+------+------+------+------|------+------+------+------+------+------|
+ | | | | | | | | | | | | |
+ |------+------+------+------+------+------+------+------+------+------+------+------|
+ | | | | | | | | | | | |
+ `-----------------------------------------------------------------------------------'
diff --git a/keyboards/lets_split/keymaps/DE_programming/rules.mk b/keyboards/lets_split/keymaps/DE_programming/rules.mk
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/lets_split/keymaps/DE_programming/rules.mk
diff --git a/keyboards/lets_split/keymaps/OLED_sample/rules.mk b/keyboards/lets_split/keymaps/OLED_sample/rules.mk
index 89ad61fbe..162c7aeb9 100644
--- a/keyboards/lets_split/keymaps/OLED_sample/rules.mk
+++ b/keyboards/lets_split/keymaps/OLED_sample/rules.mk
@@ -4,10 +4,10 @@ SRC += ssd1306.c
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h
index c6e7f6479..d75343735 100644
--- a/keyboards/lets_split/rev1/config.h
+++ b/keyboards/lets_split/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
// #define MATRIX_COL_PINS { B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h
index 2481ce041..0977d7c67 100644
--- a/keyboards/lets_split/rev2/config.h
+++ b/keyboards/lets_split/rev2/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk
index 98736310c..a7703ce44 100644
--- a/keyboards/lets_split/rules.mk
+++ b/keyboards/lets_split/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/lets_split/sockets/config.h b/keyboards/lets_split/sockets/config.h
index eb8092a8f..f6ecb7094 100644
--- a/keyboards/lets_split/sockets/config.h
+++ b/keyboards/lets_split/sockets/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F4, F7, D7, B3, B2, B6}
// #define MATRIX_COL_PINS { B6, B2, B3, D7, F7, F4} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/lets_split_eh/rules.mk b/keyboards/lets_split_eh/rules.mk
index 2bcd087d8..fe3face86 100644
--- a/keyboards/lets_split_eh/rules.mk
+++ b/keyboards/lets_split_eh/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfk78/keymaps/default/rules.mk
index 1477c3ac7..9b8038dd3 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/default/rules.mk
+++ b/keyboards/lfkeyboards/lfk78/keymaps/default/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk b/keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
index 3cfc994cb..04fa7d81b 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
+++ b/keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
index f789b6866..e7f035b75 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
+++ b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk
index 3c90998d9..74a1f7989 100644
--- a/keyboards/lfkeyboards/lfk78/rules.mk
+++ b/keyboards/lfkeyboards/lfk78/rules.mk
@@ -19,13 +19,14 @@ OPT_DEFS += -DLFK_REV_STRING=\"Rev$(LFK_REV)\"
# Extra source files for IS3731 lighting
SRC = TWIlib.c issi.c lighting.c
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
index c079c264e..59cfee01c 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
index 7823dea78..da697e66f 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk
index 8e1970615..dc6fa376a 100644
--- a/keyboards/lfkeyboards/lfk87/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/rules.mk
@@ -24,13 +24,14 @@ LAYOUTS = tkl_ansi tkl_iso
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+BACKLIGHT_DRIVER = custom
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/lfkeyboards/lfkpad/config.h b/keyboards/lfkeyboards/lfkpad/config.h
index 1d8de837d..fb48297e5 100644
--- a/keyboards/lfkeyboards/lfkpad/config.h
+++ b/keyboards/lfkeyboards/lfkpad/config.h
@@ -15,31 +15,56 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#include "config_common.h"
+/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER LFKeyboards
#define PRODUCT LFKPad 21
-#define DESCRIPTION QMK keyboard firmware for LFKPad LFK_REV_STRING
+#define DESCRIPTION QMK keyboard firmware for LFKPad
-#define DIODE_DIRECTION COL2ROW
+/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 4
-#define MATRIX_ROW_PINS { D5, F4, F6, F7, C7, C6}
-#define MATRIX_COL_PINS { F1, F0, D4, D6}
-#define UNUSED_PINS { }
-#define RGBLED_NUM 28 // Number of LEDs
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D5, F4, F6, F7, C7, C6 }
+#define MATRIX_COL_PINS { F1, F0, D4, D6 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
#define RGB_DI_PIN C7 // Have to set it to something to get the ws2812 code to compile
-#define RGBLIGHT_ANIMATIONS
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 28
+# define RGBLIGHT_HUE_STEP 10
+# define RGBLIGHT_SAT_STEP 17
+# define RGBLIGHT_VAL_STEP 17
+# define RGBLIGHT_ANIMATIONS
+#endif
#define TAPPING_TERM 200
@@ -49,13 +74,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-/* number of backlight levels */
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
/*
* Force NKRO
*
@@ -89,6 +117,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
@@ -98,8 +130,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1 H
-//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
@@ -107,9 +139,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0_ALT1 ESC
-//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
@@ -119,9 +150,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER PAUSE
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
@@ -140,7 +173,63 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
+/* disable these deprecated features by default */
+#ifndef LINK_TIME_OPTIMIZATION_ENABLE
+ #define NO_ACTION_MACRO
+ #define NO_ACTION_FUNCTION
+#endif
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lfkeyboards/lfkpad/info.json b/keyboards/lfkeyboards/lfkpad/info.json
index 71adb5d44..f5f41f5a7 100644
--- a/keyboards/lfkeyboards/lfkpad/info.json
+++ b/keyboards/lfkeyboards/lfkpad/info.json
@@ -1,12 +1,34 @@
{
- "keyboard_name": "LFKPad",
- "url": "",
- "maintainer": "qmk",
- "width": 4,
- "height": 6,
- "layouts": {
- "LAYOUT_numpad_6x4": {
- "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Tab", "x":1, "y":0}, {"label":"=", "x":2, "y":0}, {"label":"Fn", "x":3, "y":0}, {"label":"Num Lock", "x":0, "y":1}, {"label":"/", "x":1, "y":1}, {"label":"*", "x":2, "y":1}, {"label":"-", "x":3, "y":1}, {"label":"7", "x":0, "y":2}, {"label":"8", "x":1, "y":2}, {"label":"9", "x":2, "y":2}, {"label":"4", "x":0, "y":3}, {"label":"5", "x":1, "y":3}, {"label":"6", "x":2, "y":3}, {"label":"+", "x":3, "y":2, "h":2}, {"label":"1", "x":0, "y":4}, {"label":"2", "x":1, "y":4}, {"label":"3", "x":2, "y":4}, {"label":"0", "x":0, "y":5, "w":2}, {"label":".", "x":2, "y":5}, {"label":"Enter", "x":3, "y":4, "h":2}]
+ "keyboard_name": "LFKPad",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 4,
+ "height": 6,
+ "layouts": {
+ "LAYOUT_numpad_6x4": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":3, "y":1},
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2},
+ {"x":0, "y":3},
+ {"x":1, "y":3},
+ {"x":2, "y":3},
+ {"x":3, "y":2, "h":2},
+ {"x":0, "y":4},
+ {"x":1, "y":4},
+ {"x":2, "y":4},
+ {"x":0, "y":5, "w":2},
+ {"x":2, "y":5},
+ {"x":3, "y":4, "h":2}
+ ]
+ }
}
- }
}
diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/config.h b/keyboards/lfkeyboards/lfkpad/keymaps/default/config.h
deleted file mode 100644
index 271f48d00..000000000
--- a/keyboards/lfkeyboards/lfkpad/keymaps/default/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-// place overrides here
diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
index 3e131b241..0aa720e40 100644
--- a/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
+++ b/keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
@@ -1,41 +1,31 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_numpad_6x4( /* Base */
- KC_ESC, KC_TAB, KC_PEQL, MO(1), \
- KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, \
- KC_P7, KC_P8, KC_P9, \
- KC_P4, KC_P5, KC_P6, KC_PPLS, \
- KC_P1, KC_P2, KC_P3, \
- KC_P0, KC_PDOT, KC_PENT \
- ),
-
- [1] = LAYOUT_numpad_6x4( /* RGB */
- RGB_SAI, RGB_VAI, RGB_HUI, _______, \
- RGB_SAD, RGB_VAD, RGB_HUD, _______, \
- RGB_M_X, RGB_M_G, RGB_MOD, \
- RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_RMOD, \
- RGB_M_P, RGB_M_B, RGB_M_R, \
- XXXXXXX, XXXXXXX, RGB_TOG \
- ),
+ /* Base */
+ [0] = LAYOUT_numpad_6x4(
+ KC_ESC, KC_TAB, KC_PEQL, MO(1),
+ KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3,
+ KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ /* RGB */
+ [1] = LAYOUT_numpad_6x4(
+ RGB_SAI, RGB_VAI, RGB_HUI, _______,
+ RGB_SAD, RGB_VAD, RGB_HUD, _______,
+ RGB_M_X, RGB_M_G, RGB_MOD,
+ RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_RMOD,
+ RGB_M_P, RGB_M_B, RGB_M_R,
+ XXXXXXX, XXXXXXX, RGB_TOG
+ )
};
void matrix_init_user(void) {
// This keymap only has a single base layer, so reset the default if needed
- if(eeconfig_read_default_layer() > 1){
+ if (eeconfig_read_default_layer() > 1) {
eeconfig_update_default_layer(1);
default_layer_set(1);
}
}
-
-void matrix_scan_user(void) {
-
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-void led_set_user(uint8_t usb_led) {
-
-}
diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md b/keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md
index 6c48b8d0b..9c0dad030 100644
--- a/keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md
+++ b/keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md
@@ -1 +1 @@
-# The default keymap LFKPad 21
+# The default keymap for the LFKPad 21
diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
index cc21b32dc..db54d61e5 100644
--- a/keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
+++ b/keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.c b/keyboards/lfkeyboards/lfkpad/lfkpad.c
index 232285c32..b91b7da67 100644
--- a/keyboards/lfkeyboards/lfkpad/lfkpad.c
+++ b/keyboards/lfkeyboards/lfkpad/lfkpad.c
@@ -1,112 +1,117 @@
-#include <avr/sfr_defs.h>
+#include "lfkpad.h"
+
+#include "quantum.h"
+
#include <avr/timer_avr.h>
#include <avr/wdt.h>
-#include "lfkpad.h"
-#include "keymap.h"
#include "issi.h"
#include "TWIlib.h"
#include "lighting.h"
-#include "debug.h"
-#include "quantum.h"
uint16_t click_hz = CLICK_HZ;
uint16_t click_time = CLICK_MS;
uint8_t click_toggle = CLICK_ENABLED;
-
-void matrix_init_kb(void)
-{
+void matrix_init_kb(void) {
matrix_init_user();
+
#ifndef AUDIO_ENABLE
// If we're not using the audio pin, drive it low
- sbi(DDRC, 6);
- cbi(PORTC, 6);
+ setPinOutput(C6);
+ writePinLow(C6);
#endif
#ifdef ISSI_ENABLE
issi_init();
#endif
+
#ifdef WATCHDOG_ENABLE
// This is done after turning the layer LED red, if we're caught in a loop
// we should get a flashing red light
wdt_enable(WDTO_500MS);
#endif
-
}
-void matrix_scan_kb(void)
-{
+void matrix_scan_kb(void) {
#ifdef WATCHDOG_ENABLE
wdt_reset();
#endif
+
#ifdef ISSI_ENABLE
// switch/underglow lighting update
static uint32_t issi_device = 0;
static uint32_t twi_last_ready = 0;
- if(twi_last_ready > 1000){
- // Its been way too long since the last ISSI update, reset the I2C bus and start again
+
+ if (twi_last_ready > 1000) {
+ // It's been way too long since the last ISSI update, reset the I2C bus and start again
dprintf("TWI failed to recover, TWI re-init\n");
twi_last_ready = 0;
TWIInit();
force_issi_refresh();
}
- if(isTWIReady()){
+
+ if (isTWIReady()) {
twi_last_ready = 0;
// If the i2c bus is available, kick off the issi update, alternate between devices
update_issi(issi_device, issi_device);
- if(issi_device){
+
+ if (issi_device) {
issi_device = 0;
- }else{
+ } else {
issi_device = 3;
}
- }else{
+ } else {
twi_last_ready++;
}
#endif
+
matrix_scan_user();
}
-void click(uint16_t freq, uint16_t duration){
+void click(uint16_t freq, uint16_t duration) {
#ifdef AUDIO_ENABLE
- if(freq >= 100 && freq <= 20000 && duration < 100){
+ if (freq >= 100 && freq <= 20000 && duration < 100) {
play_note(freq, 10);
- for (uint16_t i = 0; i < duration; i++){
+
+ for (uint16_t i = 0; i < duration; i++) {
_delay_ms(1);
}
+
stop_all_notes();
}
#endif
}
-bool process_record_kb(uint16_t keycode, keyrecord_t* record)
-{
- if (click_toggle && record->event.pressed){
+bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
+ if (click_toggle && record->event.pressed) {
click(click_hz, click_time);
}
+
if (keycode == RESET) {
reset_keyboard_kb();
- } else {
}
+
return process_record_user(keycode, record);
}
-void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
-{
+void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) {
#ifdef AUDIO_ENABLE
int8_t sign = 1;
#endif
- if(id == LFK_ESC_TILDE){
+
+ if (id == LFK_ESC_TILDE) {
// Send ~ on shift-esc
void (*method)(uint8_t) = (event->event.pressed) ? &add_key : &del_key;
- uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT));
- if(layer_state == 0){
+ uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
+
+ if (layer_state == 0) {
method(shifted ? KC_GRAVE : KC_ESCAPE);
- }else{
+ } else {
method(shifted ? KC_ESCAPE : KC_GRAVE);
}
send_keyboard_report();
- }else if(event->event.pressed){
- switch(id){
+ } else if (event->event.pressed) {
+ switch (id) {
case LFK_SET_DEFAULT_LAYER:
// set/save the current base layer to eeprom, falls through to LFK_CLEAR
eeconfig_update_default_layer(1UL << opt);
@@ -117,24 +122,24 @@ void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
break;
#ifdef AUDIO_ENABLE
case LFK_CLICK_FREQ_LOWER:
- sign = -1; // continue to next statement
+ sign = -1; // continue to next statement
case LFK_CLICK_FREQ_HIGHER:
click_hz += sign * 100;
click(click_hz, click_time);
break;
case LFK_CLICK_TOGGLE:
- if(click_toggle){
+ if (click_toggle) {
click_toggle = 0;
click(4000, 100);
click(1000, 100);
- }else{
+ } else {
click_toggle = 1;
click(1000, 100);
click(4000, 100);
}
break;
case LFK_CLICK_TIME_SHORTER:
- sign = -1; // continue to next statement
+ sign = -1; // continue to next statement
case LFK_CLICK_TIME_LONGER:
click_time += sign;
click(click_hz, click_time);
@@ -144,22 +149,18 @@ void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
}
}
-void reset_keyboard_kb(){
+void reset_keyboard_kb() {
#ifdef WATCHDOG_ENABLE
MCUSR = 0;
wdt_disable();
wdt_reset();
#endif
- reset_keyboard();
-}
-void led_set_kb(uint8_t usb_led)
-{
- led_set_user(usb_led);
+ reset_keyboard();
}
// LFK lighting info
-const uint8_t rgb_matrices[] = {0, 1};
+const uint8_t rgb_matrices[] = { 0, 1 };
const uint8_t rgb_sequence[] = {
32, 1, 2, 3,
31, 30, 5, 6,
@@ -172,5 +173,4 @@ const uint8_t rgb_sequence[] = {
4, 25,
13, 24,
20
-
};
diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.h b/keyboards/lfkeyboards/lfkpad/lfkpad.h
index a4c248e2a..0f34150db 100644
--- a/keyboards/lfkeyboards/lfkpad/lfkpad.h
+++ b/keyboards/lfkeyboards/lfkpad/lfkpad.h
@@ -1,23 +1,6 @@
-#ifndef LFKPAD_H
-#define LFKPAD_H
-
-/* if the kb.h file exists (because we're running from qmkbuilder) include it */
-#if __has_include("kb.h")
-#include "kb.h"
-#endif
+#pragma once
#include "quantum.h"
-#include "matrix.h"
-#include <avr/sfr_defs.h>
-
-#ifndef cbi
-#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
-#endif
-
-#ifndef sbi
-#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
-#endif
-
typedef struct RGB_Color {
uint16_t red;
@@ -57,7 +40,6 @@ void click(uint16_t freq, uint16_t duration);
// readability
#define ___ KC_NO
-
#define LAYOUT_numpad_6x4( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
@@ -73,5 +55,3 @@ void click(uint16_t freq, uint16_t duration);
{ k40, k41, k42, k43 }, \
{ k50, ___, k52, ___ } \
}
-
-#endif //LFKPAD_H
diff --git a/keyboards/lfkeyboards/lfkpad/readme.md b/keyboards/lfkeyboards/lfkpad/readme.md
index 7dd8337e8..ce5e7f67b 100644
--- a/keyboards/lfkeyboards/lfkpad/readme.md
+++ b/keyboards/lfkeyboards/lfkpad/readme.md
@@ -1,28 +1,15 @@
-bluepad keyboard firmware
-======================
+# LFKPad
-## Quantum MK Firmware
+![LFKPad](https://cdn11.bigcommerce.com/s-dvx2zpcx7r/images/stencil/500x659/products/118/385/img_0256__06462.1546304848.jpg)
-For the full Quantum feature list, see [the parent readme.md](/docs/README.md).
+Hotswap 21-key numpad PCB with USB-C, per-key RGB and underglow.
-## Building
+* Keyboard Maintainer: QMK community
+* Hardware Supported: LFKPad HS21 PCB
+* Hardware Availability: [LFKeyboards](https://www.lfkeyboards.com/lfkpad/)
-Download or clone the whole firmware and navigate to the keyboards/bluepad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+Make example for this keyboard (after setting up your build environment):
-Depending on which keymap you would like to use, you will have to compile slightly differently.
+ make lfkeyboards/lfkpad:default
-### Default
-
-To build with the default keymap, simply run `make`.
-
-### Other Keymaps
-
-Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
-
-To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
-
-```
-$ make keymap=[default|jack|<name>]
-```
-
-Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk
index 7ed840ae9..aca77f562 100644
--- a/keyboards/lfkeyboards/lfkpad/rules.mk
+++ b/keyboards/lfkeyboards/lfkpad/rules.mk
@@ -11,26 +11,29 @@ MCU = atmega32u4
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
-LAYOUTS = numpad_6x4
-
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
-SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-TAP_DANCE_ENABLE = no
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
-WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
+ISSI_ENABLE = yes # If the I2C pullup resistors aren't installed this must be disabled
+WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan() isn't run every 250ms
SRC = TWIlib.c issi.c lighting.c
@@ -41,3 +44,5 @@ endif
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
endif
+
+LAYOUTS = numpad_6x4
diff --git a/keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk b/keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk
index 1598173f3..2619a2d19 100644
--- a/keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk
+++ b/keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/mini1800/rules.mk b/keyboards/lfkeyboards/mini1800/rules.mk
index d3e6a2402..a9c29c4b9 100644
--- a/keyboards/lfkeyboards/mini1800/rules.mk
+++ b/keyboards/lfkeyboards/mini1800/rules.mk
@@ -21,3 +21,8 @@ SRC = TWIlib.c issi.c lighting.c
ifeq ($(strip $(ISSI_ENABLE)), yes)
# TMK_COMMON_DEFS += -DISSI_ENABLE
endif
+
+# Build Options
+# change yes to no to disable
+#
+BACKLIGHT_DRIVER = custom
diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
index b5310da58..d8fe33f6c 100644
--- a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
+++ b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
index f1814cf48..312dfbc51 100644
--- a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
+++ b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
@@ -3,10 +3,10 @@
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
# BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
diff --git a/keyboards/lily58/keymaps/default/rules.mk b/keyboards/lily58/keymaps/default/rules.mk
index 922fac6b6..b39305767 100644
--- a/keyboards/lily58/keymaps/default/rules.mk
+++ b/keyboards/lily58/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/lily58/keymaps/ninjonas/keymap.c b/keyboards/lily58/keymaps/ninjonas/keymap.c
index 0ed197c14..0bd330a76 100644
--- a/keyboards/lily58/keymaps/ninjonas/keymap.c
+++ b/keyboards/lily58/keymaps/ninjonas/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________, \
_____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________, \
_____________________QWERTY_L3______________________, T_LBRC, T_RBRC, _____________________QWERTY_R3______________________, \
- ________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
+ _____________MOD_LEFT_____________, _____________MOD_RIGHT____________ \
),
/* DVORAK
@@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________, \
_____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________, \
_____________________DVORAK_L3______________________, T_LBRC, T_RBRC, _____________________DVORAK_R3______________________, \
- ________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
+ _____________MOD_LEFT_____________, _____________MOD_RIGHT____________ \
),
/* COLEMAK
@@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________, \
_____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________, \
_____________________COLEMAK_L3_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R3_____________________, \
- ________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
+ _____________MOD_LEFT_____________, _____________MOD_RIGHT____________ \
),
/* LOWER
diff --git a/keyboards/lily58/rules.mk b/keyboards/lily58/rules.mk
index fce62532f..d413510ba 100644
--- a/keyboards/lily58/rules.mk
+++ b/keyboards/lily58/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/m0lly/rules.mk b/keyboards/m0lly/rules.mk
index 21e3697dc..60140160c 100644
--- a/keyboards/m0lly/rules.mk
+++ b/keyboards/m0lly/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/m10a/rules.mk b/keyboards/m10a/rules.mk
index 739e396df..71ef0ed64 100644
--- a/keyboards/m10a/rules.mk
+++ b/keyboards/m10a/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/maartenwut/atom47/rev2/rules.mk b/keyboards/maartenwut/atom47/rev2/rules.mk
index 24d1c4199..0b6b87998 100644
--- a/keyboards/maartenwut/atom47/rev2/rules.mk
+++ b/keyboards/maartenwut/atom47/rev2/rules.mk
@@ -1,2 +1,2 @@
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
+RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality
diff --git a/keyboards/maartenwut/atom47/rev3/rules.mk b/keyboards/maartenwut/atom47/rev3/rules.mk
index 13e553b56..2df225e38 100644
--- a/keyboards/maartenwut/atom47/rev3/rules.mk
+++ b/keyboards/maartenwut/atom47/rev3/rules.mk
@@ -1,2 +1,2 @@
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
diff --git a/keyboards/maartenwut/atom47/rules.mk b/keyboards/maartenwut/atom47/rules.mk
index 0728c1a28..7fdd5ad48 100644
--- a/keyboards/maartenwut/atom47/rules.mk
+++ b/keyboards/maartenwut/atom47/rules.mk
@@ -14,12 +14,12 @@ BOOTLOADER = qmk-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/maartenwut/mx5160/config.h b/keyboards/maartenwut/mx5160/config.h
new file mode 100644
index 000000000..7d3be7938
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/config.h
@@ -0,0 +1,252 @@
+/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4705
+#define PRODUCT_ID 0x5160
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Maartenwut
+#define PRODUCT MX-5160
+#define DESCRIPTION Replacement PCB for the Chicony 5160c
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS {C6,C7,B5,B6,D7,B4,D4,D6,D5,D3}
+#define MATRIX_COL_PINS {D0,D1,D2,F7,F6,F5,F4,F1,F0,E6}
+#define UNUSED_PINS {B7,B0}
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+// For QMK DFU
+#define QMK_ESC_OUTPUT C6
+#define QMK_ESC_INPUT D1
+#define QMK_LED B1
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/maartenwut/mx5160/info.json b/keyboards/maartenwut/mx5160/info.json
new file mode 100644
index 000000000..8962522ba
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "mx5160",
+ "url": "https://github.com/Maartenwut/mx-5160",
+ "maintainer": "qmk",
+ "width": 22,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2.5, "y":0}, {"x":3.5, "y":0}, {"x":4.5, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":14.5, "y":0}, {"x":15.5, "y":0}, {"x":16.5, "y":0}, {"x":18, "y":0}, {"x":19, "y":0}, {"x":20, "y":0}, {"x":21, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2.5, "y":1, "w":1.5}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":16, "y":1, "w":1.5}, {"x":18, "y":1}, {"x":19, "y":1}, {"x":20, "y":1}, {"x":21, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2.5, "y":2, "w":1.75}, {"x":4.25, "y":2}, {"x":5.25, "y":2}, {"x":6.25, "y":2}, {"x":7.25, "y":2}, {"x":8.25, "y":2}, {"x":9.25, "y":2}, {"x":10.25, "y":2}, {"x":11.25, "y":2}, {"x":12.25, "y":2}, {"x":13.25, "y":2}, {"x":14.25, "y":2}, {"x":15.25, "y":2}, {"x":16.25, "y":2, "w":1.25}, {"x":18, "y":2}, {"x":19, "y":2}, {"x":20, "y":2}, {"x":21, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2.5, "y":3, "w":1.25}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3}, {"x":14.75, "y":3, "w":1.75}, {"x":16.5, "y":3}, {"x":18, "y":3}, {"x":19, "y":3}, {"x":20, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":5, "y":4, "w":1.5}, {"x":6.5, "y":4, "w":7}, {"x":13.5, "y":4, "w":1.5}, {"x":16, "y":4, "w":1.5}, {"x":18, "y":4}, {"x":19, "y":4}, {"x":20, "y":4}, {"x":21, "y":3, "h":2}]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/maartenwut/mx5160/keymaps/default/keymap.c b/keyboards/maartenwut/mx5160/keymaps/default/keymap.c
new file mode 100644
index 000000000..be6cc89f6
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
+/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+#define _MA 0 //Main layer
+#define _FN 1 //Main layer
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_MA] = LAYOUT_all(
+ KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
+ KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, _______, \
+ KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, _______, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, \
+ KC_F7, KC_F8, KC_LSFT, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_P1, KC_P2, KC_P3, \
+ KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_P0, _______, KC_PDOT, KC_PENT), \
+
+[_FN] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_PSCR, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
+
+};
diff --git a/keyboards/maartenwut/mx5160/keymaps/default/readme.md b/keyboards/maartenwut/mx5160/keymaps/default/readme.md
new file mode 100644
index 000000000..c93867735
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/keymaps/default/readme.md
@@ -0,0 +1 @@
+This is the default keymap for the mx-5160 PCB. \ No newline at end of file
diff --git a/keyboards/maartenwut/mx5160/mx5160.c b/keyboards/maartenwut/mx5160/mx5160.c
new file mode 100644
index 000000000..96859693c
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/mx5160.c
@@ -0,0 +1,58 @@
+/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "mx5160.h"
+
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+ led_init_ports();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+void led_init_ports(void) {
+ //Set led pin as output, then high (off)
+
+ //Caps lock
+ setPinOutput(B1);
+ writePinHigh(B1);
+
+ //Num lock
+ setPinOutput(B2);
+ writePinHigh(B2);
+
+ //Scroll lock
+ setPinOutput(B3);
+ writePinHigh(B3);
+}
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (res) {
+ writePin(B2, !led_state.num_lock);
+ writePin(B1, !led_state.caps_lock);
+ writePin(B3, !led_state.scroll_lock);
+ }
+ return res;
+}
diff --git a/keyboards/maartenwut/mx5160/mx5160.h b/keyboards/maartenwut/mx5160/mx5160.h
new file mode 100644
index 000000000..89179a7f8
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/mx5160.h
@@ -0,0 +1,47 @@
+/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+#define XXX KC_NO
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_all( \
+ k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k87, k17, k08, k18, k09, k19, \
+ k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k27, k37, k28, k38, k29, k39, \
+ k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k57, k48, k58, k49, k59, \
+ k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, k67, k77, k68, k78, k69, \
+ k80, k90, k81, k82, k94, k96, k97, k88, k98, k89, k99 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49 }, \
+ { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \
+ { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \
+ { k70, k71, k72, k73, k74, k75, k76, k77, k78, XXX }, \
+ { k80, k81, k82, XXX, XXX, XXX, XXX, k87, k88, k89 }, \
+ { k90, XXX, XXX, XXX, k94, XXX, k96, k97, k98, k99 } \
+}
diff --git a/keyboards/maartenwut/mx5160/readme.md b/keyboards/maartenwut/mx5160/readme.md
new file mode 100644
index 000000000..40753a8f5
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/readme.md
@@ -0,0 +1,15 @@
+# mx5160
+
+![mx5160](https://i.imgur.com/XZ9xUeq.jpg)
+
+## Support
+* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Hardware Supported: mx-5160 (Chicony 5160c case)
+* Hardware Availability: [Github](https://github.com/Maartenwut/mx-5160)
+
+## Build
+Make example for this keyboard (after setting up your build environment):
+
+ make maartenwut/mx5160:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/mx5160/rules.mk b/keyboards/maartenwut/mx5160/rules.mk
new file mode 100644
index 000000000..eb1e55955
--- /dev/null
+++ b/keyboards/maartenwut/mx5160/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = qmk-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/maartenwut/ta65/rules.mk b/keyboards/maartenwut/ta65/rules.mk
index ecc629698..db0567bd0 100644
--- a/keyboards/maartenwut/ta65/rules.mk
+++ b/keyboards/maartenwut/ta65/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = qmk-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/maartenwut/wasdat/matrix.c b/keyboards/maartenwut/wasdat/matrix.c
index 04d221971..6dd79b533 100644
--- a/keyboards/maartenwut/wasdat/matrix.c
+++ b/keyboards/maartenwut/wasdat/matrix.c
@@ -17,34 +17,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <stdint.h>
#include <stdbool.h>
#include "wait.h"
-#include "print.h"
-#include "debug.h"
#include "util.h"
#include "matrix.h"
#include "debounce.h"
#include "quantum.h"
-#if (MATRIX_COLS <= 8)
-# define print_matrix_header() print("\nr/c 01234567\n")
-# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
-# define matrix_bitpop(i) bitpop(matrix[i])
-# define ROW_SHIFTER ((uint8_t)1)
-#elif (MATRIX_COLS <= 16)
-# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n")
-# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row))
-# define matrix_bitpop(i) bitpop16(matrix[i])
-# define ROW_SHIFTER ((uint16_t)1)
-#elif (MATRIX_COLS <= 32)
-# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n")
-# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row))
-# define matrix_bitpop(i) bitpop32(matrix[i])
-# define ROW_SHIFTER ((uint32_t)1)
-#endif
-
-#ifdef MATRIX_MASKED
- extern const matrix_row_t matrix_mask[];
-#endif
-
#ifdef DIRECT_PINS
static pin_t direct_pins[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS;
#elif (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW)
@@ -52,150 +29,58 @@ static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
//static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
#endif
-/* matrix state(1:on, 0:off) */
-static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
-static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
-
-__attribute__ ((weak))
-void matrix_init_quantum(void) {
- matrix_init_kb();
-}
-
-__attribute__ ((weak))
-void matrix_scan_quantum(void) {
- matrix_scan_kb();
-}
-
-__attribute__ ((weak))
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
-__attribute__ ((weak))
-void matrix_scan_kb(void) {
- matrix_scan_user();
-}
-
-__attribute__ ((weak))
-void matrix_init_user(void) {
-}
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {
-}
-
-inline
-uint8_t matrix_rows(void) {
- return MATRIX_ROWS;
-}
-
-inline
-uint8_t matrix_cols(void) {
- return MATRIX_COLS;
-}
-
-//Deprecated.
-bool matrix_is_modified(void)
-{
- if (debounce_active()) return false;
- return true;
-}
-
-inline
-bool matrix_is_on(uint8_t row, uint8_t col)
-{
- return (matrix[row] & ((matrix_row_t)1<<col));
-}
-
-inline
-matrix_row_t matrix_get_row(uint8_t row)
-{
- // Matrix mask lets you disable switches in the returned matrix data. For example, if you have a
- // switch blocker installed and the switch is always pressed.
-#ifdef MATRIX_MASKED
- return matrix[row] & matrix_mask[row];
-#else
- return matrix[row];
-#endif
-}
-
-void matrix_print(void)
-{
- print_matrix_header();
-
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- phex(row); print(": ");
- print_matrix_row(row);
- print("\n");
- }
-}
-
-uint8_t matrix_key_count(void)
-{
- uint8_t count = 0;
- for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
- count += matrix_bitpop(i);
- }
- return count;
-}
-
+// matrix code
#ifdef DIRECT_PINS
static void init_pins(void) {
- for (int row = 0; row < MATRIX_ROWS; row++) {
- for (int col = 0; col < MATRIX_COLS; col++) {
- pin_t pin = direct_pins[row][col];
- if (pin != NO_PIN) {
- setPinInputHigh(pin);
- }
+ for (int row = 0; row < MATRIX_ROWS; row++) {
+ for (int col = 0; col < MATRIX_COLS; col++) {
+ pin_t pin = direct_pins[row][col];
+ if (pin != NO_PIN) {
+ setPinInputHigh(pin);
+ }
+ }
}
- }
}
static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
- matrix_row_t last_row_value = current_matrix[current_row];
- current_matrix[current_row] = 0;
+ matrix_row_t last_row_value = current_matrix[current_row];
+ current_matrix[current_row] = 0;
- for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
- pin_t pin = direct_pins[current_row][col_index];
- if (pin != NO_PIN) {
- current_matrix[current_row] |= readPin(pin) ? 0 : (ROW_SHIFTER << col_index);
+ for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
+ pin_t pin = direct_pins[current_row][col_index];
+ if (pin != NO_PIN) {
+ current_matrix[current_row] |= readPin(pin) ? 0 : (MATRIX_ROW_SHIFTER << col_index);
+ }
}
- }
- return (last_row_value != current_matrix[current_row]);
+ return (last_row_value != current_matrix[current_row]);
}
#elif (DIODE_DIRECTION == COL2ROW)
-static void select_row(uint8_t row)
-{
+static void select_row(uint8_t row) {
setPinOutput(row_pins[row]);
writePinLow(row_pins[row]);
}
-static void unselect_row(uint8_t row)
-{
- setPinInputHigh(row_pins[row]);
-}
+static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); }
-static void unselect_rows(void)
-{
- for(uint8_t x = 0; x < MATRIX_ROWS; x++) {
+static void unselect_rows(void) {
+ for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
setPinInputHigh(row_pins[x]);
}
}
static void init_pins(void) {
- unselect_rows();
- for (uint8_t x = 0; x < MATRIX_COLS; x++) {
- setPinInputHigh(col_pins[x]);
- }
+ unselect_rows();
+ for (uint8_t x = 0; x < MATRIX_COLS; x++) {
+ setPinInputHigh(col_pins[x]);
+ }
}
-static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
-{
+static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
// Store last value of row prior to reading
matrix_row_t last_row_value = current_matrix[current_row];
@@ -207,13 +92,13 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
wait_us(30);
// For each col...
- for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
+ for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
// Select the col pin to read (active low)
uint8_t pin_state = readPin(col_pins[col_index]);
// Populate the matrix row with the state of the col pin
- current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index);
+ current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
}
// Unselect row
@@ -245,8 +130,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
* col 14: B7
* col 15: B3
*/
-static void select_col(uint8_t col)
-{
+static void select_col(uint8_t col) {
switch (col) {
case 0:
writePinLow(C7);
@@ -304,8 +188,7 @@ static void select_col(uint8_t col)
}
}
-static void unselect_col(uint8_t col)
-{
+static void unselect_col(uint8_t col) {
switch (col) {
case 0:
writePinHigh(C7);
@@ -363,8 +246,7 @@ static void unselect_col(uint8_t col)
}
}
-static void unselect_cols(void)
-{
+static void unselect_cols(void) {
//Native
setPinOutput(D3);
setPinOutput(D7);
@@ -397,14 +279,13 @@ static void unselect_cols(void)
}
static void init_pins(void) {
- unselect_cols();
- for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
- setPinInputHigh(row_pins[x]);
- }
+ unselect_cols();
+ for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
+ setPinInputHigh(row_pins[x]);
+ }
}
-static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
-{
+static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) {
bool matrix_changed = false;
// Select col and wait for col selecton to stabilize
@@ -412,27 +293,21 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
wait_us(30);
// For each row...
- for(uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++)
- {
-
+ for (uint8_t row_index = 0; row_index < MATRIX_ROWS; row_index++) {
// Store last value of row prior to reading
matrix_row_t last_row_value = current_matrix[row_index];
// Check row pin state
- if (readPin(row_pins[row_index]) == 0)
- {
+ if (readPin(row_pins[row_index]) == 0) {
// Pin LO, set col bit
- current_matrix[row_index] |= (ROW_SHIFTER << current_col);
- }
- else
- {
+ current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col);
+ } else {
// Pin HI, clear col bit
- current_matrix[row_index] &= ~(ROW_SHIFTER << current_col);
+ current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col);
}
// Determine if the matrix changed state
- if ((last_row_value != current_matrix[row_index]) && !(matrix_changed))
- {
+ if ((last_row_value != current_matrix[row_index]) && !(matrix_changed)) {
matrix_changed = true;
}
}
@@ -445,40 +320,25 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
#endif
-void matrix_init(void) {
-
+void matrix_init_custom(void) {
// initialize key pins
init_pins();
-
- // initialize matrix state: all keys off
- for (uint8_t i=0; i < MATRIX_ROWS; i++) {
- raw_matrix[i] = 0;
- matrix[i] = 0;
- }
-
- debounce_init(MATRIX_ROWS);
-
- matrix_init_quantum();
}
-uint8_t matrix_scan(void)
-{
- bool changed = false;
+bool matrix_scan_custom(matrix_row_t current_matrix[]) {
+ bool changed = false;
#if defined(DIRECT_PINS) || (DIODE_DIRECTION == COL2ROW)
- // Set row, read cols
- for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
- changed |= read_cols_on_row(raw_matrix, current_row);
- }
+ // Set row, read cols
+ for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
+ changed |= read_cols_on_row(current_matrix, current_row);
+ }
#elif (DIODE_DIRECTION == ROW2COL)
- // Set col, read rows
- for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
- changed |= read_rows_on_col(raw_matrix, current_col);
- }
+ // Set col, read rows
+ for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
+ changed |= read_rows_on_col(current_matrix, current_col);
+ }
#endif
- debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
-
- matrix_scan_quantum();
- return (uint8_t)changed;
+ return changed;
}
diff --git a/keyboards/maartenwut/wasdat/rules.mk b/keyboards/maartenwut/wasdat/rules.mk
index 136c7bce2..db9728623 100644
--- a/keyboards/maartenwut/wasdat/rules.mk
+++ b/keyboards/maartenwut/wasdat/rules.mk
@@ -31,7 +31,7 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-CUSTOM_MATRIX = yes
+CUSTOM_MATRIX = lite
SRC += matrix.c
LAYOUTS = fullsize_ansi fullsize_iso tkl_ansi tkl_iso
diff --git a/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/keymap.c b/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/keymap.c
new file mode 100755
index 000000000..5c59d53a7
--- /dev/null
+++ b/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/keymap.c
@@ -0,0 +1,42 @@
+#include QMK_KEYBOARD_H
+
+#define CAPSTL CTL_T(KC_CAPS)
+
+enum layers {
+ _BASE,
+ _GAME,
+ _FUNC,
+ _RGB
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_BASE] = LAYOUT(
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_PGUP, KC_PGDN,
+ KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_END, CAPSTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_DEL, MO(2),
+ TG(1), KC_LAPO, KC_BSPC, KC_LGUI, KC_SPC, KC_RAPC, MO(3)
+ ),
+[_GAME] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_SPC, _______, _______, _______, _______
+ ),
+[_FUNC] = LAYOUT(
+ KC_PSCR, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, _______, KC_VOLU, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX,
+ KC_LSFT, KC_BRIU, KC_BRID, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX,
+ KC_MPLY, KC_LALT, _______, _______, _______, KC_RALT, XXXXXXX
+ ),
+[_RGB] = LAYOUT(
+ RGB_TOG, VLK_TOG, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, RESET,
+ RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+RGB_RMOD, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX,
+ KC_LSFT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX,
+ _______, KC_LALT, _______, _______, _______, KC_RALT, XXXXXXX
+ )
+};
diff --git a/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/readme.md b/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/readme.md
new file mode 100644
index 000000000..a5381fff3
--- /dev/null
+++ b/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/readme.md
@@ -0,0 +1,9 @@
+## Rafael-Azevedo a layout for everyday use and gaming
+
+### This layout was designed for everyday work with all necessary keys reachable from the home row, while having a toggle layer moving the space and backspace to a more traditional location.
+
+* The main layer gives you access to home, end, pgup and pgdn. While keeping control, delete, backspace, and enter reachable when your fingers are in the home row.
+* The main layer also includes capslock key while tapped and it becomes control when pressed.
+* **Toggle(1)[Game]:** Toggles into a gaming layout that gives you space on your left hand thumb and moves the backspace to the traditional location. That way you can game one handed while using a mouse.
+* **MO(2)[_FUNC]:** Is a momentary layer for all special functions including F keys , volume control, and print screen. It also keys character C and V, allowing you to copy and paste while using arrow keys. This is an easy to reach location for all special funtionality that is not normally used.
+* **M(3)[_RGB]:** Is a momentary layer that gives you all the RGB control and keyboard Reset. This moves the funtionality not normally used to a place you won't accidently hit and get annoyed at.
diff --git a/keyboards/maartenwut/wonderland/rules.mk b/keyboards/maartenwut/wonderland/rules.mk
index 19c0ea591..a01e466b8 100755
--- a/keyboards/maartenwut/wonderland/rules.mk
+++ b/keyboards/maartenwut/wonderland/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = qmk-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/manta60/config.h b/keyboards/manta60/config.h
new file mode 100644
index 000000000..0bc49541c
--- /dev/null
+++ b/keyboards/manta60/config.h
@@ -0,0 +1,130 @@
+/*
+Copyright 2020 kamonanban
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x991D
+#define DEVICE_VER 0x0001
+#define MANUFACTURER kamonanban
+#define PRODUCT manta60
+#define DESCRIPTION A split keyboard with 27 ortholinear keys and 5-7 thumb/little finger keys
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 7
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { D4, C6, D7, E6 ,B4}
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D2
+#define SELECT_SOFT_SERIAL_SPEED 1
+
+#define RGBLIGHT_SPLIT
+#define RGB_DI_PIN D3
+
+#ifdef RGBLIGHT_ENABLE
+ #define RGBLED_NUM 68 // Number of LEDs
+ #define RGBLED_SPLIT { 34, 34 }
+#endif
+
+#ifdef RGB_DI_PIN
+ #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
+
+#ifndef IOS_DEVICE_ENABLE
+ /* The maximum brightness level */
+ #define RGBLIGHT_LIMIT_VAL 128
+ #define RGBLIGHT_VAL_STEP 16
+#else
+ #define RGBLIGHT_LIMIT_VAL 32
+ #define RGBLIGHT_VAL_STEP 4
+#endif
+
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+
+#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
+ #define USB_MAX_POWER_CONSUMPTION 400
+#else
+ #define USB_MAX_POWER_CONSUMPTION 100
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/manta60/info.json b/keyboards/manta60/info.json
new file mode 100644
index 000000000..6934b0269
--- /dev/null
+++ b/keyboards/manta60/info.json
@@ -0,0 +1,81 @@
+{
+ "keyboard_name": "manta60",
+ "url": "https://github.com/KamoNanban",
+ "maintainer": "kamonanban",
+ "width": 17,
+ "height": 4.5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"!", "x":1, "y":0},
+ {"label":"@", "x":2, "y":0},
+ {"label":"#", "x":3, "y":0},
+ {"label":"$", "x":4, "y":0},
+ {"label":"%", "x":5, "y":0},
+ {"label":"=", "x":6, "y":0},
+ {"label":"-", "x":11, "y":0},
+ {"label":"^", "x":12, "y":0},
+ {"label":"&", "x":13, "y":0},
+ {"label":"*", "x":14, "y":0},
+ {"label":"(", "x":15, "y":0},
+ {"label":")", "x":16, "y":0},
+ {"label":"\\", "x":17, "y":0},
+ {"label":"-", "x":0, "y":1},
+ {"label":"Q", "x":1, "y":1},
+ {"label":"W", "x":2, "y":1},
+ {"label":"E", "x":3, "y":1},
+ {"label":"R", "x":4, "y":1},
+ {"label":"T", "x":5, "y":1},
+ {"label":"[", "x":6, "y":1},
+ {"label":"]", "x":11, "y":1},
+ {"label":"Y", "x":12, "y":1},
+ {"label":"U", "x":13, "y":1},
+ {"label":"I", "x":14, "y":1},
+ {"label":"O", "x":15, "y":1},
+ {"label":"P", "x":16, "y":1},
+ {"label":"@", "x":17, "y":1},
+ {"label":"Tab", "x":0, "y":2},
+ {"label":"A", "x":1, "y":2},
+ {"label":"S", "x":2, "y":2},
+ {"label":"D", "x":3, "y":2},
+ {"label":"F", "x":4, "y":2},
+ {"label":"G", "x":5, "y":2},
+ {"label":",", "x":6, "y":2},
+ {"label":".", "x":11, "y":2},
+ {"label":"H", "x":12, "y":2},
+ {"label":"J", "x":13, "y":2},
+ {"label":"K", "x":14, "y":2},
+ {"label":"L", "x":15, "y":2},
+ {"label":"UP", "x":16, "y":2},
+ {"label":";", "x":17, "y":2},
+ {"label":"Shft", "x":0, "y":3},
+ {"label":"Z", "x":1, "y":3},
+ {"label":"X", "x":2, "y":3},
+ {"label":"C", "x":3, "y":3},
+ {"label":"V", "x":4, "y":3},
+ {"label":"Alt", "x":5, "y":3},
+ {"label":"B", "x":12, "y":3},
+ {"label":"N", "x":13, "y":3},
+ {"label":"M", "x":14, "y":3},
+ {"label":"LEFT", "x":15, "y":3},
+ {"label":"DOWN", "x":16, "y":3},
+ {"label":"RIGHT", "x":17, "y":3},
+ {"label":"LOWER", "x":0, "y":4.5},
+ {"x":1, "y":4.5},
+ {"label":"Alt", "x":4, "y":4.5},
+ {"label":"Ctrl", "x":5, "y":4.5},
+ {"label":"SPC", "x":6, "y":4.5},
+ {"label":"cmd", "x":7, "y":4.5},
+ {"label":"Enter", "x":8, "y":4.5},
+ {"label":"BS", "x":11, "y":4.5},
+ {"label":"DEL", "x":12, "y":4.5},
+ {"label":"SPC", "x":13, "y":4.5},
+ {"label":"Ctrl", "x":14, "y":4.5},
+ {"label":"Alt", "x":15, "y":4.5},
+ {"x":16, "y":4.5},
+ {"label":"RAISE", "x":17, "y":4.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/mechlovin/hannah910/keymaps/ansi/config.h b/keyboards/manta60/keymaps/default/config.h
index 3d1156ac0..55af5473e 100644
--- a/keyboards/mechlovin/hannah910/keymaps/ansi/config.h
+++ b/keyboards/manta60/keymaps/default/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Mechlovin
+/* Copyright 2020 kamonanban
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,4 +16,6 @@
#pragma once
+#define RGBLIGHT_SLEEP
+
// place overrides here
diff --git a/keyboards/manta60/keymaps/default/keymap.c b/keyboards/manta60/keymaps/default/keymap.c
new file mode 100644
index 000000000..5e98141b7
--- /dev/null
+++ b/keyboards/manta60/keymaps/default/keymap.c
@@ -0,0 +1,131 @@
+/* Copyright 2020 kamonanban
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_number {
+ _BASE = 0,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ LOWER = SAFE_RANGE,
+ RAISE,
+ ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ //,---------------------------------------------------------------------.,---------------------------------------------------------------------.
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_AT,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_COMM, KC_DOT, KC_H, KC_J, KC_K, KC_L, KC_UP, KC_SCLN,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_SLSH, KC_B, KC_N, KC_M, KC_LEFT, KC_DOWN, KC_RGHT,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ LOWER, XXXXXXX, KC_LALT, KC_LCTRL, KC_SPC, KC_LGUI, KC_ENT, KC_BSPC, KC_DEL, KC_SPC, KC_RCTRL, KC_RALT, XXXXXXX, RAISE
+ //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------'
+ ),
+
+ [_LOWER] = LAYOUT(
+ //,---------------------------------------------------------------------.,---------------------------------------------------------------------.
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE
+ //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------'
+ ),
+
+ [_RAISE] = LAYOUT(
+ //,---------------------------------------------------------------------.,---------------------------------------------------------------------.
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE
+ //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------'
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //,---------------------------------------------------------------------.,---------------------------------------------------------------------.
+ _______, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_M_SN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, RGB_M_T, RGB_HUD, RGB_SAD, RGB_VAD, RGB_M_K, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ _______, RGB_M_P, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_SW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ //|---------+---------+---------+---------+---------+---------+---------|\---------+---------+---------+---------+---------+---------+---------|
+ LOWER, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, RAISE
+ //`---------+----------/\-------+---------+---------+---------+---------/\---------+---------+---------+---------+---------/\--------+----------'
+ )
+};
+
+static inline void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+ if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
+ layer_on(layer3);
+ } else {
+ layer_off(layer3);
+ }
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+switch (keycode) {
+case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+case ADJUST:
+ if (record->event.pressed) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/manta60/keymaps/default/readme.md b/keyboards/manta60/keymaps/default/readme.md
new file mode 100644
index 000000000..f5c0e2c18
--- /dev/null
+++ b/keyboards/manta60/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for manta60
diff --git a/keyboards/manta60/manta60.c b/keyboards/manta60/manta60.c
new file mode 100644
index 000000000..59319d32e
--- /dev/null
+++ b/keyboards/manta60/manta60.c
@@ -0,0 +1 @@
+#include "manta60.h"
diff --git a/keyboards/manta60/manta60.h b/keyboards/manta60/manta60.h
new file mode 100644
index 000000000..f68594d75
--- /dev/null
+++ b/keyboards/manta60/manta60.h
@@ -0,0 +1,45 @@
+/* Copyright 2020 kamonanban
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+ #define LAYOUT( \
+ L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
+ L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
+ L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
+ L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
+ L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
+ ) \
+ { \
+ { L00, L01, L02, L03, L04, L05, L06 }, \
+ { L10, L11, L12, L13, L14, L15, L16 }, \
+ { L20, L21, L22, L23, L24, L25, L26 }, \
+ { L30, L31, L32, L33, L34, L35, KC_NO}, \
+ { L40, L41, L42, L43, L44, L45, L46 }, \
+ { R06, R05, R04, R03, R02, R01, R00 }, \
+ { R16, R15, R14, R13, R12, R11, R10 }, \
+ { R26, R25, R24, R23, R22, R21, R20 }, \
+ { R35, R34, R33, R32, R31, R30, KC_NO } , \
+ { R46, R45, R44, R43, R42, R41, R40 } \
+ }
diff --git a/keyboards/manta60/readme.md b/keyboards/manta60/readme.md
new file mode 100644
index 000000000..f163be27d
--- /dev/null
+++ b/keyboards/manta60/readme.md
@@ -0,0 +1,15 @@
+# manta60
+
+![manta60](https://github.com/KamoNanban/Manta60/blob/master/documents/_image/manta60_1.jpg)
+
+A split keyboard with 27 ortholinear keys and 5-7 thumb/little finger keys
+
+* Keyboard Maintainer: [kamonanban](https://github.com/KamoNanban)
+* Hardware Supported: MANTA60 PCBs, Pro Micro (ATmega32U4)
+* Hardware Availability: https://github.com/KamoNanban/Manta60
+
+Make example for this keyboard (after setting up your build environment):
+
+ make manta60:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/manta60/rules.mk b/keyboards/manta60/rules.mk
new file mode 100644
index 000000000..559044bb6
--- /dev/null
+++ b/keyboards/manta60/rules.mk
@@ -0,0 +1,40 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+SPLIT_KEYBOARD = yes
+
+IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
+
+ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
+ OPT_DEFS += -DIOS_DEVICE_ENABLE
+endif
diff --git a/keyboards/massdrop/alt/rules.mk b/keyboards/massdrop/alt/rules.mk
index 3da2610f6..ff482bb57 100644
--- a/keyboards/massdrop/alt/rules.mk
+++ b/keyboards/massdrop/alt/rules.mk
@@ -11,10 +11,10 @@ CUSTOM_MATRIX = yes
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -22,12 +22,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
VIRTSER_ENABLE = no # USB Serial Driver
RAW_ENABLE = no # Raw device
AUTO_SHIFT_ENABLE = no # Auto Shift
diff --git a/keyboards/massdrop/ctrl/rules.mk b/keyboards/massdrop/ctrl/rules.mk
index aa45c6805..a382272b4 100644
--- a/keyboards/massdrop/ctrl/rules.mk
+++ b/keyboards/massdrop/ctrl/rules.mk
@@ -11,10 +11,10 @@ CUSTOM_MATRIX = yes
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -22,12 +22,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
VIRTSER_ENABLE = no # USB Serial Driver
RAW_ENABLE = no # Raw device
AUTO_SHIFT_ENABLE = no # Auto Shift
diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk
index 735c7af26..9d907bd24 100644
--- a/keyboards/maxipad/rules.mk
+++ b/keyboards/maxipad/rules.mk
@@ -1,10 +1,10 @@
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -12,11 +12,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEFAULT_FOLDER = maxipad/promicro
diff --git a/keyboards/maxr1998/phoebe/config.h b/keyboards/maxr1998/phoebe/config.h
index 2e912b096..2be26c6fd 100644
--- a/keyboards/maxr1998/phoebe/config.h
+++ b/keyboards/maxr1998/phoebe/config.h
@@ -49,9 +49,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* RGB LED Setup */
#define RGB_DI_PIN F0 // pin the DI on the WS2812B is hooked-up to
-#define RGBLIGHT_ANIMATIONS // run RGB animations
#define RGBLED_NUM 8 // number of LEDs
+/* Selectively enable animation effects */
+#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+#define RGBLIGHT_EFFECT_SNAKE
+#define RGBLIGHT_EFFECT_CHRISTMAS
+#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c
index da179c8f2..1b6052a9d 100644
--- a/keyboards/maxr1998/phoebe/keymaps/default/keymap.c
+++ b/keyboards/maxr1998/phoebe/keymaps/default/keymap.c
@@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F10, KC_F11, KC_F12,
_______, _______, _______, _______, _______, _______, _______, DE_UE, KC_F9, DE_OE, _______, KC_DEL,
- KC_LOCK, DE_AE, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_B, RGB_M_SW,_______, _______,
+ KC_LOCK, DE_AE, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_SW,RGB_M_SN,_______, _______,
_______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, RGB_HUI, KC_PGUP, _______,
XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END
),
@@ -115,6 +115,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
}
break;
+ case KC_Z:
+ if (get_mods() & MODS_ALGR_MASK) {
+ if (record->event.pressed) {
+ register_code(DE_LESS);
+ } else {
+ unregister_code(DE_LESS);
+ }
+ return false;
+ }
+ break;
}
return true;
};
diff --git a/keyboards/maxr1998/phoebe/phoebe.c b/keyboards/maxr1998/phoebe/phoebe.c
index d8629f7f5..28d3afea5 100644
--- a/keyboards/maxr1998/phoebe/phoebe.c
+++ b/keyboards/maxr1998/phoebe/phoebe.c
@@ -1 +1,3 @@
#include "phoebe.h"
+
+const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {50, 50, 50};
diff --git a/keyboards/maxr1998/phoebe/rules.mk b/keyboards/maxr1998/phoebe/rules.mk
index b73145d7f..335e57536 100644
--- a/keyboards/maxr1998/phoebe/rules.mk
+++ b/keyboards/maxr1998/phoebe/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
COMBO_ENABLE = no # Key combo feature
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/maxr1998/pulse4k/info.json b/keyboards/maxr1998/pulse4k/info.json
index 0ac4f063c..a653f8e09 100644
--- a/keyboards/maxr1998/pulse4k/info.json
+++ b/keyboards/maxr1998/pulse4k/info.json
@@ -6,7 +6,7 @@
"width": 3,
"height": 2,
"layouts": {
- "LAYOUT_pulse4k": {
+ "LAYOUT": {
"key_count": 6,
"layout": [
{ "w": 1, "x": 0, "y": 0 },
diff --git a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
index 873c87d1f..67331235b 100644
--- a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
+++ b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
@@ -31,18 +31,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void matrix_init_user(void) {
}
+// Override if necessary
+/*
void encoder_one_update(bool clockwise) {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
}
void encoder_two_update(bool clockwise) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
}
+//*/
diff --git a/keyboards/maxr1998/pulse4k/pulse4k.c b/keyboards/maxr1998/pulse4k/pulse4k.c
index ee3d41ccd..2ec9dca73 100644
--- a/keyboards/maxr1998/pulse4k/pulse4k.c
+++ b/keyboards/maxr1998/pulse4k/pulse4k.c
@@ -59,3 +59,19 @@ void encoder_update_kb(uint8_t index, bool clockwise) {
} else encoder_two_update(clockwise);
}
}
+
+__attribute__((weak)) void encoder_one_update(bool clockwise) {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+}
+
+__attribute__((weak)) void encoder_two_update(bool clockwise) {
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+}
diff --git a/keyboards/maxr1998/pulse4k/rules.mk b/keyboards/maxr1998/pulse4k/rules.mk
index cee105352..71d9b5deb 100644
--- a/keyboards/maxr1998/pulse4k/rules.mk
+++ b/keyboards/maxr1998/pulse4k/rules.mk
@@ -15,11 +15,11 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
ENCODER_ENABLE = yes # Rotary encoders
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
COMBO_ENABLE = yes # Key combo feature
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/mc_76k/config.h b/keyboards/mc_76k/config.h
new file mode 100644
index 000000000..cccd6a8e9
--- /dev/null
+++ b/keyboards/mc_76k/config.h
@@ -0,0 +1,104 @@
+/*
+Copyright 2020 Yiancar-Designs
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x8968
+#define PRODUCT_ID 0x4D43
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Yiancar-Designs
+#define PRODUCT MC-76K
+#define DESCRIPTION O-Ring suspended 60% with F-row keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { C7, C6, B6, B0, D1, D0 }
+#define MATRIX_COL_PINS { D5, D3, D4, B1, D6, D7, B4, B5, F7, F6, F5, F4, F1, F0 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* disable these deprecated features by default */
+#ifndef LINK_TIME_OPTIMIZATION_ENABLE
+ #define NO_ACTION_MACRO
+ #define NO_ACTION_FUNCTION
+#endif
diff --git a/keyboards/mc_76k/info.json b/keyboards/mc_76k/info.json
new file mode 100644
index 000000000..482caa1c4
--- /dev/null
+++ b/keyboards/mc_76k/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "mc_76k",
+ "url": "www.yiancar-designs.com",
+ "maintainer": "Yiancar",
+ "width": 15,
+ "height": 6.5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "x":14, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"Delete", "x":14, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"Backspace", "x":13.5, "y":2.5, "w":1.5}, {"label":"Ctrl", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"Fn", "x":14, "y":4.5}, {"label":"Caps Lock", "x":0, "y":5.5, "w":1.5}, {"label":"Win", "x":1.5, "y":5.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Win", "x":12.5, "y":5.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/mc_76k/keymaps/default/keymap.c b/keyboards/mc_76k/keymaps/default/keymap.c
new file mode 100644
index 000000000..bf572d3c6
--- /dev/null
+++ b/keyboards/mc_76k/keymaps/default/keymap.c
@@ -0,0 +1,50 @@
+/* Copyright 2020 Yiancar-Designs
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all( /* Base */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
+
+ [1] = LAYOUT_all( /* FN1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_all( /* Empty for dynamic keymaps */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [3] = LAYOUT_all( /* Empty for dynamic keymaps */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
diff --git a/keyboards/mc_76k/keymaps/default/readme.md b/keyboards/mc_76k/keymaps/default/readme.md
new file mode 100644
index 000000000..cfca7e7ec
--- /dev/null
+++ b/keyboards/mc_76k/keymaps/default/readme.md
@@ -0,0 +1,5 @@
+# The default keymap for MC-76K
+
+![DEFAULT](https://i.imgur.com/GzUITtG.png)
+
+![FN1](https://i.imgur.com/ytnKmxg.png) \ No newline at end of file
diff --git a/keyboards/mc_76k/keymaps/via/keymap.c b/keyboards/mc_76k/keymaps/via/keymap.c
new file mode 100644
index 000000000..bf572d3c6
--- /dev/null
+++ b/keyboards/mc_76k/keymaps/via/keymap.c
@@ -0,0 +1,50 @@
+/* Copyright 2020 Yiancar-Designs
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all( /* Base */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
+
+ [1] = LAYOUT_all( /* FN1 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [2] = LAYOUT_all( /* Empty for dynamic keymaps */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ [3] = LAYOUT_all( /* Empty for dynamic keymaps */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
diff --git a/keyboards/mc_76k/keymaps/via/readme.md b/keyboards/mc_76k/keymaps/via/readme.md
new file mode 100644
index 000000000..b82bc8e79
--- /dev/null
+++ b/keyboards/mc_76k/keymaps/via/readme.md
@@ -0,0 +1 @@
+# Compile with this keymap to use VIA
diff --git a/keyboards/mc_76k/keymaps/via/rules.mk b/keyboards/mc_76k/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/mc_76k/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/mc_76k/mc_76k.c b/keyboards/mc_76k/mc_76k.c
new file mode 100644
index 000000000..0ca4c80ba
--- /dev/null
+++ b/keyboards/mc_76k/mc_76k.c
@@ -0,0 +1,34 @@
+/* Copyright 2020 Yiancar-Designs
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "mc_76k.h"
+
+void keyboard_pre_init_kb (void) {
+ setPinOutput(D2);
+}
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
+ // writePin sets the pin high for 1 and low for 0.
+ // In this example the pins are inverted, setting
+ // it low/0 turns it on, and high/1 turns the LED off.
+ // This behavior depends on whether the LED is between the pin
+ // and VCC or the pin and GND.
+ writePin(D2, !led_state.caps_lock);
+ }
+ return res;
+}
diff --git a/keyboards/mc_76k/mc_76k.h b/keyboards/mc_76k/mc_76k.h
new file mode 100644
index 000000000..6b9a5e961
--- /dev/null
+++ b/keyboards/mc_76k/mc_76k.h
@@ -0,0 +1,46 @@
+/* Copyright 2020 Yiancar-Designs
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define XXX KC_NO
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, \
+ K50, K52, K53, K57, K5B, K5C, K5D \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
+ { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D }, \
+ { K50, XXX, K52, K53, XXX, XXX, XXX, K57, XXX, XXX, XXX, K5B, K5C, K5D } \
+}
diff --git a/keyboards/mc_76k/readme.md b/keyboards/mc_76k/readme.md
new file mode 100644
index 000000000..be9b5c5ec
--- /dev/null
+++ b/keyboards/mc_76k/readme.md
@@ -0,0 +1,15 @@
+# MC-76K
+
+![mc_76k](https://geekhack.org/index.php?action=dlattach;topic=101040.0;attach=220476;image)
+
+O-Ring suspended 60% with F-row keyboard
+
+* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [github](https://github.com/yiancar)
+* Hardware Supported: ATmega32U4
+* Hardware Availability: GB run by [mustcode](https://www.reddit.com/user/mustcode). More info on [geekhack](https://geekhack.org/index.php?topic=101040.50)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mc_76k:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mc_76k/rules.mk b/keyboards/mc_76k/rules.mk
new file mode 100644
index 000000000..5f109c654
--- /dev/null
+++ b/keyboards/mc_76k/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/mechkeys/mk60/rules.mk b/keyboards/mechkeys/mk60/rules.mk
index 4f8bd49ef..e93b6146e 100644
--- a/keyboards/mechkeys/mk60/rules.mk
+++ b/keyboards/mechkeys/mk60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/mechlovin/hannah910/config.h b/keyboards/mechlovin/hannah910/config.h
index 1ff7dfd0b..c61693599 100644
--- a/keyboards/mechlovin/hannah910/config.h
+++ b/keyboards/mechlovin/hannah910/config.h
@@ -20,12 +20,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x0000
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Mechlovin
-#define PRODUCT Hannah910
-#define DESCRIPTION A replace PCB for TGR910 keyboard
+#define VENDOR_ID 0x4D4C // ML-MechLovin'
+#define MANUFACTURER Mechlovin
+#define PRODUCT Mechlovin Hannah910
+#define DESCRIPTION Mechlovin Hannah910
/* key matrix size */
#define MATRIX_ROWS 5
@@ -54,32 +52,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_LEVELS 3
#define RGB_DI_PIN E2
-// #ifdef RGB_DI_PIN
-#define RGBLED_NUM 9
-// #define RGBLIGHT_HUE_STEP 8
-// #define RGBLIGHT_SAT_STEP 8
-// #define RGBLIGHT_VAL_STEP 8
-#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
-// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-// /*== all animations enable ==*/
+#define RGBLIGHT_LIMIT_VAL 255
#define RGBLIGHT_ANIMATIONS
-// /*== or choose animations ==*/
-// #define RGBLIGHT_EFFECT_BREATHING
-// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
-// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-// #define RGBLIGHT_EFFECT_SNAKE
-// #define RGBLIGHT_EFFECT_KNIGHT
-// #define RGBLIGHT_EFFECT_CHRISTMAS
-// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
-// #define RGBLIGHT_EFFECT_RGB_TEST
-// #define RGBLIGHT_EFFECT_ALTERNATING
-// /*== customize breathing effect ==*/
-// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
-// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
-// /*==== use exp() and sin() ====*/
-// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
-// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
-// #endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/mechlovin/hannah910/hannah910.h b/keyboards/mechlovin/hannah910/hannah910.h
index 554116721..de9929bd1 100644
--- a/keyboards/mechlovin/hannah910/hannah910.h
+++ b/keyboards/mechlovin/hannah910/hannah910.h
@@ -17,54 +17,8 @@
#include "quantum.h"
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_all( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
- k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
- k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
- k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71 \
-) \
-{ \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
- { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
- { k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
- { k61, k62, k63, KC_NO, k64, KC_NO, k65, KC_NO, k66, KC_NO, k67, k68, k69, k70, k71 }, \
-}
-#define LAYOUT_iso( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
- k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k29, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
- k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
- k61, k62, k63, k65, k67, k68, k69, k70, k71 \
-) \
-{ \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
- { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, KC_NO, k29 }, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
- { k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
- { k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
-}
-
-#define LAYOUT_ansi( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
- k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k43, k45, \
- k46, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
- k61, k62, k63, k65, k67, k68, k69, k70, k71 \
-) \
-{ \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO }, \
- { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
- { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, KC_NO, k43, k45 }, \
- { k46, KC_NO, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
- { k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
-}
+#ifdef KEYBOARD_mechlovin_hannah910_rev1
+ #include "rev1.h"
+#elif KEYBOARD_mechlovin_hannah910_rev2
+ #include "rev2.h"
+#endif
diff --git a/keyboards/mechlovin/hannah910/keymaps/ansi/readme.md b/keyboards/mechlovin/hannah910/keymaps/ansi/readme.md
deleted file mode 100644
index b0dfa055c..000000000
--- a/keyboards/mechlovin/hannah910/keymaps/ansi/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The ansi keymap for hannah910
diff --git a/keyboards/mechlovin/hannah910/keymaps/default/readme.md b/keyboards/mechlovin/hannah910/keymaps/default/readme.md
deleted file mode 100644
index 6abbe27c4..000000000
--- a/keyboards/mechlovin/hannah910/keymaps/default/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default keymap for hannah910
diff --git a/keyboards/mechlovin/hannah910/readme.md b/keyboards/mechlovin/hannah910/readme.md
index 6cc6b226f..b16b294a5 100644
--- a/keyboards/mechlovin/hannah910/readme.md
+++ b/keyboards/mechlovin/hannah910/readme.md
@@ -4,12 +4,18 @@
Replacement PCB and plate for TGR 910 keyboard
-Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
-Hardware Supported: TGR910 CE, TGR910 SE
-Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
+* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
+* Hardware Supported: TGR910 CE, TGR910 SE
+* Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
Make example for this keyboard (after setting up your build environment):
- make mechlovin/hannah910:default
+ make mechlovin/hannah910/rev1:default
+ make mechlovin/hannah910/rev2:default
+
+Make firmware for keymap with VIA:
+
+ make mechlovin/hannah910/rev1:via
+ make mechlovin/hannah910/rev2:via
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mechlovin/hannah910/rev1/config.h b/keyboards/mechlovin/hannah910/rev1/config.h
new file mode 100644
index 000000000..906e0c884
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define PRODUCT_ID 0x9101
+#define DEVICE_VER 0x0001
+
+#define RGBLED_NUM 9 \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/info.json b/keyboards/mechlovin/hannah910/rev1/info.json
index 7bc6c7441..7bc6c7441 100644
--- a/keyboards/mechlovin/hannah910/info.json
+++ b/keyboards/mechlovin/hannah910/rev1/info.json
diff --git a/keyboards/mechlovin/hannah910/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c
index 97dd7a5f0..c16620a74 100644
--- a/keyboards/mechlovin/hannah910/keymaps/ansi/keymap.c
+++ b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c
@@ -23,7 +23,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_ansi( /* Base */
+ [1] = LAYOUT_ansi( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_ansi( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_ansi( /* Layer2 */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/readme.md b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/readme.md
new file mode 100644
index 000000000..0b0b0e3fb
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/readme.md
@@ -0,0 +1 @@
+# The ansi keymap for hannah910v1
diff --git a/keyboards/mechlovin/hannah910/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c
index 48499a111..ae53cc3f7 100644
--- a/keyboards/mechlovin/hannah910/keymaps/default/keymap.c
+++ b/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c
@@ -15,15 +15,30 @@
*/
#include QMK_KEYBOARD_H
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* Base */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
- LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_HOME,
- KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_all( /* Base */
+ [1] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all( /* Layer2 */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/default/readme.md b/keyboards/mechlovin/hannah910/rev1/keymaps/default/readme.md
new file mode 100644
index 000000000..fcfadce95
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for hannah910v1
diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/via/keymap.c b/keyboards/mechlovin/hannah910/rev1/keymaps/via/keymap.c
new file mode 100644
index 000000000..1b91e2aad
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
+/* Copyright 2019 Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
+ LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/via/readme.md b/keyboards/mechlovin/hannah910/rev1/keymaps/via/readme.md
new file mode 100644
index 000000000..3e54ca18c
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The default keymap (VIA support) for hannah910v1 \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/via/rules.mk b/keyboards/mechlovin/hannah910/rev1/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/mechlovin/hannah910/rev1/readme.md b/keyboards/mechlovin/hannah910/rev1/readme.md
new file mode 100644
index 000000000..04df333d1
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/readme.md
@@ -0,0 +1,15 @@
+# hannah910
+
+![hannah910](https://i.imgur.com/n8WN5Z7.jpg)
+
+Replacement PCB and plate for TGR 910 keyboard
+
+* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
+* Hardware Supported: TGR910 CE, TGR910 SE
+* Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/hannah910/rev1:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mechlovin/hannah910/rev1/rev1.h b/keyboards/mechlovin/hannah910/rev1/rev1.h
new file mode 100644
index 000000000..d2b39dba0
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/rev1.h
@@ -0,0 +1,48 @@
+#pragma once
+
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
+ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
+ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
+ k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
+ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
+ { k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
+ { k61, k62, k63, KC_NO, k64, KC_NO, k65, KC_NO, k66, KC_NO, k67, k68, k69, k70, k71 }, \
+}
+#define LAYOUT_iso( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
+ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
+ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
+ k61, k62, k63, k65, k67, k68, k69, k70, k71 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
+ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, KC_NO, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
+ { k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
+ { k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
+}
+
+#define LAYOUT_ansi( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
+ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k43, k45, \
+ k46, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
+ k61, k62, k63, k65, k67, k68, k69, k70, k71 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO }, \
+ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, KC_NO, k43, k45 }, \
+ { k46, KC_NO, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
+ { k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
+}
diff --git a/keyboards/mechlovin/hannah910/rev1/rules.mk b/keyboards/mechlovin/hannah910/rev1/rules.mk
new file mode 100644
index 000000000..5e17282eb
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev1/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/config.h b/keyboards/mechlovin/hannah910/rev2/config.h
new file mode 100644
index 000000000..3ae3cb65b
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define PRODUCT_ID 0x9102
+#define DEVICE_VER 0x0002
+
+#define RGBLED_NUM 28 \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/info.json b/keyboards/mechlovin/hannah910/rev2/info.json
new file mode 100644
index 000000000..df48fbcf3
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/info.json
@@ -0,0 +1,87 @@
+{
+ "keyboard_name": "Hannah910 Rev.2",
+ "url": "",
+ "maintainer": "Team Mechlovin'",
+ "width": 16,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 72,
+ "layout": [
+ {"label":"K00 (B0,B5)", "x":0, "y":0},
+ {"label":"K01 (B0,B6)", "x":1, "y":0},
+ {"label":"K02 (B0,B7)", "x":2, "y":0},
+ {"label":"K03 (B0,C0)", "x":3, "y":0},
+ {"label":"K04 (B0,C1)", "x":4, "y":0},
+ {"label":"K05 (B0,C2)", "x":5, "y":0},
+ {"label":"K06 (B0,C3)", "x":6, "y":0},
+ {"label":"K07 (B0,C4)", "x":7, "y":0},
+ {"label":"K08 (B0,C5)", "x":8, "y":0},
+ {"label":"K09 (B0,C6)", "x":9, "y":0},
+ {"label":"K0A (B0,C7)", "x":10, "y":0},
+ {"label":"K0B (B0,D0)", "x":11, "y":0},
+ {"label":"K0C (B0,D1)", "x":12, "y":0},
+ {"label":"K0D (B0,D2)", "x":13, "y":0},
+ {"label":"K0E (B0,D3)", "x":14, "y":0},
+ {"label":"K49 (B4,C6)", "x":15, "y":0},
+ {"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5},
+ {"label":"K11 (B1,B6)", "x":1.5, "y":1},
+ {"label":"K12 (B1,B7)", "x":2.5, "y":1},
+ {"label":"K13 (B1,C0)", "x":3.5, "y":1},
+ {"label":"K14 (B1,C1)", "x":4.5, "y":1},
+ {"label":"K15 (B1,C2)", "x":5.5, "y":1},
+ {"label":"K16 (B1,C3)", "x":6.5, "y":1},
+ {"label":"K17 (B1,C4)", "x":7.5, "y":1},
+ {"label":"K18 (B1,C5)", "x":8.5, "y":1},
+ {"label":"K19 (B1,C6)", "x":9.5, "y":1},
+ {"label":"K1A (B1,C7)", "x":10.5, "y":1},
+ {"label":"K1B (B1,D0)", "x":11.5, "y":1},
+ {"label":"K1C (B1,D1)", "x":12.5, "y":1},
+ {"label":"K1D (B1,D2)", "x":13.5, "y":1, "w":1.5},
+ {"label":"K1E (B1,D3)", "x":15, "y":1},
+ {"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75},
+ {"label":"K21 (B2,B6)", "x":1.75, "y":2},
+ {"label":"K22 (B2,B7)", "x":2.75, "y":2},
+ {"label":"K23 (B2,C0)", "x":3.75, "y":2},
+ {"label":"K24 (B2,C1)", "x":4.75, "y":2},
+ {"label":"K25 (B2,C2)", "x":5.75, "y":2},
+ {"label":"K26 (B2,C3)", "x":6.75, "y":2},
+ {"label":"K27 (B2,C4)", "x":7.75, "y":2},
+ {"label":"K28 (B2,C5)", "x":8.75, "y":2},
+ {"label":"K29 (B2,C6)", "x":9.75, "y":2},
+ {"label":"K2A (B2,C7)", "x":10.75, "y":2},
+ {"label":"K2B (B2,D0)", "x":11.75, "y":2},
+ {"label":"K2C (B2,D1)", "x":12.75, "y":2},
+ {"label":"K2D (B2,D2)", "x":13.75, "y":2, "w":1.25},
+ {"label":"K2E (B2,D3)", "x":15, "y":2},
+ {"label":"K30 (B3,B5)", "x":0, "y":3, "w":1.25},
+ {"label":"K31 (B3,B6)", "x":1.25, "y":3},
+ {"label":"K32 (B3,B7)", "x":2.25, "y":3},
+ {"label":"K33 (B3,C0)", "x":3.25, "y":3},
+ {"label":"K34 (B3,C1)", "x":4.25, "y":3},
+ {"label":"K35 (B3,C2)", "x":5.25, "y":3},
+ {"label":"K36 (B3,C3)", "x":6.25, "y":3},
+ {"label":"K37 (B3,C4)", "x":7.25, "y":3},
+ {"label":"K38 (B3,C5)", "x":8.25, "y":3},
+ {"label":"K39 (B3,C6)", "x":9.25, "y":3},
+ {"label":"K3A (B3,C7)", "x":10.25, "y":3},
+ {"label":"K3B (B3,D0)", "x":11.25, "y":3},
+ {"label":"K3C (B3,D1)", "x":12.25, "y":3, "w":1.75},
+ {"label":"K3D (B3,D2)", "x":14, "y":3},
+ {"label":"K3E (B3,D3)", "x":15, "y":3},
+ {"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25},
+ {"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25},
+ {"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25},
+ {"label":"K44 (B4,C1)", "x":3.75, "y":4, "w":2.75},
+ {"label":"K46 (B4,C3)", "x":6.5, "y":4, "w":1.25},
+ {"label":"K48 (B4,C5)", "x":7.75, "y":4, "w":2.25},
+ {"label":"K4A (B4,C7)", "x":10, "y":4, "w":1.25},
+ {"label":"K4B (B4,D0)", "x":11.25, "y":4, "w":1.25},
+ {"label":"K4C (B4,D1)", "x":13, "y":4},
+ {"label":"K4D (B4,D2)", "x":14, "y":4},
+ {"label":"K4E (B4,D3)", "x":15, "y":4}
+ ]
+ }
+ }
+ ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+}
diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c
new file mode 100644
index 000000000..022f1f3b3
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c
@@ -0,0 +1,47 @@
+/* Copyright 2019 Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ansi( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
+ LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_ansi( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_ansi( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_ansi( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md
new file mode 100644
index 000000000..63604a09e
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md
@@ -0,0 +1,2 @@
+# The ansi keymap for hannah910v2
+GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c
new file mode 100644
index 000000000..c0f66cebc
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c
@@ -0,0 +1,48 @@
+/* Copyright 2019 Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PSCR,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
+ LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md b/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md
new file mode 100644
index 000000000..63604a09e
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md
@@ -0,0 +1,2 @@
+# The ansi keymap for hannah910v2
+GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/via/keymap.c b/keyboards/mechlovin/hannah910/rev2/keymaps/via/keymap.c
new file mode 100644
index 000000000..9c2a72916
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
+/* Copyright 2019 Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_all( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PSCR,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
+ LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all( /* Layer2 */
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+}; \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/via/readme.md b/keyboards/mechlovin/hannah910/rev2/keymaps/via/readme.md
new file mode 100644
index 000000000..9db84a195
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/keymaps/via/readme.md
@@ -0,0 +1,2 @@
+# The default keymap (VIA support) for hannah910v2
+GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/via/rules.mk b/keyboards/mechlovin/hannah910/rev2/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/mechlovin/hannah910/rev2/readme.md b/keyboards/mechlovin/hannah910/rev2/readme.md
new file mode 100644
index 000000000..6fc4a06f7
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/readme.md
@@ -0,0 +1,19 @@
+# hannah910v2
+
+![hannah910](https://i.imgur.com/rRbSn8U.jpg)
+
+Replacement PCB and plate for TGR 910 keyboard (maybe fit with dolinger 65)
+
+* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
+* Hardware Supported: TGR910 CE, TGR910 SE
+* Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/hannah910/rev2:default
+
+Build firmware for VIA:
+
+ make mechlovin/hannah910/rev2:via
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mechlovin/hannah910/rev2/rev2.h b/keyboards/mechlovin/hannah910/rev2/rev2.h
new file mode 100644
index 000000000..d212d1ea3
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/rev2.h
@@ -0,0 +1,50 @@
+#pragma once
+
+
+#include "quantum.h"
+
+
+#define LAYOUT_all( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k67, \
+ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
+ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
+ k61, k62, k63, k64, k65, k66, k68, k69, k70, k71, k72 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
+ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
+ { k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
+ { k61, k62, k63, KC_NO, k64, KC_NO, k65, KC_NO, k66, k67, k68, k69, k70, k71, k72 }, \
+}
+#define LAYOUT_iso( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k66, \
+ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
+ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
+ k61, k62, k63, k65, k67, k68, k69, k70, k71 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
+ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, KC_NO, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
+ { k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
+ { k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, k66, k67, k68, k69, k70, k71 }, \
+}
+
+#define LAYOUT_ansi( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k66, \
+ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k43, k45, \
+ k46, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
+ k61, k62, k63, k65, k67, k68, k69, k70, k71 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO }, \
+ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, KC_NO, k43, k45 }, \
+ { k46, KC_NO, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
+ { k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, k66, k67, k68, k69, k70, k71 }, \
+}
+
diff --git a/keyboards/mechlovin/hannah910/rev2/rules.mk b/keyboards/mechlovin/hannah910/rev2/rules.mk
new file mode 100644
index 000000000..e8100a0f4
--- /dev/null
+++ b/keyboards/mechlovin/hannah910/rev2/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs \ No newline at end of file
diff --git a/keyboards/mechlovin/hannah910/rules.mk b/keyboards/mechlovin/hannah910/rules.mk
index 5e17282eb..a35686719 100644
--- a/keyboards/mechlovin/hannah910/rules.mk
+++ b/keyboards/mechlovin/hannah910/rules.mk
@@ -1,33 +1 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-# Teensy halfkay
-# Pro Micro caterina
-# Atmel DFU atmel-dfu
-# LUFA DFU lufa-dfu
-# QMK DFU qmk-dfu
-# ATmega32A bootloadHID
-# ATmega328P USBasp
-BOOTLOADER = atmel-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = no # USB Nkey Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = no # Audio output on port C6
-FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs \ No newline at end of file
+DEFAULT_FOLDER = mechlovin/hannah910/rev1
diff --git a/keyboards/mechlovin/infinityce/config.h b/keyboards/mechlovin/infinityce/config.h
new file mode 100644
index 000000000..ff10e183d
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/config.h
@@ -0,0 +1,49 @@
+/*
+Copyright 2020 mechlovin
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4D4C // ML-Mechlovin
+#define PRODUCT_ID 0x8801
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Team.Mechlovin
+#define PRODUCT Infinity CE
+#define DESCRIPTION Team.Mechlovin Infinity CE
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+#define MATRIX_ROW_PINS { D7, D6, B6, B1, C6, C7 }
+#define MATRIX_COL_PINS { B5, B4, B0, D5, D4, D1, D0, E6, F7, F6, F5, F4, F1, F0, B2, D3, D2}
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+#define BACKLIGHT_PIN B7
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+
+#define RGB_DI_PIN E2
+#define RGBLED_NUM 31
+#define RGBLIGHT_LIMIT_VAL 255
+#define RGBLIGHT_ANIMATIONS \ No newline at end of file
diff --git a/keyboards/mechlovin/infinityce/infinityce.c b/keyboards/mechlovin/infinityce/infinityce.c
new file mode 100644
index 000000000..5d75b480b
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/infinityce.c
@@ -0,0 +1,42 @@
+/* Copyright 2020 mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "infinityce.h"
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ matrix_init_user();
+ led_init_ports();
+};
+
+void led_init_ports(void) {
+ // * Set our LED pins as output
+ setPinOutput(B3);
+}
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
+ writePin(B3, led_state.caps_lock);
+ rgblight_set_effect_range(1, 30);
+ if (led_state.scroll_lock) {
+ rgblight_setrgb_at(255, 255, 255, 0);
+ } else {
+ rgblight_setrgb_at(0, 0, 0, 0);
+ }
+ }
+ return res;
+} \ No newline at end of file
diff --git a/keyboards/mechlovin/infinityce/infinityce.h b/keyboards/mechlovin/infinityce/infinityce.h
new file mode 100644
index 000000000..26a8f3749
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/infinityce.h
@@ -0,0 +1,67 @@
+/* Copyright 2020 mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4G, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4G, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
+
+#define LAYOUT_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
+ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4G, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, KC_NO, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4G, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
+
+#define LAYOUT_iso( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, K2G, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4G, \
+ K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F, K2G }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4G, KC_NO }, \
+ { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
+}
diff --git a/keyboards/mechlovin/infinityce/info.json b/keyboards/mechlovin/infinityce/info.json
new file mode 100644
index 000000000..61801e991
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/info.json
@@ -0,0 +1,293 @@
+{
+ "keyboard_name": "Infinity CE",
+ "url": "",
+ "maintainer": "Team Mechlovin'",
+ "width": 18.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_all": {
+ "key_count": 91,
+ "layout": [
+ {"label":"K00 (B0,B6)", "x":0, "y":0},
+ {"label":"K01 (B0,B7)", "x":1.25, "y":0},
+ {"label":"K02 (B0,C0)", "x":2.25, "y":0},
+ {"label":"K03 (B0,C1)", "x":3.25, "y":0},
+ {"label":"K04 (B0,C2)", "x":4.25, "y":0},
+ {"label":"K05 (B0,C3)", "x":5.5, "y":0},
+ {"label":"K06 (B0,C4)", "x":6.5, "y":0},
+ {"label":"K07 (B0,C5)", "x":7.5, "y":0},
+ {"label":"K08 (B0,C6)", "x":8.5, "y":0},
+ {"label":"K09 (B0,C7)", "x":9.75, "y":0},
+ {"label":"K0A (B0,D0)", "x":10.75, "y":0},
+ {"label":"K0B (B0,D1)", "x":11.75, "y":0},
+ {"label":"K0C (B0,D2)", "x":12.75, "y":0},
+ {"label":"K0D (B0,D3)", "x":14, "y":0},
+ {"label":"K0E (B0,D4)", "x":15.25, "y":0},
+ {"label":"K0F (B0,D5)", "x":16.25, "y":0},
+ {"label":"K0G (B0,D6)", "x":17.25, "y":0},
+ {"label":"K10 (B1,B6)", "x":0, "y":1.25},
+ {"label":"K11 (B1,B7)", "x":1, "y":1.25},
+ {"label":"K12 (B1,C0)", "x":2, "y":1.25},
+ {"label":"K13 (B1,C1)", "x":3, "y":1.25},
+ {"label":"K14 (B1,C2)", "x":4, "y":1.25},
+ {"label":"K15 (B1,C3)", "x":5, "y":1.25},
+ {"label":"K16 (B1,C4)", "x":6, "y":1.25},
+ {"label":"K17 (B1,C5)", "x":7, "y":1.25},
+ {"label":"K18 (B1,C6)", "x":8, "y":1.25},
+ {"label":"K19 (B1,C7)", "x":9, "y":1.25},
+ {"label":"K1A (B1,D0)", "x":10, "y":1.25},
+ {"label":"K1B (B1,D1)", "x":11, "y":1.25},
+ {"label":"K1C (B1,D2)", "x":12, "y":1.25},
+ {"label":"K1D (B1,D3)", "x":13, "y":1.25, "w":2},
+ {"label":"K1E (B1,D4)", "x":15.25, "y":1.25},
+ {"label":"K1F (B1,D5)", "x":16.25, "y":1.25},
+ {"label":"K1G (B1,D6)", "x":17.25, "y":1.25},
+ {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5},
+ {"label":"K21 (B2,B7)", "x":1.5, "y":2.25},
+ {"label":"K22 (B2,C0)", "x":2.5, "y":2.25},
+ {"label":"K23 (B2,C1)", "x":3.5, "y":2.25},
+ {"label":"K24 (B2,C2)", "x":4.5, "y":2.25},
+ {"label":"K25 (B2,C3)", "x":5.5, "y":2.25},
+ {"label":"K26 (B2,C4)", "x":6.5, "y":2.25},
+ {"label":"K27 (B2,C5)", "x":7.5, "y":2.25},
+ {"label":"K28 (B2,C6)", "x":8.5, "y":2.25},
+ {"label":"K29 (B2,C7)", "x":9.5, "y":2.25},
+ {"label":"K2A (B2,D0)", "x":10.5, "y":2.25},
+ {"label":"K2B (B2,D1)", "x":11.5, "y":2.25},
+ {"label":"K2C (B2,D2)", "x":12.5, "y":2.25},
+ {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5},
+ {"label":"K2E (B2,D4)", "x":15.25, "y":2.25},
+ {"label":"K2F (B2,D5)", "x":16.25, "y":2.25},
+ {"label":"K2G (B2,D6)", "x":17.25, "y":2.25},
+ {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75},
+ {"label":"K31 (B3,B7)", "x":1.75, "y":3.25},
+ {"label":"K32 (B3,C0)", "x":2.75, "y":3.25},
+ {"label":"K33 (B3,C1)", "x":3.75, "y":3.25},
+ {"label":"K34 (B3,C2)", "x":4.75, "y":3.25},
+ {"label":"K35 (B3,C3)", "x":5.75, "y":3.25},
+ {"label":"K36 (B3,C4)", "x":6.75, "y":3.25},
+ {"label":"K37 (B3,C5)", "x":7.75, "y":3.25},
+ {"label":"K38 (B3,C6)", "x":8.75, "y":3.25},
+ {"label":"K39 (B3,C7)", "x":9.75, "y":3.25},
+ {"label":"K3A (B3,D0)", "x":10.75, "y":3.25},
+ {"label":"K3B (B3,D1)", "x":11.75, "y":3.25},
+ {"label":"K3C (B3,D2)", "x":12.75, "y":3.25},
+ {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25},
+ {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25},
+ {"label":"K41 (B4,B7)", "x":1.25, "y":4.25},
+ {"label":"K42 (B4,C0)", "x":2.25, "y":4.25},
+ {"label":"K43 (B4,C1)", "x":3.25, "y":4.25},
+ {"label":"K44 (B4,C2)", "x":4.25, "y":4.25},
+ {"label":"K45 (B4,C3)", "x":5.25, "y":4.25},
+ {"label":"K46 (B4,C4)", "x":6.25, "y":4.25},
+ {"label":"K47 (B4,C5)", "x":7.25, "y":4.25},
+ {"label":"K48 (B4,C6)", "x":8.25, "y":4.25},
+ {"label":"K49 (B4,C7)", "x":9.25, "y":4.25},
+ {"label":"K4A (B4,D0)", "x":10.25, "y":4.25},
+ {"label":"K4B (B4,D1)", "x":11.25, "y":4.25},
+ {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75},
+ {"label":"K4D (B4,D3)", "x":14, "y":4.25},
+ {"label":"K4F (B4,D5)", "x":16.25, "y":4.25},
+ {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25},
+ {"label":"K51 (B5,B7)", "x":1.25, "y":5.25, "w":1.25},
+ {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25},
+ {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25},
+ {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25},
+ {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25},
+ {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25},
+ {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25},
+ {"label":"K5E (B5,D4)", "x":15.25, "y":5.25},
+ {"label":"K5F (B5,D5)", "x":16.25, "y":5.25},
+ {"label":"K5G (B5,D6)", "x":17.25, "y":5.25}
+ ]
+ },
+ "LAYOUT_ansi": {
+ "key_count": 88,
+ "layout": [
+ {"label":"K00 (B0,B6)", "x":0, "y":0},
+ {"label":"K01 (B0,B7)", "x":1.25, "y":0},
+ {"label":"K02 (B0,C0)", "x":2.25, "y":0},
+ {"label":"K03 (B0,C1)", "x":3.25, "y":0},
+ {"label":"K04 (B0,C2)", "x":4.25, "y":0},
+ {"label":"K05 (B0,C3)", "x":5.5, "y":0},
+ {"label":"K06 (B0,C4)", "x":6.5, "y":0},
+ {"label":"K07 (B0,C5)", "x":7.5, "y":0},
+ {"label":"K08 (B0,C6)", "x":8.5, "y":0},
+ {"label":"K09 (B0,C7)", "x":9.75, "y":0},
+ {"label":"K0A (B0,D0)", "x":10.75, "y":0},
+ {"label":"K0B (B0,D1)", "x":11.75, "y":0},
+ {"label":"K0C (B0,D2)", "x":12.75, "y":0},
+ {"label":"K0D (B0,D3)", "x":14, "y":0},
+ {"label":"K0E (B0,D4)", "x":15.25, "y":0},
+ {"label":"K0F (B0,D5)", "x":16.25, "y":0},
+ {"label":"K0G (B0,D6)", "x":17.25, "y":0},
+ {"label":"K10 (B1,B6)", "x":0, "y":1.25},
+ {"label":"K11 (B1,B7)", "x":1, "y":1.25},
+ {"label":"K12 (B1,C0)", "x":2, "y":1.25},
+ {"label":"K13 (B1,C1)", "x":3, "y":1.25},
+ {"label":"K14 (B1,C2)", "x":4, "y":1.25},
+ {"label":"K15 (B1,C3)", "x":5, "y":1.25},
+ {"label":"K16 (B1,C4)", "x":6, "y":1.25},
+ {"label":"K17 (B1,C5)", "x":7, "y":1.25},
+ {"label":"K18 (B1,C6)", "x":8, "y":1.25},
+ {"label":"K19 (B1,C7)", "x":9, "y":1.25},
+ {"label":"K1A (B1,D0)", "x":10, "y":1.25},
+ {"label":"K1B (B1,D1)", "x":11, "y":1.25},
+ {"label":"K1C (B1,D2)", "x":12, "y":1.25},
+ {"label":"K1D (B1,D3)", "x":13, "y":1.25, "w":2},
+ {"label":"K1E (B1,D4)", "x":15.25, "y":1.25},
+ {"label":"K1F (B1,D5)", "x":16.25, "y":1.25},
+ {"label":"K1G (B1,D6)", "x":17.25, "y":1.25},
+ {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5},
+ {"label":"K21 (B2,B7)", "x":1.5, "y":2.25},
+ {"label":"K22 (B2,C0)", "x":2.5, "y":2.25},
+ {"label":"K23 (B2,C1)", "x":3.5, "y":2.25},
+ {"label":"K24 (B2,C2)", "x":4.5, "y":2.25},
+ {"label":"K25 (B2,C3)", "x":5.5, "y":2.25},
+ {"label":"K26 (B2,C4)", "x":6.5, "y":2.25},
+ {"label":"K27 (B2,C5)", "x":7.5, "y":2.25},
+ {"label":"K28 (B2,C6)", "x":8.5, "y":2.25},
+ {"label":"K29 (B2,C7)", "x":9.5, "y":2.25},
+ {"label":"K2A (B2,D0)", "x":10.5, "y":2.25},
+ {"label":"K2B (B2,D1)", "x":11.5, "y":2.25},
+ {"label":"K2C (B2,D2)", "x":12.5, "y":2.25},
+ {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5},
+ {"label":"K2E (B2,D4)", "x":15.25, "y":2.25},
+ {"label":"K2F (B2,D5)", "x":16.25, "y":2.25},
+ {"label":"K2G (B2,D6)", "x":17.25, "y":2.25},
+ {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75},
+ {"label":"K31 (B3,B7)", "x":1.75, "y":3.25},
+ {"label":"K32 (B3,C0)", "x":2.75, "y":3.25},
+ {"label":"K33 (B3,C1)", "x":3.75, "y":3.25},
+ {"label":"K34 (B3,C2)", "x":4.75, "y":3.25},
+ {"label":"K35 (B3,C3)", "x":5.75, "y":3.25},
+ {"label":"K36 (B3,C4)", "x":6.75, "y":3.25},
+ {"label":"K37 (B3,C5)", "x":7.75, "y":3.25},
+ {"label":"K38 (B3,C6)", "x":8.75, "y":3.25},
+ {"label":"K39 (B3,C7)", "x":9.75, "y":3.25},
+ {"label":"K3A (B3,D0)", "x":10.75, "y":3.25},
+ {"label":"K3B (B3,D1)", "x":11.75, "y":3.25},
+ {"label":"K3D (B3,D3)", "x":12.75, "y":3.25, "w":2.25},
+ {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":2.25},
+ {"label":"K42 (B4,C0)", "x":2.25, "y":4.25},
+ {"label":"K43 (B4,C1)", "x":3.25, "y":4.25},
+ {"label":"K44 (B4,C2)", "x":4.25, "y":4.25},
+ {"label":"K45 (B4,C3)", "x":5.25, "y":4.25},
+ {"label":"K46 (B4,C4)", "x":6.25, "y":4.25},
+ {"label":"K47 (B4,C5)", "x":7.25, "y":4.25},
+ {"label":"K48 (B4,C6)", "x":8.25, "y":4.25},
+ {"label":"K49 (B4,C7)", "x":9.25, "y":4.25},
+ {"label":"K4A (B4,D0)", "x":10.25, "y":4.25},
+ {"label":"K4B (B4,D1)", "x":11.25, "y":4.25},
+ {"label":"K4D (B4,D3)", "x":12.25, "y":4.25, "w":2.75},
+ {"label":"K4F (B4,D5)", "x":16.25, "y":4.25},
+ {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25},
+ {"label":"K51 (B5,B7)", "x":1.25, "y":5.25, "w":1.25},
+ {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25},
+ {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25},
+ {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25},
+ {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25},
+ {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25},
+ {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25},
+ {"label":"K5E (B5,D4)", "x":15.25, "y":5.25},
+ {"label":"K5F (B5,D5)", "x":16.25, "y":5.25},
+ {"label":"K5G (B5,D6)", "x":17.25, "y":5.25}
+ ]
+ },
+ "LAYOUT_iso": {
+ "key_count": 89,
+ "layout": [
+ {"label":"K00 (B0,B6)", "x":0, "y":0},
+ {"label":"K01 (B0,B7)", "x":1.25, "y":0},
+ {"label":"K02 (B0,C0)", "x":2.25, "y":0},
+ {"label":"K03 (B0,C1)", "x":3.25, "y":0},
+ {"label":"K04 (B0,C2)", "x":4.25, "y":0},
+ {"label":"K05 (B0,C3)", "x":5.5, "y":0},
+ {"label":"K06 (B0,C4)", "x":6.5, "y":0},
+ {"label":"K07 (B0,C5)", "x":7.5, "y":0},
+ {"label":"K08 (B0,C6)", "x":8.5, "y":0},
+ {"label":"K09 (B0,C7)", "x":9.75, "y":0},
+ {"label":"K0A (B0,D0)", "x":10.75, "y":0},
+ {"label":"K0B (B0,D1)", "x":11.75, "y":0},
+ {"label":"K0C (B0,D2)", "x":12.75, "y":0},
+ {"label":"K0D (B0,D3)", "x":14, "y":0},
+ {"label":"K0E (B0,D4)", "x":15.25, "y":0},
+ {"label":"K0F (B0,D5)", "x":16.25, "y":0},
+ {"label":"K0G (B0,D6)", "x":17.25, "y":0},
+ {"label":"K10 (B1,B6)", "x":0, "y":1.25},
+ {"label":"K11 (B1,B7)", "x":1, "y":1.25},
+ {"label":"K12 (B1,C0)", "x":2, "y":1.25},
+ {"label":"K13 (B1,C1)", "x":3, "y":1.25},
+ {"label":"K14 (B1,C2)", "x":4, "y":1.25},
+ {"label":"K15 (B1,C3)", "x":5, "y":1.25},
+ {"label":"K16 (B1,C4)", "x":6, "y":1.25},
+ {"label":"K17 (B1,C5)", "x":7, "y":1.25},
+ {"label":"K18 (B1,C6)", "x":8, "y":1.25},
+ {"label":"K19 (B1,C7)", "x":9, "y":1.25},
+ {"label":"K1A (B1,D0)", "x":10, "y":1.25},
+ {"label":"K1B (B1,D1)", "x":11, "y":1.25},
+ {"label":"K1C (B1,D2)", "x":12, "y":1.25},
+ {"label":"K1D (B1,D3)", "x":13, "y":1.25, "w":2},
+ {"label":"K1E (B1,D4)", "x":15.25, "y":1.25},
+ {"label":"K1F (B1,D5)", "x":16.25, "y":1.25},
+ {"label":"K1G (B1,D6)", "x":17.25, "y":1.25},
+ {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5},
+ {"label":"K21 (B2,B7)", "x":1.5, "y":2.25},
+ {"label":"K22 (B2,C0)", "x":2.5, "y":2.25},
+ {"label":"K23 (B2,C1)", "x":3.5, "y":2.25},
+ {"label":"K24 (B2,C2)", "x":4.5, "y":2.25},
+ {"label":"K25 (B2,C3)", "x":5.5, "y":2.25},
+ {"label":"K26 (B2,C4)", "x":6.5, "y":2.25},
+ {"label":"K27 (B2,C5)", "x":7.5, "y":2.25},
+ {"label":"K28 (B2,C6)", "x":8.5, "y":2.25},
+ {"label":"K29 (B2,C7)", "x":9.5, "y":2.25},
+ {"label":"K2A (B2,D0)", "x":10.5, "y":2.25},
+ {"label":"K2B (B2,D1)", "x":11.5, "y":2.25},
+ {"label":"K2C (B2,D2)", "x":12.5, "y":2.25},
+ {"label":"K2E (B2,D4)", "x":15.25, "y":2.25},
+ {"label":"K2F (B2,D5)", "x":16.25, "y":2.25},
+ {"label":"K2G (B2,D6)", "x":17.25, "y":2.25},
+ {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75},
+ {"label":"K31 (B3,B7)", "x":1.75, "y":3.25},
+ {"label":"K32 (B3,C0)", "x":2.75, "y":3.25},
+ {"label":"K33 (B3,C1)", "x":3.75, "y":3.25},
+ {"label":"K34 (B3,C2)", "x":4.75, "y":3.25},
+ {"label":"K35 (B3,C3)", "x":5.75, "y":3.25},
+ {"label":"K36 (B3,C4)", "x":6.75, "y":3.25},
+ {"label":"K37 (B3,C5)", "x":7.75, "y":3.25},
+ {"label":"K38 (B3,C6)", "x":8.75, "y":3.25},
+ {"label":"K39 (B3,C7)", "x":9.75, "y":3.25},
+ {"label":"K3A (B3,D0)", "x":10.75, "y":3.25},
+ {"label":"K3B (B3,D1)", "x":11.75, "y":3.25},
+ {"label":"K3C (B3,D2)", "x":12.75, "y":3.25},
+ {"label":"K3D (B3,D3)", "x":13.75, "y":2.25, "w":1.25, "h":2},
+ {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25},
+ {"label":"K41 (B4,B7)", "x":1.25, "y":4.25},
+ {"label":"K42 (B4,C0)", "x":2.25, "y":4.25},
+ {"label":"K43 (B4,C1)", "x":3.25, "y":4.25},
+ {"label":"K44 (B4,C2)", "x":4.25, "y":4.25},
+ {"label":"K45 (B4,C3)", "x":5.25, "y":4.25},
+ {"label":"K46 (B4,C4)", "x":6.25, "y":4.25},
+ {"label":"K47 (B4,C5)", "x":7.25, "y":4.25},
+ {"label":"K48 (B4,C6)", "x":8.25, "y":4.25},
+ {"label":"K49 (B4,C7)", "x":9.25, "y":4.25},
+ {"label":"K4A (B4,D0)", "x":10.25, "y":4.25},
+ {"label":"K4B (B4,D1)", "x":11.25, "y":4.25},
+ {"label":"K4D (B4,D3)", "x":12.25, "y":4.25, "w":2.75},
+ {"label":"K4F (B4,D5)", "x":16.25, "y":4.25},
+ {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25},
+ {"label":"K51 (B5,B7)", "x":1.25, "y":5.25, "w":1.25},
+ {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25},
+ {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25},
+ {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25},
+ {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25},
+ {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25},
+ {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25},
+ {"label":"K5E (B5,D4)", "x":15.25, "y":5.25},
+ {"label":"K5F (B5,D5)", "x":16.25, "y":5.25},
+ {"label":"K5G (B5,D6)", "x":17.25, "y":5.25}
+ ]
+ }
+ }
+ ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+} \ No newline at end of file
diff --git a/keyboards/mechlovin/infinityce/keymaps/default/keymap.c b/keyboards/mechlovin/infinityce/keymaps/default/keymap.c
new file mode 100644
index 000000000..5b3747b6e
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/keymaps/default/keymap.c
@@ -0,0 +1,29 @@
+/* Copyright 2020 mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_SLSH, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSLS, MO(1), KC_LSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+};
diff --git a/keyboards/mechlovin/infinityce/keymaps/default/readme.md b/keyboards/mechlovin/infinityce/keymaps/default/readme.md
new file mode 100644
index 000000000..32a673192
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for infinityce
diff --git a/keyboards/mechlovin/infinityce/keymaps/via/keymap.c b/keyboards/mechlovin/infinityce/keymaps/via/keymap.c
new file mode 100644
index 000000000..310529e0e
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/keymaps/via/keymap.c
@@ -0,0 +1,53 @@
+/* Copyright 2020 mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_SLSH, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSLS, MO(1), KC_LSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
diff --git a/keyboards/mechlovin/infinityce/keymaps/via/readme.md b/keyboards/mechlovin/infinityce/keymaps/via/readme.md
new file mode 100644
index 000000000..992bbfbce
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/keymaps/via/readme.md
@@ -0,0 +1,3 @@
+# The VIA keymap for infinityce
+
+![infinityce](https://i.imgur.com/f2VPnXY.png)
diff --git a/keyboards/mechlovin/infinityce/keymaps/via/rules.mk b/keyboards/mechlovin/infinityce/keymaps/via/rules.mk
new file mode 100644
index 000000000..036bd6d1c
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/mechlovin/infinityce/readme.md b/keyboards/mechlovin/infinityce/readme.md
new file mode 100644
index 000000000..376dd3cb4
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/readme.md
@@ -0,0 +1,19 @@
+# infinityce
+
+![infinityce](https://i.imgur.com/GyH1G1M.jpg)
+
+Replacement PCB for TGR Jane CE V2 keyboard
+
+* Keyboard Maintainer: [mechlovin](https://github.com/mechlovin)
+* Hardware Supported: Infinity CE PCB
+* Hardware Availability: [GeekhackGB](https://geekhack.org/index.php?topic=104345.0)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make mechlovin/infinityce:default
+
+Build firmware for VIA:
+
+ make mechlovin/infinityce:via
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/mechlovin/infinityce/rules.mk b/keyboards/mechlovin/infinityce/rules.mk
new file mode 100644
index 000000000..8e8807c5e
--- /dev/null
+++ b/keyboards/mechlovin/infinityce/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/mechmini/v1/config.h b/keyboards/mechmini/v1/config.h
index eb15a368a..07422f9ff 100644
--- a/keyboards/mechmini/v1/config.h
+++ b/keyboards/mechmini/v1/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef V1_CONFIG_H
-#define V1_CONFIG_H
+#pragma once
#include "config_common.h"
@@ -38,11 +37,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define NO_UART 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
/* RGB underglow */
// The RGB_DI_PIN value seems to be shared between all PS2AVRGB boards.
// The same pin is used on the JJ40, at least.
#define RGBLED_NUM 16
#define RGBLIGHT_ANIMATIONS
#define RGB_DI_PIN E2
-
-#endif
diff --git a/keyboards/mechmini/v1/rules.mk b/keyboards/mechmini/v1/rules.mk
index 1c6252c59..6f2adc2f8 100644
--- a/keyboards/mechmini/v1/rules.mk
+++ b/keyboards/mechmini/v1/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/mechmini/v2/rules.mk b/keyboards/mechmini/v2/rules.mk
index 72d307322..a82774319 100755
--- a/keyboards/mechmini/v2/rules.mk
+++ b/keyboards/mechmini/v2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/mehkee96/config.h b/keyboards/mehkee96/config.h
index d506626d1..afc9d0a7b 100644
--- a/keyboards/mehkee96/config.h
+++ b/keyboards/mehkee96/config.h
@@ -16,6 +16,9 @@
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 }
#define DIODE_DIRECTION COL2ROW
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLED_NUM 16
#define RGBLIGHT_ANIMATIONS
/* key combination for command */
diff --git a/keyboards/mehkee96/mehkee96.c b/keyboards/mehkee96/mehkee96.c
index d9e2bac7a..ae83a1bb5 100644
--- a/keyboards/mehkee96/mehkee96.c
+++ b/keyboards/mehkee96/mehkee96.c
@@ -16,3 +16,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "mehkee96.h"
+
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
+}
+
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
+}
diff --git a/keyboards/mehkee96/rules.mk b/keyboards/mehkee96/rules.mk
index a7d36548f..b91a69f83 100644
--- a/keyboards/mehkee96/rules.mk
+++ b/keyboards/mehkee96/rules.mk
@@ -14,12 +14,12 @@ BOOTLOADER = bootloadHID
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/meira/rules.mk b/keyboards/meira/rules.mk
index 8357e780b..c9949c169 100644
--- a/keyboards/meira/rules.mk
+++ b/keyboards/meira/rules.mk
@@ -14,16 +14,16 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/meishi/rules.mk b/keyboards/meishi/rules.mk
index 571a1c48c..3b27a9be0 100644
--- a/keyboards/meishi/rules.mk
+++ b/keyboards/meishi/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/meishi2/rules.mk b/keyboards/meishi2/rules.mk
index 7218e1e1b..1aa337931 100644
--- a/keyboards/meishi2/rules.mk
+++ b/keyboards/meishi2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/melody96/rules.mk b/keyboards/melody96/rules.mk
index 1e6d4bb7c..c1f1f22ba 100644
--- a/keyboards/melody96/rules.mk
+++ b/keyboards/melody96/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/meme/rules.mk b/keyboards/meme/rules.mk
index 621c2dded..a076df944 100644
--- a/keyboards/meme/rules.mk
+++ b/keyboards/meme/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/meson/rules.mk b/keyboards/meson/rules.mk
index 323ec666a..2fe1d1546 100644
--- a/keyboards/meson/rules.mk
+++ b/keyboards/meson/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change yes to no to disable
#
SPLIT_KEYBOARD = yes
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -26,9 +26,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/miniaxe/rules.mk b/keyboards/miniaxe/rules.mk
index 204aeed76..cf5efab09 100644
--- a/keyboards/miniaxe/rules.mk
+++ b/keyboards/miniaxe/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEBUG_ENABLE = no
CUSTOM_MATRIX = no # Use custom matrix code
diff --git a/keyboards/minidox/config.h b/keyboards/minidox/config.h
index 7502983b6..b3d375656 100644
--- a/keyboards/minidox/config.h
+++ b/keyboards/minidox/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#include "config_common.h"
@@ -61,9 +60,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-
-#ifdef SUBPROJECT_rev1
- #include "rev1/config.h"
-#endif
-
-#endif
diff --git a/keyboards/minidox/eeprom-lefthand.eep b/keyboards/minidox/eeprom-lefthand.eep
deleted file mode 100644
index e5a7bc1e5..000000000
--- a/keyboards/minidox/eeprom-lefthand.eep
+++ /dev/null
@@ -1,2 +0,0 @@
-:0F000000000000000000000000000000000001F0
-:00000001FF
diff --git a/keyboards/minidox/eeprom-righthand.eep b/keyboards/minidox/eeprom-righthand.eep
deleted file mode 100644
index 7ea44f52e..000000000
--- a/keyboards/minidox/eeprom-righthand.eep
+++ /dev/null
@@ -1,2 +0,0 @@
-:0F000000000000000000000000000000000000F1
-:00000001FF
diff --git a/keyboards/minidox/i2c.c b/keyboards/minidox/i2c.c
deleted file mode 100644
index 084c890c4..000000000
--- a/keyboards/minidox/i2c.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <util/twi.h>
-#include <avr/io.h>
-#include <stdlib.h>
-#include <avr/interrupt.h>
-#include <util/twi.h>
-#include <stdbool.h>
-#include "i2c.h"
-
-#ifdef USE_I2C
-
-// Limits the amount of we wait for any one i2c transaction.
-// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is
-// 9 bits, a single transaction will take around 90μs to complete.
-//
-// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit
-// poll loop takes at least 8 clock cycles to execute
-#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8
-
-#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE)
-
-volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-static volatile uint8_t slave_buffer_pos;
-static volatile bool slave_has_register_set = false;
-
-// Wait for an i2c operation to finish
-inline static
-void i2c_delay(void) {
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWINT)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-
- // easier way, but will wait slightly longer
- // _delay_us(100);
-}
-
-// Setup twi to run at 100kHz
-void i2c_master_init(void) {
- // no prescaler
- TWSR = 0;
- // Set TWI clock frequency to SCL_CLOCK. Need TWBR>10.
- // Check datasheets for more info.
- TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
-}
-
-// Start a transaction with the given i2c slave address. The direction of the
-// transfer is set with I2C_READ and I2C_WRITE.
-// returns: 0 => success
-// 1 => error
-uint8_t i2c_master_start(uint8_t address) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTA);
-
- i2c_delay();
-
- // check that we started successfully
- if ( (TW_STATUS != TW_START) && (TW_STATUS != TW_REP_START))
- return 1;
-
- TWDR = address;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- if ( (TW_STATUS != TW_MT_SLA_ACK) && (TW_STATUS != TW_MR_SLA_ACK) )
- return 1; // slave did not acknowledge
- else
- return 0; // success
-}
-
-
-// Finish the i2c transaction.
-void i2c_master_stop(void) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
-
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWSTO)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-}
-
-// Write one byte to the i2c slave.
-// returns 0 => slave ACK
-// 1 => slave NACK
-uint8_t i2c_master_write(uint8_t data) {
- TWDR = data;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- // check if the slave acknowledged us
- return (TW_STATUS == TW_MT_DATA_ACK) ? 0 : 1;
-}
-
-// Read one byte from the i2c slave. If ack=1 the slave is acknowledged,
-// if ack=0 the acknowledge bit is not set.
-// returns: byte read from i2c device
-uint8_t i2c_master_read(int ack) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (ack<<TWEA);
-
- i2c_delay();
- return TWDR;
-}
-
-void i2c_reset_state(void) {
- TWCR = 0;
-}
-
-void i2c_slave_init(uint8_t address) {
- TWAR = address << 0; // slave i2c address
- // TWEN - twi enable
- // TWEA - enable address acknowledgement
- // TWINT - twi interrupt flag
- // TWIE - enable the twi interrupt
- TWCR = (1<<TWIE) | (1<<TWEA) | (1<<TWINT) | (1<<TWEN);
-}
-
-ISR(TWI_vect);
-
-ISR(TWI_vect) {
- uint8_t ack = 1;
- switch(TW_STATUS) {
- case TW_SR_SLA_ACK:
- // this device has been addressed as a slave receiver
- slave_has_register_set = false;
- break;
-
- case TW_SR_DATA_ACK:
- // this device has received data as a slave receiver
- // The first byte that we receive in this transaction sets the location
- // of the read/write location of the slaves memory that it exposes over
- // i2c. After that, bytes will be written at slave_buffer_pos, incrementing
- // slave_buffer_pos after each write.
- if(!slave_has_register_set) {
- slave_buffer_pos = TWDR;
- // don't acknowledge the master if this memory loctaion is out of bounds
- if ( slave_buffer_pos >= SLAVE_BUFFER_SIZE ) {
- ack = 0;
- slave_buffer_pos = 0;
- }
- slave_has_register_set = true;
- } else {
- i2c_slave_buffer[slave_buffer_pos] = TWDR;
- BUFFER_POS_INC();
- }
- break;
-
- case TW_ST_SLA_ACK:
- case TW_ST_DATA_ACK:
- // master has addressed this device as a slave transmitter and is
- // requesting data.
- TWDR = i2c_slave_buffer[slave_buffer_pos];
- BUFFER_POS_INC();
- break;
-
- case TW_BUS_ERROR: // something went wrong, reset twi state
- TWCR = 0;
- default:
- break;
- }
- // Reset everything, so we are ready for the next TWI interrupt
- TWCR |= (1<<TWIE) | (1<<TWINT) | (ack<<TWEA) | (1<<TWEN);
-}
-#endif
diff --git a/keyboards/minidox/i2c.h b/keyboards/minidox/i2c.h
deleted file mode 100644
index c15b6bc50..000000000
--- a/keyboards/minidox/i2c.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef I2C_H
-#define I2C_H
-
-#include <stdint.h>
-
-#ifndef F_CPU
-#define F_CPU 16000000UL
-#endif
-
-#define I2C_READ 1
-#define I2C_WRITE 0
-
-#define I2C_ACK 1
-#define I2C_NACK 0
-
-#define SLAVE_BUFFER_SIZE 0x10
-
-// i2c SCL clock frequency
-#define SCL_CLOCK 400000L
-
-extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-void i2c_master_init(void);
-uint8_t i2c_master_start(uint8_t address);
-void i2c_master_stop(void);
-uint8_t i2c_master_write(uint8_t data);
-uint8_t i2c_master_read(int);
-void i2c_reset_state(void);
-void i2c_slave_init(uint8_t address);
-
-
-static inline unsigned char i2c_start_read(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_READ);
-}
-
-static inline unsigned char i2c_start_write(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_WRITE);
-}
-
-// from SSD1306 scrips
-extern unsigned char i2c_rep_start(unsigned char addr);
-extern void i2c_start_wait(unsigned char addr);
-extern unsigned char i2c_readAck(void);
-extern unsigned char i2c_readNak(void);
-extern unsigned char i2c_read(unsigned char ack);
-
-#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
-
-#endif
diff --git a/keyboards/minidox/keymaps/xyverz/keymap.c b/keyboards/minidox/keymaps/xyverz/keymap.c
index 994ee4e1b..4c7a05227 100644
--- a/keyboards/minidox/keymaps/xyverz/keymap.c
+++ b/keyboards/minidox/keymaps/xyverz/keymap.c
@@ -169,9 +169,7 @@ void matrix_init_user(void) {
#ifdef BOOTLOADER_CATERINA
// This will disable the red LEDs on the ProMicros
setPinInput(D5);
- writePinLow(D5);
setPinInput(B0);
- writePinLow(B0);
#endif
};
@@ -192,4 +190,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
return true;
-} \ No newline at end of file
+}
diff --git a/keyboards/minidox/matrix.c b/keyboards/minidox/matrix.c
deleted file mode 100644
index 27a38dca0..000000000
--- a/keyboards/minidox/matrix.c
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/*
- * scan matrix
- */
-#include <stdint.h>
-#include <stdbool.h>
-#include <avr/io.h>
-#include <avr/wdt.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include "print.h"
-#include "debug.h"
-#include "util.h"
-#include "matrix.h"
-#include "split_util.h"
-#include "pro_micro.h"
-#include "config.h"
-
-#ifdef USE_I2C
-# include "i2c.h"
-#else // USE_SERIAL
-# include "serial.h"
-#endif
-
-#ifndef DEBOUNCE
-# define DEBOUNCE 5
-#endif
-
-#define ERROR_DISCONNECT_COUNT 5
-
-static uint8_t debouncing = DEBOUNCE;
-static const int ROWS_PER_HAND = MATRIX_ROWS/2;
-static uint8_t error_count = 0;
-
-static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
-static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
-
-/* matrix state(1:on, 0:off) */
-static matrix_row_t matrix[MATRIX_ROWS];
-static matrix_row_t matrix_debouncing[MATRIX_ROWS];
-
-static matrix_row_t read_cols(void);
-static void init_cols(void);
-static void unselect_rows(void);
-static void select_row(uint8_t row);
-
-
-__attribute__ ((weak))
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
-__attribute__ ((weak))
-void matrix_scan_kb(void) {
- matrix_scan_user();
-}
-
-__attribute__ ((weak))
-void matrix_init_user(void) {
-}
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {
-}
-
-inline
-uint8_t matrix_rows(void)
-{
- return MATRIX_ROWS;
-}
-
-inline
-uint8_t matrix_cols(void)
-{
- return MATRIX_COLS;
-}
-
-void matrix_init(void)
-{
- debug_enable = true;
- debug_matrix = true;
- debug_mouse = true;
- // initialize row and col
- unselect_rows();
- init_cols();
-
- TX_RX_LED_INIT;
-
- // initialize matrix state: all keys off
- for (uint8_t i=0; i < MATRIX_ROWS; i++) {
- matrix[i] = 0;
- matrix_debouncing[i] = 0;
- }
-
- matrix_init_quantum();
-}
-
-uint8_t _matrix_scan(void)
-{
- // Right hand is stored after the left in the matirx so, we need to offset it
- int offset = isLeftHand ? 0 : (ROWS_PER_HAND);
-
- for (uint8_t i = 0; i < ROWS_PER_HAND; i++) {
- select_row(i);
- _delay_us(30); // without this wait read unstable value.
- matrix_row_t cols = read_cols();
- if (matrix_debouncing[i+offset] != cols) {
- matrix_debouncing[i+offset] = cols;
- debouncing = DEBOUNCE;
- }
- unselect_rows();
- }
-
- if (debouncing) {
- if (--debouncing) {
- _delay_ms(1);
- } else {
- for (uint8_t i = 0; i < ROWS_PER_HAND; i++) {
- matrix[i+offset] = matrix_debouncing[i+offset];
- }
- }
- }
-
- return 1;
-}
-
-#ifdef USE_I2C
-
-// Get rows from other half over i2c
-int i2c_transaction(void) {
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
-
- int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE);
- if (err) goto i2c_error;
-
- // start of matrix stored at 0x00
- err = i2c_master_write(0x00);
- if (err) goto i2c_error;
-
- // Start read
- err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ);
- if (err) goto i2c_error;
-
- if (!err) {
- int i;
- for (i = 0; i < ROWS_PER_HAND-1; ++i) {
- matrix[slaveOffset+i] = i2c_master_read(I2C_ACK);
- }
- matrix[slaveOffset+i] = i2c_master_read(I2C_NACK);
- i2c_master_stop();
- } else {
-i2c_error: // the cable is disconnceted, or something else went wrong
- i2c_reset_state();
- return err;
- }
-
- return 0;
-}
-
-#else // USE_SERIAL
-
-int serial_transaction(void) {
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
-
- if (serial_update_buffers()) {
- return 1;
- }
-
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- matrix[slaveOffset+i] = serial_slave_buffer[i];
- }
- return 0;
-}
-#endif
-
-uint8_t matrix_scan(void)
-{
- int ret = _matrix_scan();
-
-
-
-#ifdef USE_I2C
- if( i2c_transaction() ) {
-#else // USE_SERIAL
- if( serial_transaction() ) {
-#endif
- // turn on the indicator led when halves are disconnected
- TXLED1;
-
- error_count++;
-
- if (error_count > ERROR_DISCONNECT_COUNT) {
- // reset other half if disconnected
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- matrix[slaveOffset+i] = 0;
- }
- }
- } else {
- // turn off the indicator led on no error
- TXLED0;
- error_count = 0;
- }
- matrix_scan_quantum();
- return ret;
-}
-
-void matrix_slave_scan(void) {
- _matrix_scan();
-
- int offset = (isLeftHand) ? 0 : (MATRIX_ROWS / 2);
-
-#ifdef USE_I2C
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- /* i2c_slave_buffer[i] = matrix[offset+i]; */
- i2c_slave_buffer[i] = matrix[offset+i];
- }
-#else // USE_SERIAL
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- serial_slave_buffer[i] = matrix[offset+i];
- }
-#endif
-}
-
-bool matrix_is_modified(void)
-{
- if (debouncing) return false;
- return true;
-}
-
-inline
-bool matrix_is_on(uint8_t row, uint8_t col)
-{
- return (matrix[row] & ((matrix_row_t)1<<col));
-}
-
-inline
-matrix_row_t matrix_get_row(uint8_t row)
-{
- return matrix[row];
-}
-
-void matrix_print(void)
-{
- print("\nr/c 0123456789ABCDEF\n");
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- phex(row); print(": ");
- pbin_reverse16(matrix_get_row(row));
- print("\n");
- }
-}
-
-uint8_t matrix_key_count(void)
-{
- uint8_t count = 0;
- for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
- count += bitpop16(matrix[i]);
- }
- return count;
-}
-
-static void init_cols(void)
-{
- for(int x = 0; x < MATRIX_COLS; x++) {
- _SFR_IO8((col_pins[x] >> 4) + 1) &= ~_BV(col_pins[x] & 0xF);
- _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF);
- }
-}
-
-static matrix_row_t read_cols(void)
-{
- matrix_row_t result = 0;
- for(int x = 0; x < MATRIX_COLS; x++) {
- result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x);
- }
- return result;
-}
-
-static void unselect_rows(void)
-{
- for(int x = 0; x < ROWS_PER_HAND; x++) {
- _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF);
- _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF);
- }
-}
-
-static void select_row(uint8_t row)
-{
- _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF);
- _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF);
-}
diff --git a/keyboards/minidox/minidox.h b/keyboards/minidox/minidox.h
index 6e8add206..5d5ca9f50 100644
--- a/keyboards/minidox/minidox.h
+++ b/keyboards/minidox/minidox.h
@@ -1,10 +1,7 @@
-#ifndef MINIDOX_H
-#define MINIDOX_H
+#pragma once
#ifdef KEYBOARD_minidox_rev1
#include "rev1.h"
#endif
#include "quantum.h"
-
-#endif \ No newline at end of file
diff --git a/keyboards/minidox/readme.md b/keyboards/minidox/readme.md
index 74afedc18..ec52e1f75 100644
--- a/keyboards/minidox/readme.md
+++ b/keyboards/minidox/readme.md
@@ -1,75 +1,27 @@
-MiniDox
-=====
+# MiniDox
![MiniDox](http://i.imgur.com/iWb3yO0.jpg)
A compact version of the ErgoDox
-Keyboard Maintainer: That-Canadian
-Hardware Supported: MiniDox PCB rev1 Pro Micro
+* Keyboard Maintainer: That-Canadian
+* Hardware Supported: MiniDox PCB rev1 Pro Micro
Make example for this keyboard (after setting up your build environment):
make minidox/rev1:default
+Flashing example for this keyboard ([using the command line](https://docs.qmk.fm/#/newbs_flashing?id=flash-your-keyboard-from-the-command-line)):
+
+ make minidox/rev1:default:flash
+
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
## Build Guide
A build guide for putting together the MiniDox v1 can be found here: [MiniDox Build Log / Guide](http://imgur.com/a/vImo6)
-Flashing
--------
-Note: Most of this is copied from the Let's Split readme, because it is awesome
-
-From the root directory run `make PROJECT:KEYMAP:avrdude` for automatic serial port resolution and flashing.
-Example: `make minidox/rev1:default:avrdude`
-
-Choosing which board to plug the USB cable into (choosing Master)
---------
-Because the two boards are identical, the firmware has logic to differentiate the left and right board.
-
-It uses two strategies to figure things out: look at the EEPROM (memory on the chip) or looks if the current board has the usb cable.
-
-The EEPROM approach requires additional setup (flashing the eeeprom) but allows you to swap the usb cable to either side.
-
-The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra.
-
-### Setting the left hand as master
-If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set.
-
-### Setting the right hand as master
-If you always plug the usb cable into the right board, add an extra flag to your `config.h`
-```
- #define MASTER_RIGHT
-```
-
-### Setting EE_hands to use either hands as master
-If you define `EE_HANDS` in your `config.h`, you will need to set the
-EEPROM for the left and right halves.
-
-The EEPROM is used to store whether the
-half is left handed or right handed. This makes it so that the same firmware
-file will run on both hands instead of having to flash left and right handed
-versions of the firmware to each half. To flash the EEPROM file for the left
-half run:
-```
-avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-lefthand.eep"
-// or the equivalent in dfu-programmer
-
-```
-and similarly for right half
-```
-avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:"./quantum/split_common/eeprom-righthand.eep"
-// or the equivalent in dfu-programmer
-```
-
-NOTE: replace `$(COM_PORT)` with the port of your device (e.g. `/dev/ttyACM0`)
-After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash.
+## Choosing which board to plug the USB cable into (choosing Master)
-Note that you need to program both halves, but you have the option of using
-different keymaps for each half. You could program the left half with a QWERTY
-layout and the right half with a Colemak layout using bootmagic's default layout option.
-Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the
-right half is connected.
+Because the two boards are identical, the firmware has logic to differentiate the left and right board. It uses two strategies to figure things out, [EE_HANDS](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom) or [by define](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-define). See [setting-handedness](https://docs.qmk.fm/#/config_options?id=setting-handedness) for more information.
diff --git a/keyboards/minidox/rev1/config.h b/keyboards/minidox/rev1/config.h
index b7272bdb0..734ca562f 100644
--- a/keyboards/minidox/rev1/config.h
+++ b/keyboards/minidox/rev1/config.h
@@ -15,10 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef REV1_CONFIG_H
-#define REV1_CONFIG_H
-
-#include "../config.h"
+#pragma once
#define DEVICE_VER 0x0001
@@ -26,11 +23,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B2, B6, B4, B5 }
#define MATRIX_COL_PINS { F4, D3, D2, D1, D4 }
+#define SOFT_SERIAL_PIN D0
+
#define USE_SERIAL
//#define EE_HANDS
-
-#define I2C_MASTER_LEFT
-//#define I2C_MASTER_RIGHT
-
-#endif
diff --git a/keyboards/minidox/rev1/rev1.h b/keyboards/minidox/rev1/rev1.h
index 5d32b05d4..bfa0e5fcc 100644
--- a/keyboards/minidox/rev1/rev1.h
+++ b/keyboards/minidox/rev1/rev1.h
@@ -1,7 +1,4 @@
-#ifndef REV1_H
-#define REV1_H
-
-#include "../minidox.h"
+#pragma once
#include "quantum.h"
@@ -24,5 +21,3 @@
{ k61, k62, k63, k64, k65 }, \
{ ___, ___, k73, k74, k75 } \
}
-
-#endif
diff --git a/keyboards/minidox/rules.mk b/keyboards/minidox/rules.mk
index dd2affb3f..1446c5144 100644
--- a/keyboards/minidox/rules.mk
+++ b/keyboards/minidox/rules.mk
@@ -12,29 +12,25 @@ MCU = atmega32u4
BOOTLOADER = caterina
# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
+# change yes to no to disable
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= no # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
-COMMAND_ENABLE ?= yes # Commands for debug and configuration
-NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no # MIDI controls
-AUDIO_ENABLE ?= no # Audio output on port C6
-UNICODE_ENABLE ?= no # Unicode
-BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight.
-USE_I2C ?= no
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-CUSTOM_MATRIX = yes
-SRC += matrix.c \
- i2c.c \
- split_util.c \
- serial.c
+SPLIT_KEYBOARD = yes
DEFAULT_FOLDER = minidox/rev1
diff --git a/keyboards/minidox/serial.c b/keyboards/minidox/serial.c
deleted file mode 100644
index 74bcbb6bf..000000000
--- a/keyboards/minidox/serial.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * WARNING: be careful changing this code, it is very timing dependent
- */
-
-#ifndef F_CPU
-#define F_CPU 16000000
-#endif
-
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include <stdbool.h>
-#include "serial.h"
-
-#ifndef USE_I2C
-
-// Serial pulse period in microseconds. Its probably a bad idea to lower this
-// value.
-#define SERIAL_DELAY 24
-
-uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
-uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
-
-#define SLAVE_DATA_CORRUPT (1<<0)
-volatile uint8_t status = 0;
-
-inline static
-void serial_delay(void) {
- _delay_us(SERIAL_DELAY);
-}
-
-inline static
-void serial_output(void) {
- SERIAL_PIN_DDR |= SERIAL_PIN_MASK;
-}
-
-// make the serial pin an input with pull-up resistor
-inline static
-void serial_input(void) {
- SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK;
- SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
-}
-
-inline static
-uint8_t serial_read_pin(void) {
- return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK);
-}
-
-inline static
-void serial_low(void) {
- SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK;
-}
-
-inline static
-void serial_high(void) {
- SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
-}
-
-void serial_master_init(void) {
- serial_output();
- serial_high();
-}
-
-void serial_slave_init(void) {
- serial_input();
-
- // Enable INT0
- EIMSK |= _BV(INT0);
- // Trigger on falling edge of INT0
- EICRA &= ~(_BV(ISC00) | _BV(ISC01));
-}
-
-// Used by the master to synchronize timing with the slave.
-static
-void sync_recv(void) {
- serial_input();
- // This shouldn't hang if the slave disconnects because the
- // serial line will float to high if the slave does disconnect.
- while (!serial_read_pin());
- serial_delay();
-}
-
-// Used by the slave to send a synchronization signal to the master.
-static
-void sync_send(void) {
- serial_output();
-
- serial_low();
- serial_delay();
-
- serial_high();
-}
-
-// Reads a byte from the serial line
-static
-uint8_t serial_read_byte(void) {
- uint8_t byte = 0;
- serial_input();
- for ( uint8_t i = 0; i < 8; ++i) {
- byte = (byte << 1) | serial_read_pin();
- serial_delay();
- _delay_us(1);
- }
-
- return byte;
-}
-
-// Sends a byte with MSB ordering
-static
-void serial_write_byte(uint8_t data) {
- uint8_t b = 8;
- serial_output();
- while( b-- ) {
- if(data & (1 << b)) {
- serial_high();
- } else {
- serial_low();
- }
- serial_delay();
- }
-}
-
-// interrupt handle to be used by the slave device
-ISR(SERIAL_PIN_INTERRUPT) {
- sync_send();
-
- uint8_t checksum = 0;
- for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
- serial_write_byte(serial_slave_buffer[i]);
- sync_send();
- checksum += serial_slave_buffer[i];
- }
- serial_write_byte(checksum);
- sync_send();
-
- // wait for the sync to finish sending
- serial_delay();
-
- // read the middle of pulses
- _delay_us(SERIAL_DELAY/2);
-
- uint8_t checksum_computed = 0;
- for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
- serial_master_buffer[i] = serial_read_byte();
- sync_send();
- checksum_computed += serial_master_buffer[i];
- }
- uint8_t checksum_received = serial_read_byte();
- sync_send();
-
- serial_input(); // end transaction
-
- if ( checksum_computed != checksum_received ) {
- status |= SLAVE_DATA_CORRUPT;
- } else {
- status &= ~SLAVE_DATA_CORRUPT;
- }
-}
-
-inline
-bool serial_slave_DATA_CORRUPT(void) {
- return status & SLAVE_DATA_CORRUPT;
-}
-
-// Copies the serial_slave_buffer to the master and sends the
-// serial_master_buffer to the slave.
-//
-// Returns:
-// 0 => no error
-// 1 => slave did not respond
-int serial_update_buffers(void) {
- // this code is very time dependent, so we need to disable interrupts
- cli();
-
- // signal to the slave that we want to start a transaction
- serial_output();
- serial_low();
- _delay_us(1);
-
- // wait for the slaves response
- serial_input();
- serial_high();
- _delay_us(SERIAL_DELAY);
-
- // check if the slave is present
- if (serial_read_pin()) {
- // slave failed to pull the line low, assume not present
- sei();
- return 1;
- }
-
- // if the slave is present syncronize with it
- sync_recv();
-
- uint8_t checksum_computed = 0;
- // receive data from the slave
- for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
- serial_slave_buffer[i] = serial_read_byte();
- sync_recv();
- checksum_computed += serial_slave_buffer[i];
- }
- uint8_t checksum_received = serial_read_byte();
- sync_recv();
-
- if (checksum_computed != checksum_received) {
- sei();
- return 1;
- }
-
- uint8_t checksum = 0;
- // send data to the slave
- for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
- serial_write_byte(serial_master_buffer[i]);
- sync_recv();
- checksum += serial_master_buffer[i];
- }
- serial_write_byte(checksum);
- sync_recv();
-
- // always, release the line when not in use
- serial_output();
- serial_high();
-
- sei();
- return 0;
-}
-
-#endif
diff --git a/keyboards/minidox/serial.h b/keyboards/minidox/serial.h
deleted file mode 100644
index 15fe4db7b..000000000
--- a/keyboards/minidox/serial.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef MY_SERIAL_H
-#define MY_SERIAL_H
-
-#include "config.h"
-#include <stdbool.h>
-
-/* TODO: some defines for interrupt setup */
-#define SERIAL_PIN_DDR DDRD
-#define SERIAL_PIN_PORT PORTD
-#define SERIAL_PIN_INPUT PIND
-#define SERIAL_PIN_MASK _BV(PD0)
-#define SERIAL_PIN_INTERRUPT INT0_vect
-
-#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
-#define SERIAL_MASTER_BUFFER_LENGTH 1
-
-// Buffers for master - slave communication
-extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
-extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
-
-void serial_master_init(void);
-void serial_slave_init(void);
-int serial_update_buffers(void);
-bool serial_slave_data_corrupt(void);
-
-#endif
diff --git a/keyboards/minidox/split_util.c b/keyboards/minidox/split_util.c
deleted file mode 100644
index 39639c3b4..000000000
--- a/keyboards/minidox/split_util.c
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <avr/io.h>
-#include <avr/wdt.h>
-#include <avr/power.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include <avr/eeprom.h>
-#include "split_util.h"
-#include "matrix.h"
-#include "keyboard.h"
-#include "config.h"
-
-#ifdef USE_I2C
-# include "i2c.h"
-#else
-# include "serial.h"
-#endif
-
-volatile bool isLeftHand = true;
-
-static void setup_handedness(void) {
- #ifdef EE_HANDS
- isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS);
- #else
- // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c
- #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT)
- isLeftHand = !has_usb();
- #else
- isLeftHand = has_usb();
- #endif
- #endif
-}
-
-static void keyboard_master_setup(void) {
-#ifdef USE_I2C
- i2c_master_init();
-#ifdef SSD1306OLED
- matrix_master_OLED_init ();
-#endif
-#else
- serial_master_init();
-#endif
-}
-
-static void keyboard_slave_setup(void) {
-#ifdef USE_I2C
- i2c_slave_init(SLAVE_I2C_ADDRESS);
-#else
- serial_slave_init();
-#endif
-}
-
-bool has_usb(void) {
- USBCON |= (1 << OTGPADE); //enables VBUS pad
- _delay_us(5);
- return (USBSTA & (1<<VBUS)); //checks state of VBUS
-}
-
-void split_keyboard_setup(void) {
- setup_handedness();
-
- if (has_usb()) {
- keyboard_master_setup();
- } else {
- keyboard_slave_setup();
- }
- sei();
-}
-
-void keyboard_slave_loop(void) {
- matrix_init();
-
- while (1) {
- matrix_slave_scan();
- }
-}
-
-// this code runs before the usb and keyboard is initialized
-void matrix_setup(void) {
- split_keyboard_setup();
-
- if (!has_usb()) {
- keyboard_slave_loop();
- }
-}
diff --git a/keyboards/minidox/split_util.h b/keyboards/minidox/split_util.h
deleted file mode 100644
index 595a0659e..000000000
--- a/keyboards/minidox/split_util.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef SPLIT_KEYBOARD_UTIL_H
-#define SPLIT_KEYBOARD_UTIL_H
-
-#include <stdbool.h>
-#include "eeconfig.h"
-
-#define SLAVE_I2C_ADDRESS 0x32
-
-extern volatile bool isLeftHand;
-
-// slave version of matix scan, defined in matrix.c
-void matrix_slave_scan(void);
-
-void split_keyboard_setup(void);
-bool has_usb(void);
-void keyboard_slave_loop(void);
-
-void matrix_master_OLED_init (void);
-
-#endif
diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h
index c98b9c1af..19a17a7c5 100644
--- a/keyboards/mint60/config.h
+++ b/keyboards/mint60/config.h
@@ -18,7 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#include "config_common.h"
-#include <serial_config.h>
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
@@ -28,11 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PRODUCT Mint60
#define DESCRIPTION A row staggered split keyboard
-#define TAPPING_FORCE_HOLD
-#define TAPPING_TERM 100
-
-#define USE_SERIAL
-
/* key matrix size */
#define MATRIX_ROWS 10
#define MATRIX_COLS 8
@@ -54,6 +48,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D2
+
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
diff --git a/keyboards/mint60/i2c.c b/keyboards/mint60/i2c.c
deleted file mode 100644
index 4bee5c639..000000000
--- a/keyboards/mint60/i2c.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <util/twi.h>
-#include <avr/io.h>
-#include <stdlib.h>
-#include <avr/interrupt.h>
-#include <util/twi.h>
-#include <stdbool.h>
-#include "i2c.h"
-
-#ifdef USE_I2C
-
-// Limits the amount of we wait for any one i2c transaction.
-// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is
-// 9 bits, a single transaction will take around 90μs to complete.
-//
-// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit
-// poll loop takes at least 8 clock cycles to execute
-#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8
-
-#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE)
-
-volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-static volatile uint8_t slave_buffer_pos;
-static volatile bool slave_has_register_set = false;
-
-// Wait for an i2c operation to finish
-inline static
-void i2c_delay(void) {
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWINT)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-
- // easier way, but will wait slightly longer
- // _delay_us(100);
-}
-
-// Setup twi to run at 100kHz or 400kHz (see ./i2c.h SCL_CLOCK)
-void i2c_master_init(void) {
- // no prescaler
- TWSR = 0;
- // Set TWI clock frequency to SCL_CLOCK. Need TWBR>10.
- // Check datasheets for more info.
- TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
-}
-
-// Start a transaction with the given i2c slave address. The direction of the
-// transfer is set with I2C_READ and I2C_WRITE.
-// returns: 0 => success
-// 1 => error
-uint8_t i2c_master_start(uint8_t address) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTA);
-
- i2c_delay();
-
- // check that we started successfully
- if ( (TW_STATUS != TW_START) && (TW_STATUS != TW_REP_START))
- return 1;
-
- TWDR = address;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- if ( (TW_STATUS != TW_MT_SLA_ACK) && (TW_STATUS != TW_MR_SLA_ACK) )
- return 1; // slave did not acknowledge
- else
- return 0; // success
-}
-
-
-// Finish the i2c transaction.
-void i2c_master_stop(void) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
-
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWSTO)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-}
-
-// Write one byte to the i2c slave.
-// returns 0 => slave ACK
-// 1 => slave NACK
-uint8_t i2c_master_write(uint8_t data) {
- TWDR = data;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- // check if the slave acknowledged us
- return (TW_STATUS == TW_MT_DATA_ACK) ? 0 : 1;
-}
-
-// Read one byte from the i2c slave. If ack=1 the slave is acknowledged,
-// if ack=0 the acknowledge bit is not set.
-// returns: byte read from i2c device
-uint8_t i2c_master_read(int ack) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (ack<<TWEA);
-
- i2c_delay();
- return TWDR;
-}
-
-void i2c_reset_state(void) {
- TWCR = 0;
-}
-
-void i2c_slave_init(uint8_t address) {
- TWAR = address << 0; // slave i2c address
- // TWEN - twi enable
- // TWEA - enable address acknowledgement
- // TWINT - twi interrupt flag
- // TWIE - enable the twi interrupt
- TWCR = (1<<TWIE) | (1<<TWEA) | (1<<TWINT) | (1<<TWEN);
-}
-
-ISR(TWI_vect);
-
-ISR(TWI_vect) {
- uint8_t ack = 1;
- switch(TW_STATUS) {
- case TW_SR_SLA_ACK:
- // this device has been addressed as a slave receiver
- slave_has_register_set = false;
- break;
-
- case TW_SR_DATA_ACK:
- // this device has received data as a slave receiver
- // The first byte that we receive in this transaction sets the location
- // of the read/write location of the slaves memory that it exposes over
- // i2c. After that, bytes will be written at slave_buffer_pos, incrementing
- // slave_buffer_pos after each write.
- if(!slave_has_register_set) {
- slave_buffer_pos = TWDR;
- // don't acknowledge the master if this memory loctaion is out of bounds
- if ( slave_buffer_pos >= SLAVE_BUFFER_SIZE ) {
- ack = 0;
- slave_buffer_pos = 0;
- }
- slave_has_register_set = true;
- } else {
- i2c_slave_buffer[slave_buffer_pos] = TWDR;
- BUFFER_POS_INC();
- }
- break;
-
- case TW_ST_SLA_ACK:
- case TW_ST_DATA_ACK:
- // master has addressed this device as a slave transmitter and is
- // requesting data.
- TWDR = i2c_slave_buffer[slave_buffer_pos];
- BUFFER_POS_INC();
- break;
-
- case TW_BUS_ERROR: // something went wrong, reset twi state
- TWCR = 0;
- default:
- break;
- }
- // Reset everything, so we are ready for the next TWI interrupt
- TWCR |= (1<<TWIE) | (1<<TWINT) | (ack<<TWEA) | (1<<TWEN);
-}
-#endif
diff --git a/keyboards/mint60/i2c.h b/keyboards/mint60/i2c.h
deleted file mode 100644
index 47cf6bd1b..000000000
--- a/keyboards/mint60/i2c.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef I2C_H
-#define I2C_H
-
-#include <stdint.h>
-
-#ifndef F_CPU
-#define F_CPU 16000000UL
-#endif
-
-#define I2C_READ 1
-#define I2C_WRITE 0
-
-#define I2C_ACK 1
-#define I2C_NACK 0
-
-#define SLAVE_BUFFER_SIZE 0x10
-
-// i2c SCL clock frequency 400kHz
-#define SCL_CLOCK 400000L
-
-extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-void i2c_master_init(void);
-uint8_t i2c_master_start(uint8_t address);
-void i2c_master_stop(void);
-uint8_t i2c_master_write(uint8_t data);
-uint8_t i2c_master_read(int);
-void i2c_reset_state(void);
-void i2c_slave_init(uint8_t address);
-
-
-static inline unsigned char i2c_start_read(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_READ);
-}
-
-static inline unsigned char i2c_start_write(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_WRITE);
-}
-
-// from SSD1306 scrips
-extern unsigned char i2c_rep_start(unsigned char addr);
-extern void i2c_start_wait(unsigned char addr);
-extern unsigned char i2c_readAck(void);
-extern unsigned char i2c_readNak(void);
-extern unsigned char i2c_read(unsigned char ack);
-
-#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
-
-#endif
diff --git a/keyboards/mint60/keymaps/default/keymap.c b/keyboards/mint60/keymaps/default/keymap.c
index 0c65f73c7..a56bc5a1a 100644
--- a/keyboards/mint60/keymaps/default/keymap.c
+++ b/keyboards/mint60/keymaps/default/keymap.c
@@ -14,22 +14,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-
-
-#ifdef RGBLIGHT_ENABLE
-//Following line allows macro to read current RGB settings
-extern rgblight_config_t rgblight_config;
-#endif
enum custom_keycodes {
RGBRST = SAFE_RANGE
};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( \
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
@@ -47,10 +36,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-// define variables for reactive RGB
-bool TOG_STATUS = false;
-int RGB_current_mode;
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case RGBRST:
@@ -58,22 +43,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
- RGB_current_mode = rgblight_config.mode;
}
#endif
break;
}
return true;
}
-
-void matrix_init_user(void) {
-
-}
-
-void matrix_scan_user(void) {
-
-}
-
-void led_set_user(uint8_t usb_led) {
-
-}
diff --git a/keyboards/mint60/matrix.c b/keyboards/mint60/matrix.c
deleted file mode 100644
index 30f3c56bc..000000000
--- a/keyboards/mint60/matrix.c
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/*
- * scan matrix
- */
-#include <stdint.h>
-#include <stdbool.h>
-#include <avr/io.h>
-#include <avr/wdt.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include "print.h"
-#include "debug.h"
-#include "util.h"
-#include "matrix.h"
-#include "split_util.h"
-#include "pro_micro.h"
-
-#ifdef USE_I2C
-# include "i2c.h"
-#else // USE_SERIAL
-# include "serial.h"
-#endif
-
-#ifndef DEBOUNCE
-# define DEBOUNCE 5
-#endif
-
-#define ERROR_DISCONNECT_COUNT 5
-
-static uint8_t debouncing = DEBOUNCE;
-static const int ROWS_PER_HAND = MATRIX_ROWS/2;
-static uint8_t error_count = 0;
-uint8_t is_master = 0 ;
-
-static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
-static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
-
-/* matrix state(1:on, 0:off) */
-static matrix_row_t matrix[MATRIX_ROWS];
-static matrix_row_t matrix_debouncing[MATRIX_ROWS];
-
-static matrix_row_t read_cols(void);
-static void init_cols(void);
-static void unselect_rows(void);
-static void select_row(uint8_t row);
-static uint8_t matrix_master_scan(void);
-
-
-__attribute__ ((weak))
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
-__attribute__ ((weak))
-void matrix_scan_kb(void) {
- matrix_scan_user();
-}
-
-__attribute__ ((weak))
-void matrix_init_user(void) {
-}
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {
-}
-
-inline
-uint8_t matrix_rows(void)
-{
- return MATRIX_ROWS;
-}
-
-inline
-uint8_t matrix_cols(void)
-{
- return MATRIX_COLS;
-}
-
-void matrix_init(void)
-{
- debug_enable = true;
- debug_matrix = true;
- debug_mouse = true;
- // initialize row and col
- unselect_rows();
- init_cols();
-
- TX_RX_LED_INIT;
-
- // initialize matrix state: all keys off
- for (uint8_t i=0; i < MATRIX_ROWS; i++) {
- matrix[i] = 0;
- matrix_debouncing[i] = 0;
- }
-
- is_master = has_usb();
-
- matrix_init_quantum();
-}
-
-uint8_t _matrix_scan(void)
-{
- // Right hand is stored after the left in the matirx so, we need to offset it
- int offset = isLeftHand ? 0 : (ROWS_PER_HAND);
-
- for (uint8_t i = 0; i < ROWS_PER_HAND; i++) {
- select_row(i);
- _delay_us(30); // without this wait read unstable value.
- matrix_row_t cols = read_cols();
- if (matrix_debouncing[i+offset] != cols) {
- matrix_debouncing[i+offset] = cols;
- debouncing = DEBOUNCE;
- }
- unselect_rows();
- }
-
- if (debouncing) {
- if (--debouncing) {
- _delay_ms(1);
- } else {
- for (uint8_t i = 0; i < ROWS_PER_HAND; i++) {
- matrix[i+offset] = matrix_debouncing[i+offset];
- }
- }
- }
-
- return 1;
-}
-
-#ifdef USE_I2C
-
-// Get rows from other half over i2c
-int i2c_transaction(void) {
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
-
- int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE);
- if (err) goto i2c_error;
-
- // start of matrix stored at 0x00
- err = i2c_master_write(0x00);
- if (err) goto i2c_error;
-
- // Start read
- err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ);
- if (err) goto i2c_error;
-
- if (!err) {
- int i;
- for (i = 0; i < ROWS_PER_HAND-1; ++i) {
- matrix[slaveOffset+i] = i2c_master_read(I2C_ACK);
- }
- matrix[slaveOffset+i] = i2c_master_read(I2C_NACK);
- i2c_master_stop();
- } else {
-i2c_error: // the cable is disconnceted, or something else went wrong
- i2c_reset_state();
- return err;
- }
-
- return 0;
-}
-
-#else // USE_SERIAL
-
-int serial_transaction(void) {
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
- int ret=serial_update_buffers();
- if (ret ) {
- if(ret==2)RXLED1;
- return 1;
- }
-RXLED0;
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- matrix[slaveOffset+i] = serial_slave_buffer[i];
- }
- return 0;
-}
-#endif
-
-uint8_t matrix_scan(void)
-{
- if (is_master) {
- matrix_master_scan();
- }else{
- matrix_slave_scan();
-
- int offset = (isLeftHand) ? ROWS_PER_HAND : 0;
-
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- matrix[offset+i] = serial_master_buffer[i];
- }
-
- matrix_scan_quantum();
- }
- return 1;
-}
-
-
-uint8_t matrix_master_scan(void) {
-
- int ret = _matrix_scan();
-
-#ifndef KEYBOARD_helix_rev1
- int offset = (isLeftHand) ? 0 : ROWS_PER_HAND;
-
-#ifdef USE_I2C
-// for (int i = 0; i < ROWS_PER_HAND; ++i) {
- /* i2c_slave_buffer[i] = matrix[offset+i]; */
-// i2c_slave_buffer[i] = matrix[offset+i];
-// }
-#else // USE_SERIAL
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- serial_master_buffer[i] = matrix[offset+i];
- }
-#endif
-#endif
-
-#ifdef USE_I2C
- if( i2c_transaction() ) {
-#else // USE_SERIAL
- if( serial_transaction() ) {
-#endif
- // turn on the indicator led when halves are disconnected
- TXLED1;
-
- error_count++;
-
- if (error_count > ERROR_DISCONNECT_COUNT) {
- // reset other half if disconnected
- int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0;
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- matrix[slaveOffset+i] = 0;
- }
- }
- } else {
- // turn off the indicator led on no error
- TXLED0;
- error_count = 0;
- }
- matrix_scan_quantum();
- return ret;
-}
-
-void matrix_slave_scan(void) {
- _matrix_scan();
-
- int offset = (isLeftHand) ? 0 : ROWS_PER_HAND;
-
-#ifdef USE_I2C
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- /* i2c_slave_buffer[i] = matrix[offset+i]; */
- i2c_slave_buffer[i] = matrix[offset+i];
- }
-#else // USE_SERIAL
- for (int i = 0; i < ROWS_PER_HAND; ++i) {
- serial_slave_buffer[i] = matrix[offset+i];
- }
-#endif
-}
-
-bool matrix_is_modified(void)
-{
- if (debouncing) return false;
- return true;
-}
-
-inline
-bool matrix_is_on(uint8_t row, uint8_t col)
-{
- return (matrix[row] & ((matrix_row_t)1<<col));
-}
-
-inline
-matrix_row_t matrix_get_row(uint8_t row)
-{
- return matrix[row];
-}
-
-void matrix_print(void)
-{
- print("\nr/c 0123456789ABCDEF\n");
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- phex(row); print(": ");
- pbin_reverse16(matrix_get_row(row));
- print("\n");
- }
-}
-
-uint8_t matrix_key_count(void)
-{
- uint8_t count = 0;
- for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
- count += bitpop16(matrix[i]);
- }
- return count;
-}
-
-static void init_cols(void)
-{
- for(int x = 0; x < MATRIX_COLS; x++) {
- _SFR_IO8((col_pins[x] >> 4) + 1) &= ~_BV(col_pins[x] & 0xF);
- _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF);
- }
-}
-
-static matrix_row_t read_cols(void)
-{
- matrix_row_t result = 0;
- for(int x = 0; x < MATRIX_COLS; x++) {
- result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x);
- }
- return result;
-}
-
-static void unselect_rows(void)
-{
- for(int x = 0; x < ROWS_PER_HAND; x++) {
- _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF);
- _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF);
- }
-}
-
-static void select_row(uint8_t row)
-{
- _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF);
- _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF);
-}
diff --git a/keyboards/mint60/mint60.c b/keyboards/mint60/mint60.c
index 724bea757..8905392ef 100644
--- a/keyboards/mint60/mint60.c
+++ b/keyboards/mint60/mint60.c
@@ -14,30 +14,3 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "mint60.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- matrix_init_user();
-}
-
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
-
- matrix_scan_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_record_user(keycode, record);
-}
-
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- led_set_user(usb_led);
-}
diff --git a/keyboards/mint60/mint60.h b/keyboards/mint60/mint60.h
index ed2ee255f..78529921a 100644
--- a/keyboards/mint60/mint60.h
+++ b/keyboards/mint60/mint60.h
@@ -13,25 +13,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef MINT60_H
-#define MINT60_H
+#pragma once
#include "quantum.h"
-#ifdef RGBLIGHT_ENABLE
-//rgb led driver
-#include "ws2812.h"
-#endif
-
-#ifdef USE_I2C
-#include <stddef.h>
-#ifdef __AVR__
- #include <avr/io.h>
- #include <avr/interrupt.h>
-#endif
-#endif
-
-
// This a shortcut to help you visually see your layout.
// The following is an example using the Planck MIT layout
// The first section contains all of the arguments
@@ -55,5 +40,3 @@
{ R30, R31, R32, R33, R34, R35, R36, R37 }, \
{ R40, R41, KC_NO, R43, KC_NO, R45, R46, R47 }, \
}
-
-#endif
diff --git a/keyboards/mint60/rules.mk b/keyboards/mint60/rules.mk
index 037e81431..bd9f3154d 100644
--- a/keyboards/mint60/rules.mk
+++ b/keyboards/mint60/rules.mk
@@ -14,27 +14,22 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-CUSTOM_MATRIX = yes
-SRC += i2c.c \
- serial.c \
- matrix.c \
- split_util.c
-USE_I2C = yes
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+SPLIT_KEYBOARD = yes
diff --git a/keyboards/mint60/serial.c b/keyboards/mint60/serial.c
deleted file mode 100644
index 591941587..000000000
--- a/keyboards/mint60/serial.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * WARNING: be careful changing this code, it is very timing dependent
- */
-
-#ifndef F_CPU
-#define F_CPU 16000000
-#endif
-
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include <stdbool.h>
-#include "serial.h"
-
-#ifdef USE_SERIAL
-
-#define _delay_sub_us(x) __builtin_avr_delay_cycles(x)
-
-// Serial pulse period in microseconds.
-#define SELECT_SERIAL_SPEED 1
-#if SELECT_SERIAL_SPEED == 0
- // Very High speed
- #define SERIAL_DELAY 4 // micro sec
- #define READ_WRITE_START_ADJUST 30 // cycles
- #define READ_WRITE_WIDTH_ADJUST 10 // cycles
-#elif SELECT_SERIAL_SPEED == 1
- // High speed
- #define SERIAL_DELAY 6 // micro sec
- #define READ_WRITE_START_ADJUST 23 // cycles
- #define READ_WRITE_WIDTH_ADJUST 10 // cycles
-#elif SELECT_SERIAL_SPEED == 2
- // Middle speed
- #define SERIAL_DELAY 12 // micro sec
- #define READ_WRITE_START_ADJUST 25 // cycles
- #define READ_WRITE_WIDTH_ADJUST 10 // cycles
-#elif SELECT_SERIAL_SPEED == 3
- // Low speed
- #define SERIAL_DELAY 24 // micro sec
- #define READ_WRITE_START_ADJUST 25 // cycles
- #define READ_WRITE_WIDTH_ADJUST 10 // cycles
-#elif SELECT_SERIAL_SPEED == 4
- // Very Low speed
- #define SERIAL_DELAY 50 // micro sec
- #define READ_WRITE_START_ADJUST 25 // cycles
- #define READ_WRITE_WIDTH_ADJUST 10 // cycles
-#else
-#error Illegal Serial Speed
-#endif
-
-
-#define SERIAL_DELAY_HALF1 (SERIAL_DELAY/2)
-#define SERIAL_DELAY_HALF2 (SERIAL_DELAY - SERIAL_DELAY/2)
-
-#define SLAVE_INT_WIDTH 1
-#define SLAVE_INT_RESPONSE_TIME SERIAL_DELAY
-
-uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0};
-uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0};
-
-#define SLAVE_DATA_CORRUPT (1<<0)
-volatile uint8_t status = 0;
-
-inline static
-void serial_delay(void) {
- _delay_us(SERIAL_DELAY);
-}
-
-inline static
-void serial_delay_half1(void) {
- _delay_us(SERIAL_DELAY_HALF1);
-}
-
-inline static
-void serial_delay_half2(void) {
- _delay_us(SERIAL_DELAY_HALF2);
-}
-
-inline static
-void serial_output(void) {
- SERIAL_PIN_DDR |= SERIAL_PIN_MASK;
-}
-
-// make the serial pin an input with pull-up resistor
-inline static
-void serial_input_with_pullup(void) {
- SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK;
- SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
-}
-
-inline static
-uint8_t serial_read_pin(void) {
- return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK);
-}
-
-inline static
-void serial_low(void) {
- SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK;
-}
-
-inline static
-void serial_high(void) {
- SERIAL_PIN_PORT |= SERIAL_PIN_MASK;
-}
-
-void serial_master_init(void) {
- serial_output();
- serial_high();
-}
-
-void serial_slave_init(void) {
- serial_input_with_pullup();
-
-#if SERIAL_PIN_MASK == _BV(PD0)
- // Enable INT0
- EIMSK |= _BV(INT0);
- // Trigger on falling edge of INT0
- EICRA &= ~(_BV(ISC00) | _BV(ISC01));
-#elif SERIAL_PIN_MASK == _BV(PD2)
- // Enable INT2
- EIMSK |= _BV(INT2);
- // Trigger on falling edge of INT2
- EICRA &= ~(_BV(ISC20) | _BV(ISC21));
-#else
- #error unknown SERIAL_PIN_MASK value
-#endif
-}
-
-// Used by the sender to synchronize timing with the reciver.
-static
-void sync_recv(void) {
- for (int i = 0; i < SERIAL_DELAY*5 && serial_read_pin(); i++ ) {
- }
- // This shouldn't hang if the slave disconnects because the
- // serial line will float to high if the slave does disconnect.
- while (!serial_read_pin());
-}
-
-// Used by the reciver to send a synchronization signal to the sender.
-static
-void sync_send(void) {
- serial_low();
- serial_delay();
- serial_high();
-}
-
-// Reads a byte from the serial line
-static
-uint8_t serial_read_byte(void) {
- uint8_t byte = 0;
- _delay_sub_us(READ_WRITE_START_ADJUST);
- for ( uint8_t i = 0; i < 8; ++i) {
- serial_delay_half1(); // read the middle of pulses
- byte = (byte << 1) | serial_read_pin();
- _delay_sub_us(READ_WRITE_WIDTH_ADJUST);
- serial_delay_half2();
- }
- return byte;
-}
-
-// Sends a byte with MSB ordering
-static
-void serial_write_byte(uint8_t data) {
- uint8_t b = 1<<7;
- while( b ) {
- if(data & b) {
- serial_high();
- } else {
- serial_low();
- }
- b >>= 1;
- serial_delay();
- }
- serial_low(); // sync_send() / senc_recv() need raise edge
-}
-
-// interrupt handle to be used by the slave device
-ISR(SERIAL_PIN_INTERRUPT) {
- serial_output();
-
- // slave send phase
- uint8_t checksum = 0;
- for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
- sync_send();
- serial_write_byte(serial_slave_buffer[i]);
- checksum += serial_slave_buffer[i];
- }
- sync_send();
- serial_write_byte(checksum);
-
- // slave switch to input
- sync_send(); //0
- serial_delay_half1(); //1
- serial_low(); //2
- serial_input_with_pullup(); //2
- serial_delay_half1(); //3
-
- // slave recive phase
- uint8_t checksum_computed = 0;
- for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
- sync_recv();
- serial_master_buffer[i] = serial_read_byte();
- checksum_computed += serial_master_buffer[i];
- }
- sync_recv();
- uint8_t checksum_received = serial_read_byte();
-
- if ( checksum_computed != checksum_received ) {
- status |= SLAVE_DATA_CORRUPT;
- } else {
- status &= ~SLAVE_DATA_CORRUPT;
- }
-
- sync_recv(); //weit master output to high
-}
-
-inline
-bool serial_slave_DATA_CORRUPT(void) {
- return status & SLAVE_DATA_CORRUPT;
-}
-
-// Copies the serial_slave_buffer to the master and sends the
-// serial_master_buffer to the slave.
-//
-// Returns:
-// 0 => no error
-// 1 => slave did not respond
-// 2 => checksum error
-int serial_update_buffers(void) {
- // this code is very time dependent, so we need to disable interrupts
- cli();
-
- // signal to the slave that we want to start a transaction
- serial_output();
- serial_low();
- _delay_us(SLAVE_INT_WIDTH);
-
- // wait for the slaves response
- serial_input_with_pullup();
- _delay_us(SLAVE_INT_RESPONSE_TIME);
-
- // check if the slave is present
- if (serial_read_pin()) {
- // slave failed to pull the line low, assume not present
- serial_output();
- serial_high();
- sei();
- return 1;
- }
-
- // master recive phase
- // if the slave is present syncronize with it
-
- uint8_t checksum_computed = 0;
- // receive data from the slave
- for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) {
- sync_recv();
- serial_slave_buffer[i] = serial_read_byte();
- checksum_computed += serial_slave_buffer[i];
- }
- sync_recv();
- uint8_t checksum_received = serial_read_byte();
-
- if (checksum_computed != checksum_received) {
- serial_output();
- serial_high();
- sei();
- return 2;
- }
-
- // master switch to output
- sync_recv(); //0
- serial_delay(); //1
- serial_low(); //3
- serial_output(); // 3
- serial_delay_half1(); //4
-
- // master send phase
- uint8_t checksum = 0;
-
- for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) {
- sync_send();
- serial_write_byte(serial_master_buffer[i]);
- checksum += serial_master_buffer[i];
- }
- sync_send();
- serial_write_byte(checksum);
-
- // always, release the line when not in use
- sync_send();
-
- sei();
- return 0;
-}
-
-#endif
diff --git a/keyboards/mint60/serial.h b/keyboards/mint60/serial.h
deleted file mode 100644
index c3c9569b2..000000000
--- a/keyboards/mint60/serial.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef SOFT_SERIAL_H
-#define SOFT_SERIAL_H
-
-#include <stdbool.h>
-
-// ////////////////////////////////////////////
-// Need Soft Serial defines in serial_config.h
-// ////////////////////////////////////////////
-// ex.
-// #define SERIAL_PIN_DDR DDRD
-// #define SERIAL_PIN_PORT PORTD
-// #define SERIAL_PIN_INPUT PIND
-// #define SERIAL_PIN_MASK _BV(PD?) ?=0,2
-// #define SERIAL_PIN_INTERRUPT INT?_vect ?=0,2
-// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
-// #define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
-
-// Buffers for master - slave communication
-extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
-extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
-
-void serial_master_init(void);
-void serial_slave_init(void);
-int serial_update_buffers(void);
-bool serial_slave_data_corrupt(void);
-
-#endif /* SOFT_SERIAL_H */
diff --git a/keyboards/mint60/serial_config.h b/keyboards/mint60/serial_config.h
deleted file mode 100644
index 82c6e4e83..000000000
--- a/keyboards/mint60/serial_config.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef SOFT_SERIAL_CONFIG_H
-#define SOFT_SERIAL_CONFIG_H
-
-/* Soft Serial defines */
-#define SERIAL_PIN_DDR DDRD
-#define SERIAL_PIN_PORT PORTD
-#define SERIAL_PIN_INPUT PIND
-#define SERIAL_PIN_MASK _BV(PD2)
-#define SERIAL_PIN_INTERRUPT INT2_vect
-
-#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
-#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
-
-//// #error rev2 serial config
-
-#endif /* SOFT_SERIAL_CONFIG_H */
diff --git a/keyboards/mint60/split_util.c b/keyboards/mint60/split_util.c
deleted file mode 100644
index cd3a1896e..000000000
--- a/keyboards/mint60/split_util.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <avr/io.h>
-#include <avr/wdt.h>
-#include <avr/power.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
-#include <avr/eeprom.h>
-#include "split_util.h"
-#include "matrix.h"
-#include "keyboard.h"
-
-#ifdef USE_I2C
-# include "i2c.h"
-#else
-# include "serial.h"
-#endif
-
-volatile bool isLeftHand = true;
-
-static void setup_handedness(void) {
- #ifdef EE_HANDS
- isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS);
- #else
- // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c
- #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT)
- isLeftHand = !has_usb();
- #else
- isLeftHand = has_usb();
- #endif
- #endif
-}
-
-static void keyboard_master_setup(void) {
-
-#ifdef USE_I2C
- i2c_master_init();
-#else
- serial_master_init();
-#endif
-}
-
-static void keyboard_slave_setup(void) {
-
-#ifdef USE_I2C
- i2c_slave_init(SLAVE_I2C_ADDRESS);
-#else
- serial_slave_init();
-#endif
-}
-
-bool has_usb(void) {
- USBCON |= (1 << OTGPADE); //enables VBUS pad
- _delay_us(5);
- return (USBSTA & (1<<VBUS)); //checks state of VBUS
-}
-
-void split_keyboard_setup(void) {
- setup_handedness();
-
- if (has_usb()) {
- keyboard_master_setup();
- } else {
- keyboard_slave_setup();
- }
- sei();
-}
-
-// this code runs before the usb and keyboard is initialized
-void matrix_setup(void) {
- split_keyboard_setup();
-}
diff --git a/keyboards/mint60/split_util.h b/keyboards/mint60/split_util.h
deleted file mode 100644
index 687ca19bd..000000000
--- a/keyboards/mint60/split_util.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef SPLIT_KEYBOARD_UTIL_H
-#define SPLIT_KEYBOARD_UTIL_H
-
-#include <stdbool.h>
-#include "eeconfig.h"
-
-#define SLAVE_I2C_ADDRESS 0x32
-
-extern volatile bool isLeftHand;
-
-// slave version of matix scan, defined in matrix.c
-void matrix_slave_scan(void);
-
-void split_keyboard_setup(void);
-bool has_usb(void);
-
-void matrix_master_OLED_init (void);
-
-#endif
diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk
index 420c49f9b..466987e8c 100644
--- a/keyboards/mitosis/rules.mk
+++ b/keyboards/mitosis/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/miuni32/rules.mk b/keyboards/miuni32/rules.mk
index 68622e672..9f36d744a 100644
--- a/keyboards/miuni32/rules.mk
+++ b/keyboards/miuni32/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/model01/rules.mk b/keyboards/model01/rules.mk
index 5e3cbaa33..29c028ac8 100644
--- a/keyboards/model01/rules.mk
+++ b/keyboards/model01/rules.mk
@@ -14,16 +14,16 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
CUSTOM_MATRIX = yes
@@ -32,4 +32,4 @@ SRC += leds.c \
matrix.c
# You can set RGB_MATRIX_ENABLE = no in your rules.mk to disable this and save the Flash
-RGB_MATRIX_ENABLE = custom # Enable RGB matrix effects (+10000).
+RGB_MATRIX_ENABLE = custom # Enable RGB matrix effects.
diff --git a/keyboards/montsinger/rebound/config.h b/keyboards/montsinger/rebound/config.h
new file mode 100644
index 000000000..271664d96
--- /dev/null
+++ b/keyboards/montsinger/rebound/config.h
@@ -0,0 +1,62 @@
+/*
+Copyright 2020 Ross Montsinger
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x552F
+#define DEVICE_VER 0x0002
+#define MANUFACTURER Montsinger
+#define PRODUCT Rebound
+#define DESCRIPTION "A conjoined Let's Split"
+
+/* key matrix size */
+
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on
+diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+
+#define MATRIX_ROW_PINS { D1, B5, B2, B6 }
+#define MATRIX_COL_PINS { D0, D4, C6, D7, E6, B4, B3, B1, F7, F6, F5, F4 }
+#define UNUSED_PINS { D2, D3 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/montsinger/rebound/keymaps/curry/keymap.c b/keyboards/montsinger/rebound/keymaps/curry/keymap.c
new file mode 100644
index 000000000..1b8f4f4ac
--- /dev/null
+++ b/keyboards/montsinger/rebound/keymaps/curry/keymap.c
@@ -0,0 +1,63 @@
+#include "curry.h"
+
+#define LAYOUT_rebound_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_ortho_4x12_wrapper( \
+ KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
+ KC_ESC, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
+ KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_ENT, \
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+ )
+#define LAYOUT_rebound_base_wrapper(...) LAYOUT_rebound_base(__VA_ARGS__)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_rebound_base_wrapper(
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
+ ),
+
+ [_COLEMAK] = LAYOUT_rebound_base_wrapper(
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
+ ),
+
+ [_DVORAK] = LAYOUT_rebound_base_wrapper(
+ _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
+ ),
+
+ [_WORKMAN] = LAYOUT_rebound_base_wrapper(
+ _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
+ _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
+ _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
+ ),
+
+ [_LOWER] = LAYOUT_ortho_4x12_wrapper(
+ KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F12,
+ KC_GRV, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
+ _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______
+ ),
+
+ [_RAISE] = LAYOUT_ortho_4x12_wrapper(
+ _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_DEL,
+ KC_TILD, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
+ _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______
+ ),
+
+ [_ADJUST] = LAYOUT_ortho_4x12_wrapper(
+ KC_MAKE, ___________________BLANK___________________, _________________ADJUST_R1_________________, KC_RST,
+ VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST,
+ MG_NKRO, ___________________BLANK___________________, _________________ADJUST_R3_________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______
+ )
+
+
+};
diff --git a/keyboards/montsinger/rebound/keymaps/curry/rules.mk b/keyboards/montsinger/rebound/keymaps/curry/rules.mk
new file mode 100644
index 000000000..36225f7ba
--- /dev/null
+++ b/keyboards/montsinger/rebound/keymaps/curry/rules.mk
@@ -0,0 +1 @@
+CTPC = yes
diff --git a/keyboards/montsinger/rebound/keymaps/default/keymap.c b/keyboards/montsinger/rebound/keymaps/default/keymap.c
new file mode 100644
index 000000000..94d9ef91d
--- /dev/null
+++ b/keyboards/montsinger/rebound/keymaps/default/keymap.c
@@ -0,0 +1,163 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum layer_names
+{
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define ADJUST MO(_ADJUST)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | H | N | E | I | O | ' |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Dvorak
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | D | H | T | N | S | / |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
+ ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12(
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ }
+ return true;
+}
diff --git a/keyboards/montsinger/rebound/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/keymaps/rossman360/keymap.c
new file mode 100644
index 000000000..8391ec8e1
--- /dev/null
+++ b/keyboards/montsinger/rebound/keymaps/rossman360/keymap.c
@@ -0,0 +1,55 @@
+#include QMK_KEYBOARD_H
+#include "rossman360.h"
+
+#define PGMOD LT(_NUM, KC_PGDN)
+#define TABMOD LT(_FN1, KC_TAB)
+#define SPCMOD LT(_FN1, KC_SPACE)
+#define ENTMOD LT(_FN2, KC_ENTER)
+#define ESCMOD LT(_NUM, KC_ESC)
+#define RSMOD LT(_FN1, KC_RSHIFT)
+
+enum layer_names {
+ _BASE,
+ _DEL,
+ _FN1,
+ _FN2,
+ _NUM,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_BASE] = LAYOUT_ortho_4x12(
+ KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
+ JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
+ KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
+ CMDBSP , ALTDEL , KC_NO , CTRLSP , TABMOD , PGMOD , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
+ ),
+
+[_FN1] = LAYOUT_ortho_4x12(
+ _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
+ KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
+ _______, _______, XPANDR , _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, _______,
+ WREFRESH,_______, _______, _______, LWORD , RWORD , RVOLD , RVOLU , _______, _______, _______, _______
+ ),
+
+[_FN2] = LAYOUT_ortho_4x12(
+ _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, _______, _______, _______, _______
+ ),
+
+[_DEL] = LAYOUT_ortho_4x12(
+ _______, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
+ REMCAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
+ _______, _______, _______, KC_DEL , KC_BSPC, BWORD , _______, _______, _______, _______, _______, _______
+ ),
+
+[_NUM] = LAYOUT_ortho_4x12(
+ _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
+ KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
+ _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
+ _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_0 , _______, _______, _______
+ )
+};
diff --git a/keyboards/montsinger/rebound/readme.md b/keyboards/montsinger/rebound/readme.md
new file mode 100755
index 000000000..d634408cc
--- /dev/null
+++ b/keyboards/montsinger/rebound/readme.md
@@ -0,0 +1,15 @@
+# Rebound
+
+![Rebound](https://imgur.com/zMPhNmm.jpg)
+
+A conjoined-split 40% 4x12 ortholinear keyboard made and sold by Montsinger. [More info on Montsinger.net](https://montsinger.net).
+
+* Keyboard Maintainer: [Rossman360](https://github.com/rossman360)
+* Hardware Supported: Pro Micro, Elite-C
+* Hardware Availability: [Montsinger.net](https://montsinger.net)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make montsinger/rebound:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs) \ No newline at end of file
diff --git a/keyboards/montsinger/rebound/rebound.c b/keyboards/montsinger/rebound/rebound.c
new file mode 100644
index 000000000..fbb10be71
--- /dev/null
+++ b/keyboards/montsinger/rebound/rebound.c
@@ -0,0 +1 @@
+#include "rebound.h"
diff --git a/keyboards/montsinger/rebound/rebound.h b/keyboards/montsinger/rebound/rebound.h
new file mode 100644
index 000000000..0ba4c51ce
--- /dev/null
+++ b/keyboards/montsinger/rebound/rebound.h
@@ -0,0 +1,39 @@
+/* Copyright 2020 Ross Montsinger
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ * The first section contains all of the arguments representing the
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+#define LAYOUT_ortho_4x12( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,\
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B\
+ ) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B } \
+}
diff --git a/keyboards/montsinger/rebound/rules.mk b/keyboards/montsinger/rebound/rules.mk
new file mode 100644
index 000000000..efa313303
--- /dev/null
+++ b/keyboards/montsinger/rebound/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+LAYOUTS = ortho_4x12
+LAYOUTS_HAS_RGB=no
diff --git a/keyboards/moon/rules.mk b/keyboards/moon/rules.mk
index 3c67b3c28..b0628b37f 100644
--- a/keyboards/moon/rules.mk
+++ b/keyboards/moon/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# custom matrix setup
CUSTOM_MATRIX = yes
diff --git a/keyboards/mt40/rules.mk b/keyboards/mt40/rules.mk
index 338a83cc7..fa22bf61b 100644
--- a/keyboards/mt40/rules.mk
+++ b/keyboards/mt40/rules.mk
@@ -12,10 +12,10 @@ MCU = atmega32a
BOOTLOADER = bootloadHID
# build options
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= no # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ # nkro-doesnt-work
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
diff --git a/keyboards/mt980/rules.mk b/keyboards/mt980/rules.mk
index b3655bf72..02877c599 100644
--- a/keyboards/mt980/rules.mk
+++ b/keyboards/mt980/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/mxss/config.h b/keyboards/mxss/config.h
index 812f301d6..264caec97 100644
--- a/keyboards/mxss/config.h
+++ b/keyboards/mxss/config.h
@@ -21,12 +21,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x6060
+#define VENDOR_ID 0x4D78 // "Mx" -> MxBlue
+#define PRODUCT_ID 0x5353 // "SS" -> MxSS
#define DEVICE_VER 0x0001
#define MANUFACTURER MxBlue
#define PRODUCT MxSS
-#define DESCRIPTION Custom Polycarb Keyboard
+#define DESCRIPTION MxSS Polycarb Keyboard
/* key matrix size */
#define MATRIX_ROWS 5
@@ -56,6 +56,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
+// Just for posterity, define bootlite matrix pos
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
+
+// FLED config takes up 1 byte, stored color count takes 1, stored colors take up to 8
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 10
+
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
diff --git a/keyboards/mxss/keymaps/default/keymap.c b/keyboards/mxss/keymaps/default/keymap.c
index 17cebe0c8..b69d91df9 100644
--- a/keyboards/mxss/keymaps/default/keymap.c
+++ b/keyboards/mxss/keymaps/default/keymap.c
@@ -15,31 +15,32 @@
*/
#include QMK_KEYBOARD_H
+hs_set caps_color = { .hue = 0, .sat = 255 };
+
// Colors for layers
// Format: {hue, saturation}
// {0, 0} to turn off the LED
// Add additional rows to handle more layers
-const hs_set layer_colors[] = {
- [0] = {0, 0}, // Color for Layer 0
- [1] = {86, 255}, // Color for Layer 1
- [2] = {36, 255}, // Color for Layer 2
- [3] = {185, 255}, // Color for Layer 3
+hs_set layer_colors[4] = {
+ [0] = {.hue = 0, .sat = 0}, // Color for Layer 0
+ [1] = {.hue = 86, .sat = 255}, // Color for Layer 1
+ [2] = {.hue = 36, .sat = 255}, // Color for Layer 2
+ [3] = {.hue = 185, .sat = 255}, // Color for Layer 3
};
-const size_t lc_size = sizeof(layer_colors) / sizeof(uint16_t);
+size_t lc_size = sizeof(layer_colors) / sizeof(uint16_t);
// Use NEW_SAFE_RANGE to define new custom keycodes in order to not overwrite the ones used for front LED control
enum custom_keycodes {
- MY_KEYCODE = NEW_SAFE_RANGE,
+ MY_KEYCODE = NEW_SAFE_RANGE,
};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT( /* Base */
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPSLOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
LAYOUT( /* L1 */
diff --git a/keyboards/westfoxtrot/cypher/keymaps/default-iso/config.h b/keyboards/mxss/keymaps/via/config.h
index 41d70907e..7451a7be4 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/default-iso/config.h
+++ b/keyboards/mxss/keymaps/via/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 westfoxtrot
+/* Copyright 2018 Jumail Mundekkat / MxBlue
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,4 +16,4 @@
#pragma once
-// place overrides here
+#define LAYER_STATE_8BIT
diff --git a/keyboards/mxss/keymaps/via/keymap.c b/keyboards/mxss/keymaps/via/keymap.c
new file mode 100644
index 000000000..34e40592a
--- /dev/null
+++ b/keyboards/mxss/keymaps/via/keymap.c
@@ -0,0 +1,33 @@
+/* Copyright 2018 Jumail Mundekkat / MxBlue
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ LAYOUT_all( /* L0 */
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_CAPSLOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ LAYOUT_all( /* L1 */
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, FLED_VAD, FLED_VAI, FLED_MOD, RGB_VAI,
+ RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI
+ )
+};
diff --git a/keyboards/mxss/keymaps/via/rules.mk b/keyboards/mxss/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/mxss/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/mxss/mxss.c b/keyboards/mxss/mxss.c
index 42ecdbc46..48ea46641 100644
--- a/keyboards/mxss/mxss.c
+++ b/keyboards/mxss/mxss.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 Jumail Mundekkat / MxBlue
+/* Copyright 2020 Jumail Mundekkat / MxBlue
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -12,63 +12,29 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * EEPROM management code from ../cannonkeys/stm32f072/keyboard.c
*/
-
+
#include QMK_KEYBOARD_H
#include "tmk_core/common/eeprom.h"
#include "tmk_core/common/action_layer.h"
#include "rgblight.h"
+#include "via.h"
+#include "version.h" // for QMK_BUILDDATE used in EEPROM magic
-// Variables for controlling front LED application
-uint8_t fled_mode; // Mode for front LEDs
-uint8_t fled_val; // Brightness for front leds (0 - 255)
-LED_TYPE fleds[2]; // Front LED rgb values for indicator mode use
-
-// Predefined colors for layers
-// Format: {hue, saturation}
-// {0, 0} to turn off the LED
-// Add additional rows to handle more layers
-__attribute__ ((weak))
-const hs_set layer_colors[] = {
- [0] = {0, 0}, // Color for Layer 0
- [1] = {86, 255}, // Color for Layer 1
- [2] = {36, 255}, // Color for Layer 2
- [3] = {185, 255}, // Color for Layer 3
-};
-
-__attribute__ ((weak))
-const size_t lc_size = sizeof(layer_colors) / sizeof(uint16_t);
+void via_init_kb(void) {
+ fled_init();
+}
void matrix_init_kb(void) {
- // If EEPROM config exists, load it
- if (eeprom_is_valid()) {
- fled_config fled_conf;
- fled_conf.raw = eeprom_read_byte(EEPROM_FRONTLED_ADDR);
- fled_mode = fled_conf.mode;
- fled_val = fled_conf.val * FLED_VAL_STEP;
- // Else, default config
- } else {
- fled_mode = FLED_RGB;
- fled_val = 10 * FLED_VAL_STEP;
- eeprom_update_conf(); // Store default config to EEPROM
- }
-
- // Set default values for leds
- setrgb(0, 0, 0, &fleds[0]);
- setrgb(0, 0, 0, &fleds[1]);
-
- // Handle lighting for indicator mode
- if (fled_mode == FLED_INDI) {
- // Enable capslock led if enabled on host
- if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))
- sethsv(FLED_CAPS_H, FLED_CAPS_S, fled_val, &fleds[0]);
-
- // Determine and set colour of layer LED according to current layer
- // if hue = sat = 0, leave LED off
- uint8_t layer = biton32(layer_state);
- if (layer < lc_size && !(layer_colors[layer].hue == 0 && layer_colors[layer].hue == 0))
- sethsv(layer_colors[layer].hue, layer_colors[layer].sat, fled_val, &fleds[1]);
- }
+ // If VIA is disabled, we still need to load settings
+ // Call via_init_kb() the same way as via_init(), with setting
+ // EEPROM valid afterwards.
+#ifndef VIA_ENABLE
+ fled_init();
+ via_eeprom_set_valid(true);
+#endif // VIA_ENABLE
matrix_init_user();
}
@@ -82,132 +48,35 @@ void matrix_scan_kb(void) {
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// Handle custom keycodes for front LED operation
- switch (keycode) {
- case FLED_MOD: // Change between front LED operation modes (off, indicator, RGB)
- if (record->event.pressed)
- fled_mode_cycle();
- break;
-
- case FLED_VAI: // Increase the brightness of the front LEDs by FLED_VAL_STEP
- if (record->event.pressed)
- fled_val_increase();
- break;
-
- case FLED_VAD: // Decrease the brightness of the front LEDs by FLED_VAL_STEP
- if (record->event.pressed)
- fled_val_decrease();
- break;
-
- default:
- break; // Process all other keycodes normally
- }
-
+ process_record_fled(keycode, record);
return process_record_user(keycode, record);
}
-void led_set_kb(uint8_t usb_led) {
- // Set indicator LED appropriately, whether it is used or not
- if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- sethsv(FLED_CAPS_H, FLED_CAPS_S, fled_val, &fleds[0]);
- } else {
- setrgb(0, 0, 0, &fleds[0]);
- }
-
- rgblight_set();
- led_set_user(usb_led);
-}
-
-uint32_t layer_state_set_kb(uint32_t state) {
- // Determine and set colour of layer LED according to current layer
- // if hue = sat = 0, leave LED off
- uint8_t layer = biton32(state);
-
- if (layer < lc_size && !(layer_colors[layer].hue == 0 && layer_colors[layer].hue == 0))
- sethsv(layer_colors[layer].hue, layer_colors[layer].sat, fled_val, &fleds[1]);
- else
- setrgb(0, 0, 0, &fleds[1]);
-
- return state;
-}
-
-// EEPROM Management
-
-// Test if magic value is present at expected location
-bool eeprom_is_valid(void)
-{
- return (eeprom_read_word(EEPROM_MAGIC_ADDR) == EEPROM_MAGIC);
-}
-
-// Set magic value at expected location
-void eeprom_set_valid(bool valid)
-{
- eeprom_update_word(EEPROM_MAGIC_ADDR, valid ? EEPROM_MAGIC : 0xFFFF);
+bool led_update_kb(led_t led_state) {
+ fled_lock_update(led_state);
+ return led_update_user(led_state);
}
-// Store current front led config in EEPROM
-void eeprom_update_conf(void)
-{
- // Create storage struct and set values
- fled_config conf;
- conf.mode = fled_mode;
-
- // Small hack to ensure max value is stored correctly
- if (fled_val == 255)
- conf.val = 256 / FLED_VAL_STEP;
- else
- conf.val = fled_val / FLED_VAL_STEP;
-
- // Set magic value and store config
- eeprom_set_valid(true);
- eeprom_update_byte(EEPROM_FRONTLED_ADDR, conf.raw);
+layer_state_t layer_state_set_kb(layer_state_t state) {
+ fled_layer_update(state);
+ return layer_state_set_user(state);
}
-// Custom keycode functions
+// Fallback eeprom functions if VIA is not enabled
+#ifndef VIA_ENABLE
-void fled_mode_cycle(void)
+// Sets VIA/keyboard level usage of EEPROM to valid/invalid
+// Keyboard level code (eg. via_init_kb()) should not call this
+void via_eeprom_set_valid(bool valid)
{
- // FLED -> FLED_RGB -> FLED_INDI
- switch (fled_mode) {
- case FLED_OFF:
- fled_mode = FLED_RGB;
- break;
-
- case FLED_RGB:
- fled_mode = FLED_INDI;
- break;
-
- case FLED_INDI:
- fled_mode = FLED_OFF;
- break;
- }
-
- // Update stored config
- eeprom_update_conf();
- rgblight_set();
+ char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54"
+ uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F );
+ uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F );
+ uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F );
+
+ eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0, valid ? magic0 : 0xFF);
+ eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1, valid ? magic1 : 0xFF);
+ eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2, valid ? magic2 : 0xFF);
}
-void fled_val_increase(void)
-{
- // Increase val by FLED_VAL_STEP, handling the upper edge case
- if (fled_val + FLED_VAL_STEP > 255)
- fled_val = 255;
- else
- fled_val += FLED_VAL_STEP;
-
- // Update stored config
- eeprom_update_conf();
- rgblight_set();
-}
-
-void fled_val_decrease(void)
-{
- // Decrease val by FLED_VAL_STEP, handling the lower edge case
- if (fled_val - FLED_VAL_STEP > 255)
- fled_val = 255;
- else
- fled_val -= FLED_VAL_STEP;
-
- // Update stored config
- eeprom_update_conf();
- rgblight_set();
-}
+#endif
diff --git a/keyboards/mxss/mxss.h b/keyboards/mxss/mxss.h
index 3572a19cd..4074d411c 100644
--- a/keyboards/mxss/mxss.h
+++ b/keyboards/mxss/mxss.h
@@ -13,8 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef MXSS_H
-#define MXSS_H
+#pragma once
#include "quantum.h"
#include "mxss_frontled.h"
@@ -204,4 +203,18 @@
{ k40, k41, k42, k43, KC_NO, KC_NO, k46, KC_NO, k48, KC_NO, k4A, k4B, k4C, k4D, k4E }, \
}
-#endif
+// All the gubs
+#define LAYOUT_all( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
+ k40, k41, k42, k43, k46, k48, k4A, k4B, k4C, k4D, k4E \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, k43, KC_NO, KC_NO, k46, KC_NO, k48, KC_NO, k4A, k4B, k4C, k4D, k4E }, \
+}
diff --git a/keyboards/mxss/mxss_frontled.c b/keyboards/mxss/mxss_frontled.c
new file mode 100644
index 000000000..3f19747d2
--- /dev/null
+++ b/keyboards/mxss/mxss_frontled.c
@@ -0,0 +1,264 @@
+/* Copyright 2020 Jumail Mundekkat / MxBlue
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Extended from the work done by fcoury: https://github.com/qmk/qmk_firmware/pull/4915
+ */
+
+#include "mxss_frontled.h"
+#include "tmk_core/common/eeprom.h"
+#include "rgblight.h"
+#include "via.h"
+#include "version.h" // for QMK_BUILDDATE used in EEPROM magic
+
+// Variables for controlling front LED application
+uint8_t fled_mode; // Mode for front LEDs
+uint8_t fled_val; // Brightness for front leds (0 - 255)
+LED_TYPE fleds[2]; // Front LED rgb values for indicator mode use
+
+// Layer indicator colors
+__attribute__ ((weak))
+hs_set layer_colors[FRONTLED_COLOR_MAXCNT];
+
+// Caps lock indicator color
+__attribute__ ((weak))
+hs_set caps_color;
+
+__attribute__ ((weak))
+size_t lc_size = sizeof(layer_colors) / sizeof(hs_set);
+
+void fled_init(void) {
+ // If EEPROM config exists, load it
+ // If VIA EEPROM exists, FLED config should too
+ if (via_eeprom_is_valid()) {
+ fled_load_conf();
+ // Else, default config
+ } else {
+ // Default mode/brightness
+ fled_mode = FLED_RGB;
+ fled_val = 10 * FLED_VAL_STEP;
+
+ // Default colors
+ caps_color.hue = 0;
+ caps_color.sat = 255;
+ layer_colors[0].hue = 0;
+ layer_colors[0].sat = 0;
+ layer_colors[1].hue = 86;
+ layer_colors[1].sat = 255;
+ layer_colors[2].hue = 36;
+ layer_colors[2].sat = 255;
+ layer_colors[3].hue = 185;
+ layer_colors[3].sat = 255;
+
+ fled_update_conf(); // Store default config to EEPROM
+ }
+
+ // Set default values for leds
+ setrgb(0, 0, 0, &fleds[0]);
+ setrgb(0, 0, 0, &fleds[1]);
+
+ // Handle lighting for indicator mode
+ if (fled_mode == FLED_INDI) {
+ fled_lock_update(host_keyboard_led_state());
+ fled_layer_update(layer_state);
+ }
+}
+
+void process_record_fled(uint16_t keycode, keyrecord_t *record) {
+ // Handle custom keycodes for front LED operation
+ switch (keycode) {
+ case FLED_MOD: // Change between front LED operation modes (off, indicator, RGB)
+ if (record->event.pressed)
+ fled_mode_cycle();
+ break;
+
+ case FLED_VAI: // Increase the brightness of the front LEDs by FLED_VAL_STEP
+ if (record->event.pressed)
+ fled_val_increase();
+ break;
+
+ case FLED_VAD: // Decrease the brightness of the front LEDs by FLED_VAL_STEP
+ if (record->event.pressed)
+ fled_val_decrease();
+ break;
+
+ default:
+ break; // Process all other keycodes normally
+ }
+
+ return;
+}
+
+void fled_load_conf(void) {
+ // Load config
+ fled_config fled_conf;
+ fled_conf.raw = eeprom_read_byte(FRONTLED_CONF_ADDR);
+ fled_mode = fled_conf.mode;
+ fled_val = fled_conf.val * FLED_VAL_STEP;
+
+ // Load color data
+ uint8_t stored_cnt = eeprom_read_byte(FRONTLED_COLOR_CNT_ADDR);
+ uint16_t *color_ptr = FRONTLED_COLOR_ADDR;
+ caps_color.raw = eeprom_read_word(color_ptr); // Should always store at least 1 color
+ for (uint8_t i = 1; i < stored_cnt; i++) {
+ if (i == lc_size) // Can't load more layers than we have available
+ break;
+ layer_colors[i].raw = eeprom_read_word(&color_ptr[i]);
+ }
+ layer_colors[0].raw = 0; // hue = sat = 0 for layer 0
+}
+
+// Store current front led config in EEPROM
+void fled_update_conf(void)
+{
+ // Create storage struct and set values
+ fled_config conf;
+ conf.mode = fled_mode;
+
+ // Small hack to ensure max value is stored correctly
+ if (fled_val == 255)
+ conf.val = 256 / FLED_VAL_STEP;
+ else
+ conf.val = fled_val / FLED_VAL_STEP;
+
+ // Store config
+ eeprom_update_byte(FRONTLED_CONF_ADDR, conf.raw);
+
+ // Store color data
+ uint16_t *color_ptr = FRONTLED_COLOR_ADDR;
+ eeprom_update_word(color_ptr, caps_color.raw);
+ // Start from 1, layer 0 is not modifiable and therefore not persisted
+ uint8_t i = 1;
+ for (; i < lc_size; i++) {
+ if (i == FRONTLED_COLOR_MAXCNT) // Can't store more than the EEPROM we have available
+ break;
+ eeprom_update_word(&color_ptr[i], layer_colors[i].raw);
+ }
+ eeprom_update_byte(FRONTLED_COLOR_CNT_ADDR, i); // For safety, store the count of colors stored
+}
+
+// Custom keycode functions
+
+void fled_mode_cycle(void)
+{
+ // FLED -> FLED_RGB -> FLED_INDI
+ switch (fled_mode) {
+ case FLED_OFF:
+ fled_mode = FLED_RGB;
+ rgblight_timer_enable();
+ break;
+
+ case FLED_RGB:
+ fled_mode = FLED_INDI;
+ break;
+
+ case FLED_INDI:
+ fled_mode = FLED_OFF;
+ break;
+ }
+
+ // Update stored config
+ fled_update_conf();
+ rgblight_set();
+}
+
+void fled_val_increase(void)
+{
+ // Increase val by FLED_VAL_STEP, handling the upper edge case
+ if (fled_val + FLED_VAL_STEP > 255)
+ fled_val = 255;
+ else
+ fled_val += FLED_VAL_STEP;
+
+ // Update stored config
+ fled_update_conf();
+ rgblight_set();
+}
+
+void fled_val_decrease(void)
+{
+ // Decrease val by FLED_VAL_STEP, handling the lower edge case
+ if (fled_val - FLED_VAL_STEP > 255)
+ fled_val = 255;
+ else
+ fled_val -= FLED_VAL_STEP;
+
+ // Update stored config
+ fled_update_conf();
+ rgblight_set();
+}
+
+void fled_layer_update(layer_state_t state) {
+ // Determine and set colour of layer LED according to current layer
+ // if hue = sat = 0, leave LED off
+ uint8_t layer = get_highest_layer(state);
+
+ if (layer < lc_size && !(layer_colors[layer].hue == 0 && layer_colors[layer].sat == 0)) {
+ sethsv(layer_colors[layer].hue, layer_colors[layer].sat, fled_val, &fleds[1]);
+ } else {
+ setrgb(0, 0, 0, &fleds[1]);
+ }
+}
+
+void fled_lock_update(led_t led_state) {
+ // Set indicator LED appropriately, whether it is used or not
+ if (led_state.caps_lock) {
+ sethsv(caps_color.hue, caps_color.sat, fled_val, &fleds[0]);
+ } else {
+ setrgb(0, 0, 0, &fleds[0]);
+ }
+
+ rgblight_set();
+}
+
+void set_fled_layer_color(uint8_t layer, hs_set hs) {
+ // Update layer colors and refresh LEDs
+ layer_colors[layer] = hs;
+ fled_layer_update(layer_state);
+ fled_update_conf();
+}
+
+hs_set get_fled_layer_color(uint8_t layer) {
+ return layer_colors[layer];
+}
+
+void set_fled_caps_color(hs_set hs) {
+ // Update caplock color and refresh LEDs
+ caps_color = hs;
+ fled_lock_update(host_keyboard_led_state());
+ fled_update_conf();
+}
+
+hs_set get_fled_caps_color(void) {
+ return caps_color;
+}
+
+// Fallback eeprom functions if VIA is not enabled
+#ifndef VIA_ENABLE
+
+// Can be called in an overriding via_init_kb() to test if keyboard level code usage of
+// EEPROM is invalid and use/save defaults.
+bool via_eeprom_is_valid(void)
+{
+ char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54"
+ uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F );
+ uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F );
+ uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F );
+
+ return (eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0 ) == magic0 &&
+ eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1 ) == magic1 &&
+ eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2 ) == magic2 );
+}
+
+#endif
diff --git a/keyboards/mxss/mxss_frontled.h b/keyboards/mxss/mxss_frontled.h
index 1350266ba..366066865 100644
--- a/keyboards/mxss/mxss_frontled.h
+++ b/keyboards/mxss/mxss_frontled.h
@@ -1,4 +1,4 @@
-/* Copyright 2018 Jumail Mundekkat / MxBlue
+/* Copyright 2020 Jumail Mundekkat / MxBlue
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,11 +16,12 @@
// EEPROM management code taken from Wilba6582
// https://github.com/Wilba6582/qmk_firmware/blob/zeal60/keyboards/zeal60/zeal_eeprom.h
-
-#ifndef MXSS_FRONTLED_H
-#define MXSS_FRONTLED_H
+#pragma once
+
+#include "quantum.h"
#include "quantum_keycodes.h"
+#include "via.h"
// RGBLED index for front LEDs
#define RGBLIGHT_FLED1 14
@@ -29,13 +30,13 @@
// Brightness increase step for front LEDs
#define FLED_VAL_STEP 8
-// QMK never uses more then 32bytes of EEPROM, so our region starts there
-// Magic value to verify the state of the EEPROM
-#define EEPROM_MAGIC 0xC3E7
-#define EEPROM_MAGIC_ADDR ((void*)32)
-
// Front LED settings
-#define EEPROM_FRONTLED_ADDR ((void*)34)
+#define FRONTLED_CONF_ADDR ((uint8_t*) VIA_EEPROM_CUSTOM_CONFIG_ADDR)
+#define FRONTLED_COLOR_CNT_ADDR (FRONTLED_CONF_ADDR + 1)
+#define FRONTLED_COLOR_ADDR ((uint16_t*)(FRONTLED_COLOR_CNT_ADDR + 1))
+
+// No point persisting more 4, VIA only allows editing of 3 + 1 for caps
+#define FRONTLED_COLOR_MAXCNT 4
// Modes for front LEDs
#define FLED_OFF 0b00
@@ -43,10 +44,6 @@
#define FLED_RGB 0b10
#define FLED_UNDEF 0b11
-// Hard-coded color for capslock indicator in FLED_INDI mode, H:0% S:100% = Red
-#define FLED_CAPS_H 0
-#define FLED_CAPS_S 255
-
// Config storage format for EEPROM
typedef union {
uint8_t raw;
@@ -57,25 +54,35 @@ typedef union {
} fled_config;
// Structure to store hue and saturation values
-typedef struct _hs_set {
- uint16_t hue;
- uint8_t sat;
+typedef union {
+ uint16_t raw;
+ struct {
+ uint8_t hue;
+ uint8_t sat;
+ };
} hs_set;
// Custom keycodes for front LED control
enum fled_keycodes {
- FLED_MOD = SAFE_RANGE,
- FLED_VAI,
- FLED_VAD,
- NEW_SAFE_RANGE // define a new safe range
+ FLED_MOD = USER00, // USER00 = VIA custom keycode start
+ FLED_VAI,
+ FLED_VAD,
+ NEW_SAFE_RANGE // define a new safe range
};
-bool eeprom_is_valid(void); // Check if EEPROM has been set up
-void eeprom_set_valid(bool valid); // Change validity state of EEPROM
-void eeprom_update_conf(void); // Store current front LED config to EEPROM
+void fled_init(void); // Run init functions for front LEDs
+void process_record_fled(uint16_t keycode, keyrecord_t* record); // Process keycodes for front LEDs
+void fled_load_conf(void); // Load front LED config from EEPROM
+void fled_update_conf(void); // Store current front LED config to EEPROM
void fled_mode_cycle(void); // Cycle between the 3 modes for the front LEDs
void fled_val_increase(void); // Increase the brightness of the front LEDs
void fled_val_decrease(void); // Decrease the brightness of the front LEDs
-#endif //MXSS_FRONTLED_H \ No newline at end of file
+void fled_layer_update(layer_state_t state); // Process layer update for front LEDs
+void fled_lock_update(led_t led_state); // Process lock update for front LEDs
+
+void set_fled_layer_color(uint8_t layer, hs_set hs); // Set color for a given layer
+void set_fled_caps_color(hs_set hs); // Set color for the capslock indicator
+hs_set get_fled_caps_color(void); // Get color for the capslock indicator
+hs_set get_fled_layer_color(uint8_t layer); // Get color for a given layer
diff --git a/keyboards/mxss/readme.md b/keyboards/mxss/readme.md
index 181b6366a..f35709ade 100644
--- a/keyboards/mxss/readme.md
+++ b/keyboards/mxss/readme.md
@@ -2,6 +2,11 @@
![MxSS - Polycarb 65% Kit for MX/SMK](https://i.imgur.com/WDTWcmU.jpg)
+### Important Note:
+**This PCB supports the VIA configurator, and this is the recommended way to configure the keymap on this keyboard. Building the firmware should only be necessary if you would like to change the colours of the front LEDs in indicator mode.**
+
+**For more information about the VIA configurator, [see here](https://caniusevia.com/).**
+
### Information:
- Case: Frosted Polycarbonate, CNC milled
@@ -51,4 +56,4 @@ Colors for FLED_INDI mode are hardcoded as hue/saturation values, the caps lock
# Further Notes
- As SAFE_RANGE is used for defining the custom keycodes seen above, please use NEW_SAFE_RANGE as the starting value for any custom keycodes in keymap.c, as per the example. \ No newline at end of file
+ As SAFE_RANGE is used for defining the custom keycodes seen above, please use NEW_SAFE_RANGE as the starting value for any custom keycodes in keymap.c, as per the example.
diff --git a/keyboards/mxss/rgblight.c b/keyboards/mxss/rgblight.c
index 73f94f3ab..9e17510b5 100644
--- a/keyboards/mxss/rgblight.c
+++ b/keyboards/mxss/rgblight.c
@@ -14,814 +14,1166 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <math.h>
-#include <avr/eeprom.h>
-#include <avr/interrupt.h>
-#include <util/delay.h>
+#include <string.h>
+#ifdef __AVR__
+# include <avr/eeprom.h>
+# include <avr/interrupt.h>
+#endif
+#ifdef STM32_EEPROM_ENABLE
+# include "hal.h"
+# include "eeprom.h"
+# include "eeprom_stm32.h"
+#endif
+#include "wait.h"
#include "progmem.h"
#include "timer.h"
#include "rgblight.h"
+#include "color.h"
#include "debug.h"
#include "led_tables.h"
+#include "lib/lib8tion/lib8tion.h"
+#ifdef VELOCIKEY_ENABLE
+# include "velocikey.h"
+#endif
+// MxSS custom
#include "mxss_frontled.h"
-#ifndef RGBLIGHT_LIMIT_VAL
-#define RGBLIGHT_LIMIT_VAL 255
+#ifdef RGBLIGHT_SPLIT
+/* for split keyboard */
+# define RGBLIGHT_SPLIT_SET_CHANGE_MODE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_MODE
+# define RGBLIGHT_SPLIT_SET_CHANGE_HSVS rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_HSVS
+# define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS rgblight_status.change_flags |= (RGBLIGHT_STATUS_CHANGE_MODE | RGBLIGHT_STATUS_CHANGE_HSVS)
+# define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_TIMER
+# define RGBLIGHT_SPLIT_ANIMATION_TICK rgblight_status.change_flags |= RGBLIGHT_STATUS_ANIMATION_TICK
+#else
+# define RGBLIGHT_SPLIT_SET_CHANGE_MODE
+# define RGBLIGHT_SPLIT_SET_CHANGE_HSVS
+# define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS
+# define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE
+# define RGBLIGHT_SPLIT_ANIMATION_TICK
#endif
-#define MIN(a,b) (((a)<(b))?(a):(b))
-#define MAX(a,b) (((a)>(b))?(a):(b))
-
-#define LED_PTRTOIND(ptr) ((uint32_t) (ptr - led)/sizeof(LED_TYPE))
-
-void copyrgb(LED_TYPE *src, LED_TYPE *dst);
+#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_SINGLE_DYNAMIC(sym)
+#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_MULTI_DYNAMIC(sym)
+#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##sym,
+#define _RGBM_TMP_DYNAMIC(sym, msym)
+static uint8_t static_effect_table[] = {
+#include "rgblight_modes.h"
+};
+
+#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_SINGLE_DYNAMIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_MULTI_DYNAMIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##msym,
+#define _RGBM_TMP_DYNAMIC(sym, msym) RGBLIGHT_MODE_##msym,
+static uint8_t mode_base_table[] = {
+ 0, // RGBLIGHT_MODE_zero
+#include "rgblight_modes.h"
+};
+
+static inline int is_static_effect(uint8_t mode) { return memchr(static_effect_table, mode, sizeof(static_effect_table)) != NULL; }
+
+#ifdef RGBLIGHT_LED_MAP
+const uint8_t led_map[] PROGMEM = RGBLIGHT_LED_MAP;
+#endif
-__attribute__ ((weak))
-const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
-__attribute__ ((weak))
-const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
-__attribute__ ((weak))
-const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
-__attribute__ ((weak))
-const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
-__attribute__ ((weak))
-const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
-__attribute__ ((weak))
-const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
-__attribute__ ((weak))
-const uint16_t RGBLED_RGBTEST_INTERVALS[] PROGMEM = {1024};
+#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
+__attribute__((weak)) const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
+#endif
rgblight_config_t rgblight_config;
+rgblight_status_t rgblight_status = {.timer_enabled = false};
+bool is_rgblight_initialized = false;
+
+#ifdef RGBLIGHT_USE_TIMER
+animation_status_t animation_status = {};
+#endif
+#ifndef LED_ARRAY
LED_TYPE led[RGBLED_NUM];
+# define LED_ARRAY led
+#endif
-bool rgblight_timer_enabled = false;
+static uint8_t clipping_start_pos = 0;
+static uint8_t clipping_num_leds = RGBLED_NUM;
+static uint8_t effect_start_pos = 0;
+static uint8_t effect_end_pos = RGBLED_NUM;
+static uint8_t effect_num_leds = RGBLED_NUM;
+// MxSS custom
extern uint8_t fled_mode;
extern uint8_t fled_val;
extern LED_TYPE fleds[2];
hs_set fled_hs[2];
-void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
- uint8_t r = 0, g = 0, b = 0, base, color;
-
- // if led is front leds, cache the hue and sat values
- if (led1 == &led[RGBLIGHT_FLED1]) {
- fled_hs[0].hue = hue;
- fled_hs[0].sat = sat;
- } else if (led1 == &led[RGBLIGHT_FLED2]) {
- fled_hs[1].hue = hue;
- fled_hs[1].sat = sat;
- }
+void copyrgb(LED_TYPE *src, LED_TYPE *dst) {
+ (*dst).r = (*src).r;
+ (*dst).g = (*src).g;
+ (*dst).b = (*src).b;
+}
- if (val > RGBLIGHT_LIMIT_VAL) {
- val=RGBLIGHT_LIMIT_VAL; // limit the val
- }
+void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds) {
+ clipping_start_pos = start_pos;
+ clipping_num_leds = num_leds;
+}
- if (sat == 0) { // Acromatic color (gray). Hue doesn't mind.
- r = val;
- g = val;
- b = val;
- } else {
- base = ((255 - sat) * val) >> 8;
- color = (val - base) * (hue % 60) / 60;
-
- switch (hue / 60) {
- case 0:
- r = val;
- g = base + color;
- b = base;
- break;
- case 1:
- r = val - color;
- g = val;
- b = base;
- break;
- case 2:
- r = base;
- g = val;
- b = base + color;
- break;
- case 3:
- r = base;
- g = val - color;
- b = val;
- break;
- case 4:
- r = base + color;
- g = base;
- b = val;
- break;
- case 5:
- r = val;
- g = base;
- b = val - color;
- break;
- }
- }
- r = pgm_read_byte(&CIE1931_CURVE[r]);
- g = pgm_read_byte(&CIE1931_CURVE[g]);
- b = pgm_read_byte(&CIE1931_CURVE[b]);
+void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) {
+ if (start_pos >= RGBLED_NUM) return;
+ if (start_pos + num_leds > RGBLED_NUM) return;
+ effect_start_pos = start_pos;
+ effect_end_pos = start_pos + num_leds;
+ effect_num_leds = num_leds;
+}
- setrgb(r, g, b, led1);
+void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
+ HSV hsv = {hue, sat, val};
+ // MxSS custom
+ // if led is front leds, cache the hue and sat values
+ if (led1 == &led[RGBLIGHT_FLED1]) {
+ fled_hs[0].hue = hue;
+ fled_hs[0].sat = sat;
+ } else if (led1 == &led[RGBLIGHT_FLED2]) {
+ fled_hs[1].hue = hue;
+ fled_hs[1].sat = sat;
+ } RGB rgb = hsv_to_rgb(hsv);
+ setrgb(rgb.r, rgb.g, rgb.b, led1);
}
+void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1); }
+
void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) {
- (*led1).r = r;
- (*led1).g = g;
- (*led1).b = b;
+ (*led1).r = r;
+ (*led1).g = g;
+ (*led1).b = b;
+#ifdef RGBW
+ (*led1).w = 0;
+#endif
}
-void copyrgb(LED_TYPE *src, LED_TYPE *dst) {
- (*dst).r = (*src).r;
- (*dst).g = (*src).g;
- (*dst).b = (*src).b;
+void rgblight_check_config(void) {
+ /* Add some out of bound checks for RGB light config */
+
+ if (rgblight_config.mode < RGBLIGHT_MODE_STATIC_LIGHT) {
+ rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
+ } else if (rgblight_config.mode > RGBLIGHT_MODES) {
+ rgblight_config.mode = RGBLIGHT_MODES;
+ }
+
+ if (rgblight_config.val > RGBLIGHT_LIMIT_VAL) {
+ rgblight_config.val = RGBLIGHT_LIMIT_VAL;
+ }
}
uint32_t eeconfig_read_rgblight(void) {
- return eeprom_read_dword(EECONFIG_RGBLIGHT);
+#if defined(__AVR__) || defined(STM32_EEPROM_ENABLE) || defined(PROTOCOL_ARM_ATSAM) || defined(EEPROM_SIZE)
+ return eeprom_read_dword(EECONFIG_RGBLIGHT);
+#else
+ return 0;
+#endif
}
+
void eeconfig_update_rgblight(uint32_t val) {
- eeprom_update_dword(EECONFIG_RGBLIGHT, val);
+#if defined(__AVR__) || defined(STM32_EEPROM_ENABLE) || defined(PROTOCOL_ARM_ATSAM) || defined(EEPROM_SIZE)
+ rgblight_check_config();
+ eeprom_update_dword(EECONFIG_RGBLIGHT, val);
+#endif
}
+
void eeconfig_update_rgblight_default(void) {
- dprintf("eeconfig_update_rgblight_default\n");
- rgblight_config.enable = 1;
- rgblight_config.mode = 1;
- rgblight_config.hue = 0;
- rgblight_config.sat = 255;
- rgblight_config.val = RGBLIGHT_LIMIT_VAL;
- rgblight_config.speed = 0;
- eeconfig_update_rgblight(rgblight_config.raw);
+ rgblight_config.enable = 1;
+ rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
+ rgblight_config.hue = 0;
+ rgblight_config.sat = UINT8_MAX;
+ rgblight_config.val = RGBLIGHT_LIMIT_VAL;
+ rgblight_config.speed = 0;
+ RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
+ eeconfig_update_rgblight(rgblight_config.raw);
}
+
void eeconfig_debug_rgblight(void) {
- dprintf("rgblight_config eprom\n");
- dprintf("rgblight_config.enable = %d\n", rgblight_config.enable);
- dprintf("rghlight_config.mode = %d\n", rgblight_config.mode);
- dprintf("rgblight_config.hue = %d\n", rgblight_config.hue);
- dprintf("rgblight_config.sat = %d\n", rgblight_config.sat);
- dprintf("rgblight_config.val = %d\n", rgblight_config.val);
- dprintf("rgblight_config.speed = %d\n", rgblight_config.speed);
+ dprintf("rgblight_config EEPROM:\n");
+ dprintf("rgblight_config.enable = %d\n", rgblight_config.enable);
+ dprintf("rghlight_config.mode = %d\n", rgblight_config.mode);
+ dprintf("rgblight_config.hue = %d\n", rgblight_config.hue);
+ dprintf("rgblight_config.sat = %d\n", rgblight_config.sat);
+ dprintf("rgblight_config.val = %d\n", rgblight_config.val);
+ dprintf("rgblight_config.speed = %d\n", rgblight_config.speed);
}
void rgblight_init(void) {
- debug_enable = 1; // Debug ON!
- dprintf("rgblight_init called.\n");
- dprintf("rgblight_init start!\n");
- if (!eeconfig_is_enabled()) {
- dprintf("rgblight_init eeconfig is not enabled.\n");
- eeconfig_init();
- eeconfig_update_rgblight_default();
- }
- rgblight_config.raw = eeconfig_read_rgblight();
- if (!rgblight_config.mode) {
- dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n");
- eeconfig_update_rgblight_default();
+ /* if already initialized, don't do it again.
+ If you must do it again, extern this and set to false, first.
+ This is a dirty, dirty hack until proper hooks can be added for keyboard startup. */
+ if (is_rgblight_initialized) {
+ return;
+ }
+
+ dprintf("rgblight_init called.\n");
+ dprintf("rgblight_init start!\n");
+ if (!eeconfig_is_enabled()) {
+ dprintf("rgblight_init eeconfig is not enabled.\n");
+ eeconfig_init();
+ eeconfig_update_rgblight_default();
+ }
rgblight_config.raw = eeconfig_read_rgblight();
- }
- eeconfig_debug_rgblight(); // display current eeprom values
+ RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
+ if (!rgblight_config.mode) {
+ dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n");
+ eeconfig_update_rgblight_default();
+ rgblight_config.raw = eeconfig_read_rgblight();
+ }
+ rgblight_check_config();
- #ifdef RGBLIGHT_ANIMATIONS
- rgblight_timer_init(); // setup the timer
- #endif
+ eeconfig_debug_rgblight(); // display current eeprom values
- if (rgblight_config.enable) {
- rgblight_mode_noeeprom(rgblight_config.mode);
- }
+#ifdef RGBLIGHT_USE_TIMER
+ rgblight_timer_init(); // setup the timer
+#endif
+
+ if (rgblight_config.enable) {
+ rgblight_mode_noeeprom(rgblight_config.mode);
+ }
+
+ is_rgblight_initialized = true;
}
+uint32_t rgblight_read_dword(void) { return rgblight_config.raw; }
+
void rgblight_update_dword(uint32_t dword) {
- rgblight_config.raw = dword;
- eeconfig_update_rgblight(rgblight_config.raw);
- if (rgblight_config.enable)
- rgblight_mode(rgblight_config.mode);
- else {
- #ifdef RGBLIGHT_ANIMATIONS
- rgblight_timer_disable();
- #endif
- rgblight_set();
- }
+ RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
+ rgblight_config.raw = dword;
+ if (rgblight_config.enable)
+ rgblight_mode_noeeprom(rgblight_config.mode);
+ else {
+#ifdef RGBLIGHT_USE_TIMER
+ rgblight_timer_disable();
+#endif
+ rgblight_set();
+ }
}
void rgblight_increase(void) {
- uint8_t mode = 0;
- if (rgblight_config.mode < RGBLIGHT_MODES) {
- mode = rgblight_config.mode + 1;
- }
- rgblight_mode(mode);
+ uint8_t mode = 0;
+ if (rgblight_config.mode < RGBLIGHT_MODES) {
+ mode = rgblight_config.mode + 1;
+ }
+ rgblight_mode(mode);
}
void rgblight_decrease(void) {
- uint8_t mode = 0;
- // Mode will never be < 1. If it ever is, eeprom needs to be initialized.
- if (rgblight_config.mode > 1) {
- mode = rgblight_config.mode - 1;
- }
- rgblight_mode(mode);
+ uint8_t mode = 0;
+ // Mode will never be < 1. If it ever is, eeprom needs to be initialized.
+ if (rgblight_config.mode > RGBLIGHT_MODE_STATIC_LIGHT) {
+ mode = rgblight_config.mode - 1;
+ }
+ rgblight_mode(mode);
}
-void rgblight_step(void) {
- uint8_t mode = 0;
- mode = rgblight_config.mode + 1;
- if (mode > RGBLIGHT_MODES) {
- mode = 1;
- }
- rgblight_mode(mode);
+void rgblight_step_helper(bool write_to_eeprom) {
+ uint8_t mode = 0;
+ mode = rgblight_config.mode + 1;
+ if (mode > RGBLIGHT_MODES) {
+ mode = 1;
+ }
+ rgblight_mode_eeprom_helper(mode, write_to_eeprom);
}
-void rgblight_step_reverse(void) {
- uint8_t mode = 0;
- mode = rgblight_config.mode - 1;
- if (mode < 1) {
- mode = RGBLIGHT_MODES;
- }
- rgblight_mode(mode);
+void rgblight_step_noeeprom(void) { rgblight_step_helper(false); }
+void rgblight_step(void) { rgblight_step_helper(true); }
+void rgblight_step_reverse_helper(bool write_to_eeprom) {
+ uint8_t mode = 0;
+ mode = rgblight_config.mode - 1;
+ if (mode < 1) {
+ mode = RGBLIGHT_MODES;
+ }
+ rgblight_mode_eeprom_helper(mode, write_to_eeprom);
}
+void rgblight_step_reverse_noeeprom(void) { rgblight_step_reverse_helper(false); }
+void rgblight_step_reverse(void) { rgblight_step_reverse_helper(true); }
uint8_t rgblight_get_mode(void) {
- if (!rgblight_config.enable) {
- return false;
- }
+ if (!rgblight_config.enable) {
+ return false;
+ }
- return rgblight_config.mode;
+ return rgblight_config.mode;
}
void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
- if (!rgblight_config.enable) {
- return;
- }
- if (mode < 1) {
- rgblight_config.mode = 1;
- } else if (mode > RGBLIGHT_MODES) {
- rgblight_config.mode = RGBLIGHT_MODES;
- } else {
- rgblight_config.mode = mode;
- }
- if (write_to_eeprom) {
- eeconfig_update_rgblight(rgblight_config.raw);
- xprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode);
- } else {
- xprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode);
- }
- if (rgblight_config.mode == 1) {
- #ifdef RGBLIGHT_ANIMATIONS
- rgblight_timer_disable();
- #endif
- } else if ((rgblight_config.mode >= 2 && rgblight_config.mode <= 24) ||
- rgblight_config.mode == 35 ) {
- // MODE 2-5, breathing
- // MODE 6-8, rainbow mood
- // MODE 9-14, rainbow swirl
- // MODE 15-20, snake
- // MODE 21-23, knight
- // MODE 24, xmas
- // MODE 35 RGB test
-
- #ifdef RGBLIGHT_ANIMATIONS
- rgblight_timer_enable();
- #endif
- } else if (rgblight_config.mode >= 25 && rgblight_config.mode <= 34) {
- // MODE 25-34, static gradient
-
- #ifdef RGBLIGHT_ANIMATIONS
- rgblight_timer_disable();
- #endif
- }
- rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
-}
-
-void rgblight_mode(uint8_t mode) {
- rgblight_mode_eeprom_helper(mode, true);
+ if (!rgblight_config.enable) {
+ return;
+ }
+ if (mode < RGBLIGHT_MODE_STATIC_LIGHT) {
+ rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
+ } else if (mode > RGBLIGHT_MODES) {
+ rgblight_config.mode = RGBLIGHT_MODES;
+ } else {
+ rgblight_config.mode = mode;
+ }
+ RGBLIGHT_SPLIT_SET_CHANGE_MODE;
+ if (write_to_eeprom) {
+ eeconfig_update_rgblight(rgblight_config.raw);
+ dprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode);
+ } else {
+ dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode);
+ }
+ if (is_static_effect(rgblight_config.mode)) {
+#ifdef RGBLIGHT_USE_TIMER
+ rgblight_timer_disable();
+#endif
+ } else {
+#ifdef RGBLIGHT_USE_TIMER
+ rgblight_timer_enable();
+#endif
+ }
+#ifdef RGBLIGHT_USE_TIMER
+ animation_status.restart = true;
+#endif
+ rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
}
-void rgblight_mode_noeeprom(uint8_t mode) {
- rgblight_mode_eeprom_helper(mode, false);
-}
+void rgblight_mode(uint8_t mode) { rgblight_mode_eeprom_helper(mode, true); }
+void rgblight_mode_noeeprom(uint8_t mode) { rgblight_mode_eeprom_helper(mode, false); }
void rgblight_toggle(void) {
- xprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
- if (rgblight_config.enable) {
- rgblight_disable();
- }
- else {
- rgblight_enable();
- }
+ dprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
+ if (rgblight_config.enable) {
+ rgblight_disable();
+ } else {
+ rgblight_enable();
+ }
}
void rgblight_toggle_noeeprom(void) {
- xprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
- if (rgblight_config.enable) {
- rgblight_disable_noeeprom();
- }
- else {
- rgblight_enable_noeeprom();
- }
+ dprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
+ if (rgblight_config.enable) {
+ rgblight_disable_noeeprom();
+ } else {
+ rgblight_enable_noeeprom();
+ }
}
void rgblight_enable(void) {
- rgblight_config.enable = 1;
- // No need to update EEPROM here. rgblight_mode() will do that, actually
- //eeconfig_update_rgblight(rgblight_config.raw);
- xprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- rgblight_mode(rgblight_config.mode);
+ rgblight_config.enable = 1;
+ // No need to update EEPROM here. rgblight_mode() will do that, actually
+ // eeconfig_update_rgblight(rgblight_config.raw);
+ dprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
+ rgblight_mode(rgblight_config.mode);
}
void rgblight_enable_noeeprom(void) {
- rgblight_config.enable = 1;
- xprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- rgblight_mode_noeeprom(rgblight_config.mode);
+ rgblight_config.enable = 1;
+ dprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
+ rgblight_mode_noeeprom(rgblight_config.mode);
}
void rgblight_disable(void) {
- rgblight_config.enable = 0;
- eeconfig_update_rgblight(rgblight_config.raw);
- xprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- #ifdef RGBLIGHT_ANIMATIONS
- //rgblight_timer_disable();
- #endif
- _delay_ms(50);
- rgblight_set();
+ rgblight_config.enable = 0;
+ eeconfig_update_rgblight(rgblight_config.raw);
+ dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
+#ifdef RGBLIGHT_USE_TIMER
+ rgblight_timer_disable();
+#endif
+ RGBLIGHT_SPLIT_SET_CHANGE_MODE;
+ wait_ms(50);
+ rgblight_set();
}
void rgblight_disable_noeeprom(void) {
- rgblight_config.enable = 0;
- xprintf("rgblight disable [noEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- #ifdef RGBLIGHT_ANIMATIONS
+ rgblight_config.enable = 0;
+ dprintf("rgblight disable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
+#ifdef RGBLIGHT_USE_TIMER
rgblight_timer_disable();
- #endif
- _delay_ms(50);
- rgblight_set();
+#endif
+ RGBLIGHT_SPLIT_SET_CHANGE_MODE;
+ wait_ms(50);
+ rgblight_set();
}
-
-// Deals with the messy details of incrementing an integer
-uint8_t increment( uint8_t value, uint8_t step, uint8_t min, uint8_t max ) {
- int16_t new_value = value;
- new_value += step;
- return MIN( MAX( new_value, min ), max );
+void rgblight_increase_hue_helper(bool write_to_eeprom) {
+ uint8_t hue = rgblight_config.hue + RGBLIGHT_HUE_STEP;
+ rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom);
}
-
-uint8_t decrement( uint8_t value, uint8_t step, uint8_t min, uint8_t max ) {
- int16_t new_value = value;
- new_value -= step;
- return MIN( MAX( new_value, min ), max );
+void rgblight_increase_hue_noeeprom(void) { rgblight_increase_hue_helper(false); }
+void rgblight_increase_hue(void) { rgblight_increase_hue_helper(true); }
+void rgblight_decrease_hue_helper(bool write_to_eeprom) {
+ uint8_t hue = rgblight_config.hue - RGBLIGHT_HUE_STEP;
+ rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom);
}
-
-void rgblight_increase_hue(void) {
- uint16_t hue;
- hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360;
- rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val);
+void rgblight_decrease_hue_noeeprom(void) { rgblight_decrease_hue_helper(false); }
+void rgblight_decrease_hue(void) { rgblight_decrease_hue_helper(true); }
+void rgblight_increase_sat_helper(bool write_to_eeprom) {
+ uint8_t sat = qadd8(rgblight_config.sat, RGBLIGHT_SAT_STEP);
+ rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom);
}
-void rgblight_decrease_hue(void) {
- uint16_t hue;
- if (rgblight_config.hue-RGBLIGHT_HUE_STEP < 0) {
- hue = (rgblight_config.hue + 360 - RGBLIGHT_HUE_STEP) % 360;
- } else {
- hue = (rgblight_config.hue - RGBLIGHT_HUE_STEP) % 360;
- }
- rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val);
-}
-void rgblight_increase_sat(void) {
- uint8_t sat;
- if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) {
- sat = 255;
- } else {
- sat = rgblight_config.sat + RGBLIGHT_SAT_STEP;
- }
- rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val);
-}
-void rgblight_decrease_sat(void) {
- uint8_t sat;
- if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) {
- sat = 0;
- } else {
- sat = rgblight_config.sat - RGBLIGHT_SAT_STEP;
- }
- rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val);
-}
-void rgblight_increase_val(void) {
- uint8_t val;
- if (rgblight_config.val + RGBLIGHT_VAL_STEP > RGBLIGHT_LIMIT_VAL) {
- val = RGBLIGHT_LIMIT_VAL;
- } else {
- val = rgblight_config.val + RGBLIGHT_VAL_STEP;
- }
- rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val);
-}
-void rgblight_decrease_val(void) {
- uint8_t val;
- if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) {
- val = 0;
- } else {
- val = rgblight_config.val - RGBLIGHT_VAL_STEP;
- }
- rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val);
+void rgblight_increase_sat_noeeprom(void) { rgblight_increase_sat_helper(false); }
+void rgblight_increase_sat(void) { rgblight_increase_sat_helper(true); }
+void rgblight_decrease_sat_helper(bool write_to_eeprom) {
+ uint8_t sat = qsub8(rgblight_config.sat, RGBLIGHT_SAT_STEP);
+ rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom);
+}
+void rgblight_decrease_sat_noeeprom(void) { rgblight_decrease_sat_helper(false); }
+void rgblight_decrease_sat(void) { rgblight_decrease_sat_helper(true); }
+void rgblight_increase_val_helper(bool write_to_eeprom) {
+ uint8_t val = qadd8(rgblight_config.val, RGBLIGHT_VAL_STEP);
+ rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom);
+}
+void rgblight_increase_val_noeeprom(void) { rgblight_increase_val_helper(false); }
+void rgblight_increase_val(void) { rgblight_increase_val_helper(true); }
+void rgblight_decrease_val_helper(bool write_to_eeprom) {
+ uint8_t val = qsub8(rgblight_config.val, RGBLIGHT_VAL_STEP);
+ rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom);
}
+void rgblight_decrease_val_noeeprom(void) { rgblight_decrease_val_helper(false); }
+void rgblight_decrease_val(void) { rgblight_decrease_val_helper(true); }
void rgblight_increase_speed(void) {
- rgblight_config.speed = increment( rgblight_config.speed, 1, 0, 3 );
- eeconfig_update_rgblight(rgblight_config.raw);//EECONFIG needs to be increased to support this
+ if (rgblight_config.speed < 3) rgblight_config.speed++;
+ // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED?
+ eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this
}
void rgblight_decrease_speed(void) {
- rgblight_config.speed = decrement( rgblight_config.speed, 1, 0, 3 );
- eeconfig_update_rgblight(rgblight_config.raw);//EECONFIG needs to be increased to support this
+ if (rgblight_config.speed > 0) rgblight_config.speed--;
+ // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED??
+ eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this
}
-void rgblight_sethsv_noeeprom_old(uint16_t hue, uint8_t sat, uint8_t val) {
- if (rgblight_config.enable) {
- LED_TYPE tmp_led;
- sethsv(hue, sat, val, &tmp_led);
- fled_hs[0].hue = fled_hs[1].hue = hue;
- fled_hs[0].sat = fled_hs[1].sat = sat;
- // dprintf("rgblight set hue [MEMORY]: %u,%u,%u\n", inmem_config.hue, inmem_config.sat, inmem_config.val);
- rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
- }
+void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) {
+ if (rgblight_config.enable) {
+ // MxSS custom code
+ fled_hs[0].hue = fled_hs[1].hue = hue;
+ fled_hs[0].sat = fled_hs[1].sat = sat;
+
+ LED_TYPE tmp_led;
+ sethsv(hue, sat, val, &tmp_led);
+ rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
+ }
}
-void rgblight_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) {
- if (rgblight_config.enable) {
- if (rgblight_config.mode == 1) {
- // same static color
- LED_TYPE tmp_led;
- sethsv(hue, sat, val, &tmp_led);
-
- fled_hs[0].hue = fled_hs[1].hue = hue;
- fled_hs[0].sat = fled_hs[1].sat = sat;
-
- rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
- } else {
- // all LEDs in same color
- if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) {
- // breathing mode, ignore the change of val, use in memory value instead
- val = rgblight_config.val;
- } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 14) {
- // rainbow mood and rainbow swirl, ignore the change of hue
- hue = rgblight_config.hue;
- } else if (rgblight_config.mode >= 25 && rgblight_config.mode <= 34) {
- // static gradient
- uint16_t _hue;
- int8_t direction = ((rgblight_config.mode - 25) % 2) ? -1 : 1;
- uint16_t range = pgm_read_word(&RGBLED_GRADIENT_RANGES[(rgblight_config.mode - 25) / 2]);
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- _hue = (range / RGBLED_NUM * i * direction + hue + 360) % 360;
- dprintf("rgblight rainbow set hsv: %u,%u,%d,%u\n", i, _hue, direction, range);
- sethsv(_hue, sat, val, (LED_TYPE *)&led[i]);
+void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) {
+ if (rgblight_config.enable) {
+ rgblight_status.base_mode = mode_base_table[rgblight_config.mode];
+ if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) {
+ // same static color
+ LED_TYPE tmp_led;
+ sethsv(hue, sat, val, &tmp_led);
+
+ // MxSS custom
+ // Cache hue/sat for rgb
+ fled_hs[0].hue = fled_hs[1].hue = hue;
+ fled_hs[0].sat = fled_hs[1].sat = sat;
+
+ rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
+ } else {
+ // all LEDs in same color
+ if (1 == 0) { // dummy
+ }
+#ifdef RGBLIGHT_EFFECT_BREATHING
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_BREATHING) {
+ // breathing mode, ignore the change of val, use in memory value instead
+ val = rgblight_config.val;
+ }
+#endif
+#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_MOOD) {
+ // rainbow mood, ignore the change of hue
+ hue = rgblight_config.hue;
+ }
+#endif
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_SWIRL) {
+ // rainbow swirl, ignore the change of hue
+ hue = rgblight_config.hue;
+ }
+#endif
+#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_STATIC_GRADIENT) {
+ // static gradient
+ uint8_t delta = rgblight_config.mode - rgblight_status.base_mode;
+ bool direction = (delta % 2) == 0;
+# ifdef __AVR__
+ // probably due to how pgm_read_word is defined for ARM, but the ARM compiler really hates this line
+ uint8_t range = pgm_read_word(&RGBLED_GRADIENT_RANGES[delta / 2]);
+# else
+ uint8_t range = RGBLED_GRADIENT_RANGES[delta / 2];
+# endif
+ for (uint8_t i = 0; i < effect_num_leds; i++) {
+ uint8_t _hue = ((uint16_t)i * (uint16_t)range) / effect_num_leds;
+ if (direction) {
+ _hue = hue + _hue;
+ } else {
+ _hue = hue - _hue;
+ }
+ dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range);
+ sethsv(_hue, sat, val, (LED_TYPE *)&led[i + effect_start_pos]);
+ }
+ rgblight_set();
+ }
+#endif
+ }
+#ifdef RGBLIGHT_SPLIT
+ if (rgblight_config.hue != hue || rgblight_config.sat != sat || rgblight_config.val != val) {
+ RGBLIGHT_SPLIT_SET_CHANGE_HSVS;
+ }
+#endif
+ rgblight_config.hue = hue;
+ rgblight_config.sat = sat;
+ rgblight_config.val = val;
+ if (write_to_eeprom) {
+ eeconfig_update_rgblight(rgblight_config.raw);
+ dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
+ } else {
+ dprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
}
- rgblight_set();
- }
- }
- rgblight_config.hue = hue;
- rgblight_config.sat = sat;
- rgblight_config.val = val;
- if (write_to_eeprom) {
- eeconfig_update_rgblight(rgblight_config.raw);
- xprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
- } else {
- xprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
}
- }
}
-void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val) {
- rgblight_sethsv_eeprom_helper(hue, sat, val, true);
-}
+void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_eeprom_helper(hue, sat, val, true); }
-void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val) {
- rgblight_sethsv_eeprom_helper(hue, sat, val, false);
-}
+void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_eeprom_helper(hue, sat, val, false); }
-uint16_t rgblight_get_hue(void) {
- return rgblight_config.hue;
+uint8_t rgblight_get_hue(void) { return rgblight_config.hue; }
+
+uint8_t rgblight_get_sat(void) { return rgblight_config.sat; }
+
+uint8_t rgblight_get_val(void) { return rgblight_config.val; }
+
+void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) {
+ if (!rgblight_config.enable) {
+ return;
+ }
+
+ for (uint8_t i = effect_start_pos; i < effect_end_pos; i++) {
+ led[i].r = r;
+ led[i].g = g;
+ led[i].b = b;
+#ifdef RGBW
+ led[i].w = 0;
+#endif
+ }
+ rgblight_set();
}
-uint8_t rgblight_get_sat(void) {
- return rgblight_config.sat;
+void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) {
+ if (!rgblight_config.enable || index >= RGBLED_NUM) {
+ return;
+ }
+
+ led[index].r = r;
+ led[index].g = g;
+ led[index].b = b;
+#ifdef RGBW
+ led[index].w = 0;
+#endif
+ rgblight_set();
}
-uint8_t rgblight_get_val(void) {
- return rgblight_config.val;
+void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) {
+ if (!rgblight_config.enable) {
+ return;
+ }
+
+ LED_TYPE tmp_led;
+ sethsv(hue, sat, val, &tmp_led);
+ rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index);
}
-void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) {
- if (!rgblight_config.enable) { return; }
+#if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT)
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- led[i].r = r;
- led[i].g = g;
- led[i].b = b;
- }
- rgblight_set();
+static uint8_t get_interval_time(const uint8_t *default_interval_address, uint8_t velocikey_min, uint8_t velocikey_max) {
+ return
+# ifdef VELOCIKEY_ENABLE
+ velocikey_enabled() ? velocikey_match_speed(velocikey_min, velocikey_max) :
+# endif
+ pgm_read_byte(default_interval_address);
}
-void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) {
- if (!rgblight_config.enable || index >= RGBLED_NUM) { return; }
+#endif
+
+void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8_t end) {
+ if (!rgblight_config.enable || start < 0 || start >= end || end > RGBLED_NUM) {
+ return;
+ }
- led[index].r = r;
- led[index].g = g;
- led[index].b = b;
- rgblight_set();
+ for (uint8_t i = start; i < end; i++) {
+ led[i].r = r;
+ led[i].g = g;
+ led[i].b = b;
+#ifdef RGBW
+ led[i].w = 0;
+#endif
+ }
+ rgblight_set();
+ wait_ms(1);
}
-void rgblight_sethsv_at(uint16_t hue, uint8_t sat, uint8_t val, uint8_t index) {
- if (!rgblight_config.enable) { return; }
+void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) {
+ if (!rgblight_config.enable) {
+ return;
+ }
- LED_TYPE tmp_led;
- sethsv(hue, sat, val, &tmp_led);
- rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index);
+ LED_TYPE tmp_led;
+ sethsv(hue, sat, val, &tmp_led);
+ rgblight_setrgb_range(tmp_led.r, tmp_led.g, tmp_led.b, start, end);
}
+#ifndef RGBLIGHT_SPLIT
+void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b) { rgblight_setrgb_range(r, g, b, 0, (uint8_t)RGBLED_NUM / 2); }
+
+void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b) { rgblight_setrgb_range(r, g, b, (uint8_t)RGBLED_NUM / 2, (uint8_t)RGBLED_NUM); }
+
+void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, 0, (uint8_t)RGBLED_NUM / 2); }
+
+void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, (uint8_t)RGBLED_NUM / 2, (uint8_t)RGBLED_NUM); }
+#endif // ifndef RGBLIGHT_SPLIT
+
+#ifndef RGBLIGHT_CUSTOM_DRIVER
void rgblight_set(void) {
- if (!rgblight_config.enable) {
+ LED_TYPE *start_led;
+ uint16_t num_leds = clipping_num_leds;
+
+ if (!rgblight_config.enable) {
+ for (uint8_t i = effect_start_pos; i < effect_end_pos; i++) {
+ if (i == RGBLIGHT_FLED1 && i == RGBLIGHT_FLED2)
+ continue;
+
+ led[i].r = 0;
+ led[i].g = 0;
+ led[i].b = 0;
+# ifdef RGBW
+ led[i].w = 0;
+# endif
+ }
+ }
+
+# ifdef RGBLIGHT_LED_MAP
+ LED_TYPE led0[RGBLED_NUM];
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- if (i == RGBLIGHT_FLED1 && i == RGBLIGHT_FLED2)
- continue;
-
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
+ led0[i] = led[pgm_read_byte(&led_map[i])];
}
- }
-
- switch (fled_mode) {
+ start_led = led0 + clipping_start_pos;
+# else
+ start_led = led + clipping_start_pos;
+# endif
+
+#ifdef RGBW
+ for (uint8_t i = 0; i < num_leds; i++) {
+ convert_rgb_to_rgbw(&start_led[i]);
+ }
+#endif
+ // MxSS custom
+ switch (fled_mode) {
case FLED_OFF:
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]);
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]);
+ setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]);
+ setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]);
break;
-
+
case FLED_INDI:
- copyrgb(&fleds[0], &led[RGBLIGHT_FLED1]);
- copyrgb(&fleds[1], &led[RGBLIGHT_FLED2]);
+ copyrgb(&fleds[0], &led[RGBLIGHT_FLED1]);
+ copyrgb(&fleds[1], &led[RGBLIGHT_FLED2]);
break;
-
+
case FLED_RGB:
- if (fled_hs[0].hue == 0 && fled_hs[0].hue == 0 && (rgblight_config.mode >= 15 && rgblight_config.mode <= 23))
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]);
- else
- sethsv(fled_hs[0].hue, fled_hs[0].sat, fled_val, &led[RGBLIGHT_FLED1]);
-
- if (fled_hs[1].hue == 0 && fled_hs[1].hue == 0 && (rgblight_config.mode >= 15 && rgblight_config.mode <= 23))
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]);
- else
- sethsv(fled_hs[1].hue, fled_hs[1].sat, fled_val, &led[RGBLIGHT_FLED2]);
+ if (fled_hs[0].hue == 0 && fled_hs[0].hue == 0 &&
+ (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE ||
+ rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT))
+ setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]);
+ else
+ sethsv(fled_hs[0].hue, fled_hs[0].sat, fled_val, &led[RGBLIGHT_FLED1]);
+
+ if (fled_hs[1].hue == 0 && fled_hs[1].hue == 0 &&
+ (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE ||
+ rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT))
+ setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]);
+ else
+ sethsv(fled_hs[1].hue, fled_hs[1].sat, fled_val, &led[RGBLIGHT_FLED2]);
break;
-
+
default:
break;
}
- ws2812_setleds(led, RGBLED_NUM);
+ ws2812_setleds(start_led, num_leds);
+}
+#endif
+
+#ifdef RGBLIGHT_SPLIT
+/* for split keyboard master side */
+uint8_t rgblight_get_change_flags(void) { return rgblight_status.change_flags; }
+
+void rgblight_clear_change_flags(void) { rgblight_status.change_flags = 0; }
+
+void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo) {
+ syncinfo->config = rgblight_config;
+ syncinfo->status = rgblight_status;
+}
+
+/* for split keyboard slave side */
+void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom) {
+ if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_MODE) {
+ if (syncinfo->config.enable) {
+ rgblight_config.enable = 1; // == rgblight_enable_noeeprom();
+ rgblight_mode_eeprom_helper(syncinfo->config.mode, write_to_eeprom);
+ } else {
+ rgblight_disable_noeeprom();
+ }
+ }
+ if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_HSVS) {
+ rgblight_sethsv_eeprom_helper(syncinfo->config.hue, syncinfo->config.sat, syncinfo->config.val, write_to_eeprom);
+ // rgblight_config.speed = config->speed; // NEED???
+ }
+# ifdef RGBLIGHT_USE_TIMER
+ if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_TIMER) {
+ if (syncinfo->status.timer_enabled) {
+ rgblight_timer_enable();
+ } else {
+ rgblight_timer_disable();
+ }
+ }
+# ifndef RGBLIGHT_SPLIT_NO_ANIMATION_SYNC
+ if (syncinfo->status.change_flags & RGBLIGHT_STATUS_ANIMATION_TICK) {
+ animation_status.restart = true;
+ }
+# endif /* RGBLIGHT_SPLIT_NO_ANIMATION_SYNC */
+# endif /* RGBLIGHT_USE_TIMER */
}
+#endif /* RGBLIGHT_SPLIT */
-#ifdef RGBLIGHT_ANIMATIONS
+#ifdef RGBLIGHT_USE_TIMER
-// Animation timer -- AVR Timer3
+typedef void (*effect_func_t)(animation_status_t *anim);
+
+// Animation timer -- use system timer (AVR Timer0)
void rgblight_timer_init(void) {
- // static uint8_t rgblight_timer_is_init = 0;
- // if (rgblight_timer_is_init) {
- // return;
- // }
- // rgblight_timer_is_init = 1;
- // /* Timer 3 setup */
- // TCCR3B = _BV(WGM32) // CTC mode OCR3A as TOP
- // | _BV(CS30); // Clock selelct: clk/1
- // /* Set TOP value */
- // uint8_t sreg = SREG;
- // cli();
- // OCR3AH = (RGBLED_TIMER_TOP >> 8) & 0xff;
- // OCR3AL = RGBLED_TIMER_TOP & 0xff;
- // SREG = sreg;
-
- rgblight_timer_enabled = true;
+ // OLD!!!! Animation timer -- AVR Timer3
+ // static uint8_t rgblight_timer_is_init = 0;
+ // if (rgblight_timer_is_init) {
+ // return;
+ // }
+ // rgblight_timer_is_init = 1;
+ // /* Timer 3 setup */
+ // TCCR3B = _BV(WGM32) // CTC mode OCR3A as TOP
+ // | _BV(CS30); // Clock selelct: clk/1
+ // /* Set TOP value */
+ // uint8_t sreg = SREG;
+ // cli();
+ // OCR3AH = (RGBLED_TIMER_TOP >> 8) & 0xff;
+ // OCR3AL = RGBLED_TIMER_TOP & 0xff;
+ // SREG = sreg;
+
+ rgblight_status.timer_enabled = false;
+ RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE;
}
void rgblight_timer_enable(void) {
- rgblight_timer_enabled = true;
- dprintf("TIMER3 enabled.\n");
+ if (!is_static_effect(rgblight_config.mode)) {
+ rgblight_status.timer_enabled = true;
+ }
+ animation_status.last_timer = timer_read();
+ RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE;
+ dprintf("rgblight timer enabled.\n");
}
void rgblight_timer_disable(void) {
- rgblight_timer_enabled = false;
- dprintf("TIMER3 disabled.\n");
+ // MxSS custom code
+ if (fled_mode != FLED_RGB) {
+ rgblight_status.timer_enabled = false;
+ RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE;
+ dprintf("rgblight timer disable.\n");
+ }
}
void rgblight_timer_toggle(void) {
- rgblight_timer_enabled ^= rgblight_timer_enabled;
- dprintf("TIMER3 toggled.\n");
+ dprintf("rgblight timer toggle.\n");
+ if (rgblight_status.timer_enabled) {
+ rgblight_timer_disable();
+ } else {
+ rgblight_timer_enable();
+ }
}
void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b) {
- rgblight_enable();
- rgblight_mode(1);
- rgblight_setrgb(r, g, b);
+ rgblight_enable();
+ rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
+ rgblight_setrgb(r, g, b);
+}
+
+static void rgblight_effect_dummy(animation_status_t *anim) {
+ // do nothing
+ /********
+ dprintf("rgblight_task() what happened?\n");
+ dprintf("is_static_effect %d\n", is_static_effect(rgblight_config.mode));
+ dprintf("mode = %d, base_mode = %d, timer_enabled %d, ",
+ rgblight_config.mode, rgblight_status.base_mode,
+ rgblight_status.timer_enabled);
+ dprintf("last_timer = %d\n",anim->last_timer);
+ **/
}
void rgblight_task(void) {
- if (rgblight_timer_enabled) {
- // mode = 1, static light, do nothing here
- if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) {
- // mode = 2 to 5, breathing mode
- rgblight_effect_breathing(rgblight_config.mode - 2);
- } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 8) {
- // mode = 6 to 8, rainbow mood mod
- rgblight_effect_rainbow_mood(rgblight_config.mode - 6);
- } else if (rgblight_config.mode >= 9 && rgblight_config.mode <= 14) {
- // mode = 9 to 14, rainbow swirl mode
- rgblight_effect_rainbow_swirl(rgblight_config.mode - 9);
- } else if (rgblight_config.mode >= 15 && rgblight_config.mode <= 20) {
- // mode = 15 to 20, snake mode
- rgblight_effect_snake(rgblight_config.mode - 15);
- } else if (rgblight_config.mode >= 21 && rgblight_config.mode <= 23) {
- // mode = 21 to 23, knight mode
- rgblight_effect_knight(rgblight_config.mode - 21);
- } else if (rgblight_config.mode == 24) {
- // mode = 24, christmas mode
- rgblight_effect_christmas();
- } else if (rgblight_config.mode == 35) {
- // mode = 35, RGB test
- rgblight_effect_rgbtest();
+ if (rgblight_status.timer_enabled) {
+ effect_func_t effect_func = rgblight_effect_dummy;
+ uint16_t interval_time = 2000; // dummy interval
+ uint8_t delta = rgblight_config.mode - rgblight_status.base_mode;
+ animation_status.delta = delta;
+
+ // static light mode, do nothing here
+ if (1 == 0) { // dummy
+ }
+# ifdef RGBLIGHT_EFFECT_BREATHING
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_BREATHING) {
+ // breathing mode
+ interval_time = get_interval_time(&RGBLED_BREATHING_INTERVALS[delta], 1, 100);
+ effect_func = rgblight_effect_breathing;
+ }
+# endif
+# ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_MOOD) {
+ // rainbow mood mode
+ interval_time = get_interval_time(&RGBLED_RAINBOW_MOOD_INTERVALS[delta], 5, 100);
+ effect_func = rgblight_effect_rainbow_mood;
+ }
+# endif
+# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_SWIRL) {
+ // rainbow swirl mode
+ interval_time = get_interval_time(&RGBLED_RAINBOW_SWIRL_INTERVALS[delta / 2], 1, 100);
+ effect_func = rgblight_effect_rainbow_swirl;
+ }
+# endif
+# ifdef RGBLIGHT_EFFECT_SNAKE
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE) {
+ // snake mode
+ interval_time = get_interval_time(&RGBLED_SNAKE_INTERVALS[delta / 2], 1, 200);
+ effect_func = rgblight_effect_snake;
+ }
+# endif
+# ifdef RGBLIGHT_EFFECT_KNIGHT
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT) {
+ // knight mode
+ interval_time = get_interval_time(&RGBLED_KNIGHT_INTERVALS[delta], 5, 100);
+ effect_func = rgblight_effect_knight;
+ }
+# endif
+# ifdef RGBLIGHT_EFFECT_CHRISTMAS
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_CHRISTMAS) {
+ // christmas mode
+ interval_time = RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL;
+ effect_func = (effect_func_t)rgblight_effect_christmas;
+ }
+# endif
+# ifdef RGBLIGHT_EFFECT_RGB_TEST
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_RGB_TEST) {
+ // RGB test mode
+ interval_time = pgm_read_word(&RGBLED_RGBTEST_INTERVALS[0]);
+ effect_func = (effect_func_t)rgblight_effect_rgbtest;
+ }
+# endif
+# ifdef RGBLIGHT_EFFECT_ALTERNATING
+ else if (rgblight_status.base_mode == RGBLIGHT_MODE_ALTERNATING) {
+ interval_time = 500;
+ effect_func = (effect_func_t)rgblight_effect_alternating;
+ }
+# endif
+ if (animation_status.restart) {
+ animation_status.restart = false;
+ animation_status.last_timer = timer_read() - interval_time - 1;
+ animation_status.pos16 = 0; // restart signal to local each effect
+ }
+ if (timer_elapsed(animation_status.last_timer) >= interval_time) {
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ static uint16_t report_last_timer = 0;
+ static bool tick_flag = false;
+ uint16_t oldpos16;
+ if (tick_flag) {
+ tick_flag = false;
+ if (timer_elapsed(report_last_timer) >= 30000) {
+ report_last_timer = timer_read();
+ dprintf("rgblight animation tick report to slave\n");
+ RGBLIGHT_SPLIT_ANIMATION_TICK;
+ }
+ }
+ oldpos16 = animation_status.pos16;
+# endif
+ animation_status.last_timer += interval_time;
+ effect_func(&animation_status);
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ if (animation_status.pos16 == 0 && oldpos16 != 0) {
+ tick_flag = true;
+ }
+# endif
+ }
}
- }
}
-// Effects
-void rgblight_effect_breathing(uint8_t interval) {
- static uint8_t pos = 0;
- static uint16_t last_timer = 0;
- float val;
+#endif /* RGBLIGHT_USE_TIMER */
- if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_BREATHING_INTERVALS[interval])) {
- return;
- }
- last_timer = timer_read();
+// Effects
+#ifdef RGBLIGHT_EFFECT_BREATHING
+
+# ifndef RGBLIGHT_EFFECT_BREATHE_CENTER
+# ifndef RGBLIGHT_BREATHE_TABLE_SIZE
+# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256 or 128 or 64
+# endif
+# include <rgblight_breathe_table.h>
+# endif
+
+__attribute__((weak)) const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
+
+void rgblight_effect_breathing(animation_status_t *anim) {
+ float val;
+
+ // http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/
+# ifdef RGBLIGHT_EFFECT_BREATHE_TABLE
+ val = pgm_read_byte(&rgblight_effect_breathe_table[anim->pos / table_scale]);
+# else
+ val = (exp(sin((anim->pos / 255.0) * M_PI)) - RGBLIGHT_EFFECT_BREATHE_CENTER / M_E) * (RGBLIGHT_EFFECT_BREATHE_MAX / (M_E - 1 / M_E));
+# endif
+ rgblight_sethsv_noeeprom_old(rgblight_config.hue, rgblight_config.sat, val);
+ anim->pos = (anim->pos + 1);
+}
+#endif
+#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
+__attribute__((weak)) const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
- // http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/
- val = (exp(sin((pos/255.0)*M_PI)) - RGBLIGHT_EFFECT_BREATHE_CENTER/M_E)*(RGBLIGHT_EFFECT_BREATHE_MAX/(M_E-1/M_E));
- rgblight_sethsv_noeeprom_old(rgblight_config.hue, rgblight_config.sat, val);
- pos = (pos + 1) % 256;
+void rgblight_effect_rainbow_mood(animation_status_t *anim) {
+ rgblight_sethsv_noeeprom_old(anim->current_hue, rgblight_config.sat, rgblight_config.val);
+ anim->current_hue++;
}
-void rgblight_effect_rainbow_mood(uint8_t interval) {
- static uint16_t current_hue = 0;
- static uint16_t last_timer = 0;
+#endif
- if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_RAINBOW_MOOD_INTERVALS[interval])) {
- return;
- }
- last_timer = timer_read();
- rgblight_sethsv_noeeprom_old(current_hue, rgblight_config.sat, rgblight_config.val);
- current_hue = (current_hue + 1) % 360;
-}
-void rgblight_effect_rainbow_swirl(uint8_t interval) {
- static uint16_t current_hue = 0;
- static uint16_t last_timer = 0;
- uint16_t hue;
- uint8_t i;
- if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_RAINBOW_SWIRL_INTERVALS[interval / 2])) {
- return;
- }
- last_timer = timer_read();
- for (i = 0; i < RGBLED_NUM; i++) {
- hue = (360 / RGBLED_NUM * i + current_hue) % 360;
- sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
- }
- rgblight_set();
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+# ifndef RGBLIGHT_RAINBOW_SWIRL_RANGE
+# define RGBLIGHT_RAINBOW_SWIRL_RANGE 255
+# endif
+
+__attribute__((weak)) const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
+
+void rgblight_effect_rainbow_swirl(animation_status_t *anim) {
+ uint8_t hue;
+ uint8_t i;
+
+ for (i = 0; i < effect_num_leds; i++) {
+ hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / effect_num_leds * i + anim->current_hue);
+ sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + effect_start_pos]);
+ }
+ rgblight_set();
- if (interval % 2) {
- current_hue = (current_hue + 1) % 360;
- } else {
- if (current_hue - 1 < 0) {
- current_hue = 359;
+ if (anim->delta % 2) {
+ anim->current_hue++;
} else {
- current_hue = current_hue - 1;
+ anim->current_hue--;
}
- }
}
-void rgblight_effect_snake(uint8_t interval) {
- static uint8_t pos = 0;
- static uint16_t last_timer = 0;
- uint8_t i, j;
- int8_t k;
- int8_t increment = 1;
- if (interval % 2) {
- increment = -1;
- }
- if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_SNAKE_INTERVALS[interval / 2])) {
- return;
- }
- last_timer = timer_read();
-
- fled_hs[0].hue = fled_hs[1].hue = 0;
- fled_hs[0].sat = fled_hs[1].sat = 0;
-
- for (i = 0; i < RGBLED_NUM; i++) {
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
-
- for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) {
- k = pos + j * increment;
- if (k < 0) {
- k = k + RGBLED_NUM;
- }
- if (i == k) {
- sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val*(RGBLIGHT_EFFECT_SNAKE_LENGTH-j)/RGBLIGHT_EFFECT_SNAKE_LENGTH), (LED_TYPE *)&led[i]);
- }
+#endif
+
+#ifdef RGBLIGHT_EFFECT_SNAKE
+__attribute__((weak)) const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
+
+void rgblight_effect_snake(animation_status_t *anim) {
+ static uint8_t pos = 0;
+ uint8_t i, j;
+ int8_t k;
+ int8_t increment = 1;
+
+ if (anim->delta % 2) {
+ increment = -1;
}
- }
- rgblight_set();
- if (increment == 1) {
- if (pos - 1 < 0) {
- pos = RGBLED_NUM - 1;
+
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ if (anim->pos == 0) { // restart signal
+ if (increment == 1) {
+ pos = effect_num_leds - 1;
+ } else {
+ pos = 0;
+ }
+ anim->pos = 1;
+ }
+# endif
+
+ // MxSS custom
+ fled_hs[0].hue = fled_hs[1].hue = 0;
+ fled_hs[0].sat = fled_hs[1].sat = 0;
+
+ for (i = 0; i < effect_num_leds; i++) {
+ LED_TYPE *ledp = led + i + effect_start_pos;
+ ledp->r = 0;
+ ledp->g = 0;
+ ledp->b = 0;
+# ifdef RGBW
+ ledp->w = 0;
+# endif
+ for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) {
+ k = pos + j * increment;
+ if (k > RGBLED_NUM) {
+ k = k % RGBLED_NUM;
+ }
+ if (k < 0) {
+ k = k + effect_num_leds;
+ }
+ if (i == k) {
+ sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val * (RGBLIGHT_EFFECT_SNAKE_LENGTH - j) / RGBLIGHT_EFFECT_SNAKE_LENGTH), ledp);
+ }
+ }
+ }
+ rgblight_set();
+ if (increment == 1) {
+ if (pos - 1 < 0) {
+ pos = effect_num_leds - 1;
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ anim->pos = 0;
+# endif
+ } else {
+ pos -= 1;
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ anim->pos = 1;
+# endif
+ }
} else {
- pos -= 1;
+ pos = (pos + 1) % effect_num_leds;
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ anim->pos = pos;
+# endif
}
- } else {
- pos = (pos + 1) % RGBLED_NUM;
- }
}
-void rgblight_effect_knight(uint8_t interval) {
- static uint16_t last_timer = 0;
- if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_KNIGHT_INTERVALS[interval])) {
- return;
- }
- last_timer = timer_read();
-
- static int8_t low_bound = 0;
- static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
- static int8_t increment = 1;
- uint8_t i, cur;
-
- // Set all the LEDs to 0
- for (i = 0; i < RGBLED_NUM; i++) {
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
- }
- // Determine which LEDs should be lit up
- for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) {
- cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % RGBLED_NUM;
+#endif
- if (i >= low_bound && i <= high_bound) {
- sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]);
- } else {
- if (i == RGBLIGHT_FLED1 || i == RGBLIGHT_FLED2) {
- fled_hs[0].hue = fled_hs[1].hue = 0;
- fled_hs[0].sat = fled_hs[1].sat = 0;
- }
-
- led[cur].r = 0;
- led[cur].g = 0;
- led[cur].b = 0;
+#ifdef RGBLIGHT_EFFECT_KNIGHT
+__attribute__((weak)) const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
+
+void rgblight_effect_knight(animation_status_t *anim) {
+ static int8_t low_bound = 0;
+ static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
+ static int8_t increment = 1;
+ uint8_t i, cur;
+
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ if (anim->pos == 0) { // restart signal
+ anim->pos = 1;
+ low_bound = 0;
+ high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
+ increment = 1;
+ }
+# endif
+ // Set all the LEDs to 0
+ for (i = effect_start_pos; i < effect_end_pos; i++) {
+ led[i].r = 0;
+ led[i].g = 0;
+ led[i].b = 0;
+# ifdef RGBW
+ led[i].w = 0;
+# endif
+ }
+ // Determine which LEDs should be lit up
+ for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) {
+ cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % effect_num_leds + effect_start_pos;
+
+ if (i >= low_bound && i <= high_bound) {
+ sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]);
+ } else {
+ // MxSS custom code
+ if (cur == RGBLIGHT_FLED1) {
+ fled_hs[0].hue = fled_hs[0].sat = 0;
+ } else if (cur == RGBLIGHT_FLED2) {
+ fled_hs[1].hue = fled_hs[1].sat = 0;
+ }
+
+ led[cur].r = 0;
+ led[cur].g = 0;
+ led[cur].b = 0;
+# ifdef RGBW
+ led[cur].w = 0;
+# endif
+ }
+ }
+ rgblight_set();
+
+ // Move from low_bound to high_bound changing the direction we increment each
+ // time a boundary is hit.
+ low_bound += increment;
+ high_bound += increment;
+
+ if (high_bound <= 0 || low_bound >= RGBLIGHT_EFFECT_KNIGHT_LED_NUM - 1) {
+ increment = -increment;
+# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
+ if (increment == 1) {
+ anim->pos = 0;
+ }
+# endif
}
- }
- rgblight_set();
-
- // Move from low_bound to high_bound changing the direction we increment each
- // time a boundary is hit.
- low_bound += increment;
- high_bound += increment;
-
- if (high_bound <= 0 || low_bound >= RGBLIGHT_EFFECT_KNIGHT_LED_NUM - 1) {
- increment = -increment;
- }
}
+#endif
+#ifdef RGBLIGHT_EFFECT_CHRISTMAS
+void rgblight_effect_christmas(animation_status_t *anim) {
+ uint8_t hue;
+ uint8_t i;
-void rgblight_effect_christmas(void) {
- static uint16_t current_offset = 0;
- static uint16_t last_timer = 0;
- uint16_t hue;
- uint8_t i;
- if (timer_elapsed(last_timer) < RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL) {
- return;
- }
- last_timer = timer_read();
- current_offset = (current_offset + 1) % 2;
- for (i = 0; i < RGBLED_NUM; i++) {
- hue = 0 + ((i/RGBLIGHT_EFFECT_CHRISTMAS_STEP + current_offset) % 2) * 120;
- sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
- }
- rgblight_set();
+ anim->current_offset = (anim->current_offset + 1) % 2;
+ for (i = 0; i < effect_num_leds; i++) {
+ hue = 0 + ((i / RGBLIGHT_EFFECT_CHRISTMAS_STEP + anim->current_offset) % 2) * 85;
+ sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + effect_start_pos]);
+ }
+ rgblight_set();
}
+#endif
-void rgblight_effect_rgbtest(void) {
- static uint8_t pos = 0;
- static uint16_t last_timer = 0;
- static uint8_t maxval = 0;
- uint8_t g; uint8_t r; uint8_t b;
+#ifdef RGBLIGHT_EFFECT_RGB_TEST
+__attribute__((weak)) const uint16_t RGBLED_RGBTEST_INTERVALS[] PROGMEM = {1024};
- if (timer_elapsed(last_timer) < pgm_read_word(&RGBLED_RGBTEST_INTERVALS[0])) {
- return;
- }
+void rgblight_effect_rgbtest(animation_status_t *anim) {
+ static uint8_t maxval = 0;
+ uint8_t g;
+ uint8_t r;
+ uint8_t b;
- if( maxval == 0 ) {
- LED_TYPE tmp_led;
- sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led);
- maxval = tmp_led.r;
- }
- last_timer = timer_read();
- g = r = b = 0;
- switch( pos ) {
- case 0: r = maxval; break;
- case 1: g = maxval; break;
- case 2: b = maxval; break;
- }
- rgblight_setrgb(r, g, b);
- pos = (pos + 1) % 3;
+ if (maxval == 0) {
+ LED_TYPE tmp_led;
+ sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led);
+ maxval = tmp_led.r;
+ }
+ g = r = b = 0;
+ switch (anim->pos) {
+ // MxSS custom code
+ case 0:
+ r = maxval;
+ fled_hs[0].hue = 0;
+ fled_hs[0].sat = 255;
+ fled_hs[1].hue = 0;
+ fled_hs[1].sat = 255;
+ break;
+ case 1:
+ g = maxval;
+ fled_hs[0].hue = 85;
+ fled_hs[0].sat = 255;
+ fled_hs[1].hue = 85;
+ fled_hs[1].sat = 255;
+ break;
+ case 2:
+ b = maxval;
+ fled_hs[0].hue = 170;
+ fled_hs[0].sat = 255;
+ fled_hs[1].hue = 170;
+ fled_hs[1].sat = 255;
+ break;
+ }
+ rgblight_setrgb(r, g, b);
+ anim->pos = (anim->pos + 1) % 3;
}
+#endif
-#endif /* RGBLIGHT_ANIMATIONS */
+#ifdef RGBLIGHT_EFFECT_ALTERNATING
+void rgblight_effect_alternating(animation_status_t *anim) {
+ for (int i = 0; i < effect_num_leds; i++) {
+ LED_TYPE *ledp = led + i + effect_start_pos;
+ if (i < effect_num_leds / 2 && anim->pos) {
+ sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp);
+ } else if (i >= effect_num_leds / 2 && !anim->pos) {
+ sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp);
+ } else {
+ sethsv(rgblight_config.hue, rgblight_config.sat, 0, ledp);
+ }
+ }
+ rgblight_set();
+ anim->pos = (anim->pos + 1) % 2;
+}
+#endif
diff --git a/keyboards/mxss/rgblight.h b/keyboards/mxss/rgblight.h
index 0013a3438..e3aa098e4 100644
--- a/keyboards/mxss/rgblight.h
+++ b/keyboards/mxss/rgblight.h
@@ -16,137 +16,245 @@
#ifndef RGBLIGHT_H
#define RGBLIGHT_H
-#ifdef RGBLIGHT_ANIMATIONS
- #define RGBLIGHT_MODES 35
-#else
- #define RGBLIGHT_MODES 1
-#endif
-
-#ifndef RGBLIGHT_EFFECT_BREATHE_CENTER
-#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1-2.7
-#endif
-
-#ifndef RGBLIGHT_EFFECT_BREATHE_MAX
-#define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0-255
-#endif
-
-#ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH
-#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4
-#endif
-
-#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH
-#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
-#endif
-
-#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
-#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0
-#endif
-
-#ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM
-#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLED_NUM
-#endif
-
-#ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL
-#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 1000
-#endif
-
-#ifndef RGBLIGHT_EFFECT_CHRISTMAS_STEP
-#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2
-#endif
-
-#ifndef RGBLIGHT_HUE_STEP
-#define RGBLIGHT_HUE_STEP 10
-#endif
-#ifndef RGBLIGHT_SAT_STEP
-#define RGBLIGHT_SAT_STEP 17
-#endif
-#ifndef RGBLIGHT_VAL_STEP
-#define RGBLIGHT_VAL_STEP 17
-#endif
-
-#define RGBLED_TIMER_TOP F_CPU/(256*64)
+#include "rgblight_reconfig.h"
+
+/***** rgblight_mode(mode)/rgblight_mode_noeeprom(mode) ****
+
+ old mode number (before 0.6.117) to new mode name table
+
+|-----------------|-----------------------------------|
+| old mode number | new mode name |
+|-----------------|-----------------------------------|
+| 1 | RGBLIGHT_MODE_STATIC_LIGHT |
+| 2 | RGBLIGHT_MODE_BREATHING |
+| 3 | RGBLIGHT_MODE_BREATHING + 1 |
+| 4 | RGBLIGHT_MODE_BREATHING + 2 |
+| 5 | RGBLIGHT_MODE_BREATHING + 3 |
+| 6 | RGBLIGHT_MODE_RAINBOW_MOOD |
+| 7 | RGBLIGHT_MODE_RAINBOW_MOOD + 1 |
+| 8 | RGBLIGHT_MODE_RAINBOW_MOOD + 2 |
+| 9 | RGBLIGHT_MODE_RAINBOW_SWIRL |
+| 10 | RGBLIGHT_MODE_RAINBOW_SWIRL + 1 |
+| 11 | RGBLIGHT_MODE_RAINBOW_SWIRL + 2 |
+| 12 | RGBLIGHT_MODE_RAINBOW_SWIRL + 3 |
+| 13 | RGBLIGHT_MODE_RAINBOW_SWIRL + 4 |
+| 14 | RGBLIGHT_MODE_RAINBOW_SWIRL + 5 |
+| 15 | RGBLIGHT_MODE_SNAKE |
+| 16 | RGBLIGHT_MODE_SNAKE + 1 |
+| 17 | RGBLIGHT_MODE_SNAKE + 2 |
+| 18 | RGBLIGHT_MODE_SNAKE + 3 |
+| 19 | RGBLIGHT_MODE_SNAKE + 4 |
+| 20 | RGBLIGHT_MODE_SNAKE + 5 |
+| 21 | RGBLIGHT_MODE_KNIGHT |
+| 22 | RGBLIGHT_MODE_KNIGHT + 1 |
+| 23 | RGBLIGHT_MODE_KNIGHT + 2 |
+| 24 | RGBLIGHT_MODE_CHRISTMAS |
+| 25 | RGBLIGHT_MODE_STATIC_GRADIENT |
+| 26 | RGBLIGHT_MODE_STATIC_GRADIENT + 1 |
+| 27 | RGBLIGHT_MODE_STATIC_GRADIENT + 2 |
+| 28 | RGBLIGHT_MODE_STATIC_GRADIENT + 3 |
+| 29 | RGBLIGHT_MODE_STATIC_GRADIENT + 4 |
+| 30 | RGBLIGHT_MODE_STATIC_GRADIENT + 5 |
+| 31 | RGBLIGHT_MODE_STATIC_GRADIENT + 6 |
+| 32 | RGBLIGHT_MODE_STATIC_GRADIENT + 7 |
+| 33 | RGBLIGHT_MODE_STATIC_GRADIENT + 8 |
+| 34 | RGBLIGHT_MODE_STATIC_GRADIENT + 9 |
+| 35 | RGBLIGHT_MODE_RGB_TEST |
+| 36 | RGBLIGHT_MODE_ALTERNATING |
+|-----------------|-----------------------------------|
+ *****/
+
+#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_SINGLE_DYNAMIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_MULTI_DYNAMIC(sym) RGBLIGHT_MODE_##sym,
+#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##sym,
+#define _RGBM_TMP_DYNAMIC(sym, msym) RGBLIGHT_MODE_##sym,
+enum RGBLIGHT_EFFECT_MODE {
+ RGBLIGHT_MODE_zero = 0,
+#include "rgblight_modes.h"
+ RGBLIGHT_MODE_last
+};
+
+#ifndef RGBLIGHT_H_DUMMY_DEFINE
+
+# define RGBLIGHT_MODES (RGBLIGHT_MODE_last - 1)
+
+// sample: #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85
+
+# ifndef RGBLIGHT_EFFECT_BREATHE_MAX
+# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0-255
+# endif
+
+# ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH
+# define RGBLIGHT_EFFECT_SNAKE_LENGTH 4
+# endif
+
+# ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH
+# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
+# endif
+
+# ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
+# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0
+# endif
+
+# ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM
+# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM (effect_num_leds)
+# endif
+
+# ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL
+# define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 1000
+# endif
+
+# ifndef RGBLIGHT_EFFECT_CHRISTMAS_STEP
+# define RGBLIGHT_EFFECT_CHRISTMAS_STEP 2
+# endif
+
+# ifndef RGBLIGHT_HUE_STEP
+# define RGBLIGHT_HUE_STEP 8
+# endif
+# ifndef RGBLIGHT_SAT_STEP
+# define RGBLIGHT_SAT_STEP 17
+# endif
+# ifndef RGBLIGHT_VAL_STEP
+# define RGBLIGHT_VAL_STEP 17
+# endif
+# ifndef RGBLIGHT_LIMIT_VAL
+# define RGBLIGHT_LIMIT_VAL 255
+# endif
+
+# define RGBLED_TIMER_TOP F_CPU / (256 * 64)
// #define RGBLED_TIMER_TOP 0xFF10
-#include <stdint.h>
-#include <stdbool.h>
-#include "eeconfig.h"
-#ifndef RGBLIGHT_CUSTOM_DRIVER
-#include "ws2812.h"
-#endif
-#include "color.h"
-#include "rgblight_list.h"
+# include <stdint.h>
+# include <stdbool.h>
+# include "eeconfig.h"
+# ifndef RGBLIGHT_CUSTOM_DRIVER
+# include "ws2812.h"
+# endif
+# include "color.h"
+# include "rgblight_list.h"
+
+# if defined(__AVR__)
+# include <avr/pgmspace.h>
+# endif
extern LED_TYPE led[RGBLED_NUM];
-extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM;
-extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM;
-extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM;
-extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM;
-extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM;
+extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM;
+extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM;
+extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM;
+extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM;
+extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM;
extern const uint16_t RGBLED_RGBTEST_INTERVALS[1] PROGMEM;
+extern bool is_rgblight_initialized;
+// Should stay in sycn with rgb matrix config as we reuse eeprom storage for both (for now)
typedef union {
- uint32_t raw;
- struct {
- bool enable :1;
- uint8_t mode :6;
- uint16_t hue :9;
- uint8_t sat :8;
- uint8_t val :8;
- uint8_t speed :8;//EECONFIG needs to be increased to support this
- };
+ uint32_t raw;
+ struct {
+ bool enable : 1;
+ uint8_t mode : 7;
+ uint8_t hue : 8;
+ uint8_t sat : 8;
+ uint8_t val : 8;
+ uint8_t speed : 8; // EECONFIG needs to be increased to support this
+ };
} rgblight_config_t;
-void rgblight_init(void);
+typedef struct _rgblight_status_t {
+ uint8_t base_mode;
+ bool timer_enabled;
+# ifdef RGBLIGHT_SPLIT
+ uint8_t change_flags;
+# endif
+} rgblight_status_t;
+
+/* === Utility Functions ===*/
+void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1);
+void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); // without RGBLIGHT_LIMIT_VAL check
+void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1);
+
+/* === Low level Functions === */
+void rgblight_set(void);
+void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds);
+
+/* === Effects and Animations Functions === */
+/* effect range setting */
+void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds);
+
+/* direct operation */
+void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index);
+void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index);
+void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8_t end);
+void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end);
+void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b);
+
+# ifndef RGBLIGHT_SPLIT
+void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b);
+void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b);
+void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val);
+void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val);
+# endif
+
+/* effect mode change */
+void rgblight_mode(uint8_t mode);
+void rgblight_mode_noeeprom(uint8_t mode);
void rgblight_increase(void);
void rgblight_decrease(void);
+void rgblight_step(void);
+void rgblight_step_noeeprom(void);
+void rgblight_step_reverse(void);
+void rgblight_step_reverse_noeeprom(void);
+
+/* effects mode disable/enable */
void rgblight_toggle(void);
+void rgblight_toggle_noeeprom(void);
void rgblight_enable(void);
+void rgblight_enable_noeeprom(void);
void rgblight_disable(void);
-void rgblight_step(void);
-void rgblight_step_reverse(void);
-uint8_t rgblight_get_mode(void);
-void rgblight_mode(uint8_t mode);
-void rgblight_set(void);
-void rgblight_update_dword(uint32_t dword);
+void rgblight_disable_noeeprom(void);
+
+/* hue, sat, val change */
void rgblight_increase_hue(void);
+void rgblight_increase_hue_noeeprom(void);
void rgblight_decrease_hue(void);
+void rgblight_decrease_hue_noeeprom(void);
void rgblight_increase_sat(void);
+void rgblight_increase_sat_noeeprom(void);
void rgblight_decrease_sat(void);
+void rgblight_decrease_sat_noeeprom(void);
void rgblight_increase_val(void);
+void rgblight_increase_val_noeeprom(void);
void rgblight_decrease_val(void);
+void rgblight_decrease_val_noeeprom(void);
void rgblight_increase_speed(void);
void rgblight_decrease_speed(void);
-void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val);
-uint16_t rgblight_get_hue(void);
+void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val);
+void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val);
+
+/* query */
+uint8_t rgblight_get_mode(void);
+uint8_t rgblight_get_hue(void);
uint8_t rgblight_get_sat(void);
uint8_t rgblight_get_val(void);
-void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b);
-void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index);
-void rgblight_sethsv_at(uint16_t hue, uint8_t sat, uint8_t val, uint8_t index);
+/* === qmk_firmware (core)internal Functions === */
+void rgblight_init(void);
+uint32_t rgblight_read_dword(void);
+void rgblight_update_dword(uint32_t dword);
uint32_t eeconfig_read_rgblight(void);
-void eeconfig_update_rgblight(uint32_t val);
-void eeconfig_update_rgblight_default(void);
-void eeconfig_debug_rgblight(void);
+void eeconfig_update_rgblight(uint32_t val);
+void eeconfig_update_rgblight_default(void);
+void eeconfig_debug_rgblight(void);
void rgb_matrix_increase(void);
void rgb_matrix_decrease(void);
-void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1);
-void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1);
-
-void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val);
-void rgblight_mode_noeeprom(uint8_t mode);
-void rgblight_toggle_noeeprom(void);
-void rgblight_enable_noeeprom(void);
-void rgblight_disable_noeeprom(void);
-
-void rgblight_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom);
+void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom);
void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom);
-
-#define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)
+# define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)
void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b);
void rgblight_task(void);
@@ -155,12 +263,52 @@ void rgblight_timer_init(void);
void rgblight_timer_enable(void);
void rgblight_timer_disable(void);
void rgblight_timer_toggle(void);
-void rgblight_effect_breathing(uint8_t interval);
-void rgblight_effect_rainbow_mood(uint8_t interval);
-void rgblight_effect_rainbow_swirl(uint8_t interval);
-void rgblight_effect_snake(uint8_t interval);
-void rgblight_effect_knight(uint8_t interval);
-void rgblight_effect_christmas(void);
-void rgblight_effect_rgbtest(void);
-
-#endif
+
+# ifdef RGBLIGHT_SPLIT
+# define RGBLIGHT_STATUS_CHANGE_MODE (1 << 0)
+# define RGBLIGHT_STATUS_CHANGE_HSVS (1 << 1)
+# define RGBLIGHT_STATUS_CHANGE_TIMER (1 << 2)
+# define RGBLIGHT_STATUS_ANIMATION_TICK (1 << 3)
+
+typedef struct _rgblight_syncinfo_t {
+ rgblight_config_t config;
+ rgblight_status_t status;
+} rgblight_syncinfo_t;
+
+/* for split keyboard master side */
+uint8_t rgblight_get_change_flags(void);
+void rgblight_clear_change_flags(void);
+void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo);
+/* for split keyboard slave side */
+void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom);
+# endif
+
+# ifdef RGBLIGHT_USE_TIMER
+
+typedef struct _animation_status_t {
+ uint16_t last_timer;
+ uint8_t delta; /* mode - base_mode */
+ bool restart;
+ union {
+ uint16_t pos16;
+ uint8_t pos;
+ int8_t current_hue;
+ uint16_t current_offset;
+ };
+} animation_status_t;
+
+extern animation_status_t animation_status;
+
+void rgblight_effect_breathing(animation_status_t *anim);
+void rgblight_effect_rainbow_mood(animation_status_t *anim);
+void rgblight_effect_rainbow_swirl(animation_status_t *anim);
+void rgblight_effect_snake(animation_status_t *anim);
+void rgblight_effect_knight(animation_status_t *anim);
+void rgblight_effect_christmas(animation_status_t *anim);
+void rgblight_effect_rgbtest(animation_status_t *anim);
+void rgblight_effect_alternating(animation_status_t *anim);
+
+# endif
+
+#endif // #ifndef RGBLIGHT_H_DUMMY_DEFINE
+#endif // RGBLIGHT_H
diff --git a/keyboards/mxss/rules.mk b/keyboards/mxss/rules.mk
index f9210319e..ccdca3fbe 100644
--- a/keyboards/mxss/rules.mk
+++ b/keyboards/mxss/rules.mk
@@ -14,26 +14,28 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+SRC += mxss_frontled.c
+
# Remove the common RGB light code and use my iteration instead
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
SRC += rgblight.c
+SRC += color.c
SRC += ws2812.c
CIE1931_CURVE = yes
-LED_BREATHING_TABLE = yes
diff --git a/keyboards/mxss/templates/keymap.c b/keyboards/mxss/templates/keymap.c
index 13dbb7206..a18cff77f 100644
--- a/keyboards/mxss/templates/keymap.c
+++ b/keyboards/mxss/templates/keymap.c
@@ -14,23 +14,24 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "mxss_frontled.h"
-// Predefined colors for layers
+hs_set caps_color = { .hue = 0, .sat = 255 };
+
+// Colors for layers
// Format: {hue, saturation}
// {0, 0} to turn off the LED
// Add additional rows to handle more layers
-hs_set layer_colors[] = {
- [0] = {0, 0}, // Color for Layer 0
- [1] = {86, 255}, // Color for Layer 1
- [2] = {36, 255}, // Color for Layer 2
- [3] = {185, 255}, // Color for Layer 3
+hs_set layer_colors[4] = {
+ [0] = {.hue = 0, .sat = 0}, // Color for Layer 0
+ [1] = {.hue = 86, .sat = 255}, // Color for Layer 1
+ [2] = {.hue = 36, .sat = 255}, // Color for Layer 2
+ [3] = {.hue = 185, .sat = 255}, // Color for Layer 3
};
-const size_t lc_size = sizeof(layer_colors) / sizeof(uint16_t);
+size_t lc_size = sizeof(layer_colors) / sizeof(uint16_t);
// Use NEW_SAFE_RANGE to define new custom keycodes in order to not overwrite the ones used for front LED control
enum custom_keycodes {
- MY_KEYCODE = NEW_SAFE_RANGE,
+ MY_KEYCODE = NEW_SAFE_RANGE,
};
diff --git a/keyboards/nafuda/config.h b/keyboards/nafuda/config.h
index 3db4401d4..be3348668 100644
--- a/keyboards/nafuda/config.h
+++ b/keyboards/nafuda/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D1, D0, D4 }
#define MATRIX_COL_PINS { F4, F5, F6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/naked48/rev1/config.h b/keyboards/naked48/rev1/config.h
index d770fefb4..21f7aa55e 100644
--- a/keyboards/naked48/rev1/config.h
+++ b/keyboards/naked48/rev1/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { D4, C6, D7, E6 }
#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, B6, B4, B5, B2, B2 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/naked48/rules.mk b/keyboards/naked48/rules.mk
index 75e073df6..e4a63a7b2 100644
--- a/keyboards/naked48/rules.mk
+++ b/keyboards/naked48/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/naked60/rev1/config.h b/keyboards/naked60/rev1/config.h
index ac0c0ab2f..b082e1227 100644
--- a/keyboards/naked60/rev1/config.h
+++ b/keyboards/naked60/rev1/config.h
@@ -41,6 +41,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MATRIX_ROW_PINS_RIGHT { D1, D0, D4, C6, B6 }
//#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, D7, E6, B4, B5, D3 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/naked60/rules.mk b/keyboards/naked60/rules.mk
index f5bce8d50..fa1b630d4 100644
--- a/keyboards/naked60/rules.mk
+++ b/keyboards/naked60/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/naked64/rev1/config.h b/keyboards/naked64/rev1/config.h
index 2e48edbc0..d9aff6be1 100644
--- a/keyboards/naked64/rev1/config.h
+++ b/keyboards/naked64/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { D4, C6, D7, E6, B4, B5, B2, B2 }
#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/naked64/rules.mk b/keyboards/naked64/rules.mk
index 864baccc8..0d18a5650 100644
--- a/keyboards/naked64/rules.mk
+++ b/keyboards/naked64/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/namecard2x4/rules.mk b/keyboards/namecard2x4/rules.mk
index 4c4f8c9ee..1b9e03d97 100644
--- a/keyboards/namecard2x4/rules.mk
+++ b/keyboards/namecard2x4/rules.mk
@@ -14,22 +14,22 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
#UNICODEMAP_ENABLE = yes # for emoji user
#RGBLIGHT_ENABLE = yes # uncomment if you want addressable led strips
diff --git a/keyboards/ncc1701kb/info.json b/keyboards/ncc1701kb/info.json
index bc0f04db1..d5a80ba0d 100644
--- a/keyboards/ncc1701kb/info.json
+++ b/keyboards/ncc1701kb/info.json
@@ -6,7 +6,17 @@
"height": 3,
"layouts": {
"LAYOUT": {
- "layout": [{"x":0, "y":0}, {"label":"Encoder", "x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}]
+ "layout": [
+ {"x":0, "y":0},
+ {"label":"Encoder", "x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":0, "y":1},
+ {"x":1, "y":1},
+ {"x":2, "y":1},
+ {"x":0, "y":2},
+ {"x":1, "y":2},
+ {"x":2, "y":2}
+ ]
}
}
}
diff --git a/keyboards/ncc1701kb/keymaps/brushsize/keymap.c b/keyboards/ncc1701kb/keymaps/brushsize/keymap.c
new file mode 100644
index 000000000..4150e7099
--- /dev/null
+++ b/keyboards/ncc1701kb/keymaps/brushsize/keymap.c
@@ -0,0 +1,51 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* LAYER 0
+ * ,-----------------------.
+ * | << | MUTE | >> | ENCODER - PRESS (MUTE) / KNOB (Brush size)
+ * |-------+-------+-------|
+ * | STOP | PLAY | MEDIA |
+ * |-------+-------+-------|
+ * | CALC | MAIL | PC/FN |
+ * `-----------------------'
+ */
+[0] = LAYOUT(
+ KC_MPRV, KC_MUTE, KC_MNXT,
+ KC_MSTP, KC_MPLY, KC_MSEL,
+ KC_CALC, KC_MAIL, LT(1, KC_MYCM)
+),
+
+/* LAYER 1
+ * ,-----------------------.
+ * |BL TOG | | BREATH|
+ * |-------+-------+-------|
+ * | BL + | BL - |BL CYCL|
+ * |-------+-------+-------|
+ * | BL ON | BL OFF| |
+ * `-----------------------'
+ */
+[1] = LAYOUT(
+ BL_TOGG, KC_TRNS, BL_BRTG,
+ BL_INC, BL_DEC, BL_STEP,
+ BL_ON, BL_OFF, KC_TRNS
+)
+
+};
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { /* First encoder */
+ if (clockwise) {
+ tap_code(KC_RBRC);
+ } else {
+ tap_code(KC_LBRC);
+ }
+ } else if (index == 1) { /* Second encoder */
+ if (clockwise) {
+ tap_code(KC_RBRC);
+ } else {
+ tap_code(KC_LBRC);
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/nek_type_a/rules.mk b/keyboards/nek_type_a/rules.mk
index db5b1642c..8ee1054bf 100644
--- a/keyboards/nek_type_a/rules.mk
+++ b/keyboards/nek_type_a/rules.mk
@@ -14,10 +14,10 @@ F_CPU = 8000000
# ATmega328P USBasp
BOOTLOADER = caterina
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
DEBUG_ENABLE = yes
BLUETOOTH = AdafruitBLE
diff --git a/keyboards/newgame40/rules.mk b/keyboards/newgame40/rules.mk
index ab07dd2b6..148981354 100644
--- a/keyboards/newgame40/rules.mk
+++ b/keyboards/newgame40/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/nightmare/rules.mk b/keyboards/nightmare/rules.mk
index 66a778b6c..5fa842c8b 100644
--- a/keyboards/nightmare/rules.mk
+++ b/keyboards/nightmare/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/nk65/config.h b/keyboards/nk65/config.h
index 767959b62..826e54180 100755
--- a/keyboards/nk65/config.h
+++ b/keyboards/nk65/config.h
@@ -140,4 +140,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 32
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/nomu30/rules.mk b/keyboards/nomu30/rules.mk
index e05730c69..4b7193da4 100644
--- a/keyboards/nomu30/rules.mk
+++ b/keyboards/nomu30/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/novelpad/rules.mk b/keyboards/novelpad/rules.mk
index 54e4cea03..ea58b3da0 100755
--- a/keyboards/novelpad/rules.mk
+++ b/keyboards/novelpad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/noxary/220/rules.mk b/keyboards/noxary/220/rules.mk
index 785fb488d..f099fefb5 100644
--- a/keyboards/noxary/220/rules.mk
+++ b/keyboards/noxary/220/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_6x4
diff --git a/keyboards/noxary/260/rules.mk b/keyboards/noxary/260/rules.mk
index 4d9977cd3..f17a6c17d 100644
--- a/keyboards/noxary/260/rules.mk
+++ b/keyboards/noxary/260/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
EXTRAFLAGS += -flto
LAYOUTS = 60_ansi 60_iso 60_hhkb 60_tsangan_hhkb
diff --git a/keyboards/noxary/268/rules.mk b/keyboards/noxary/268/rules.mk
index 59e6b524c..b57e64fce 100644
--- a/keyboards/noxary/268/rules.mk
+++ b/keyboards/noxary/268/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= no # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/noxary/268_2/268_2.c b/keyboards/noxary/268_2/268_2.c
index 9e2d82236..5af56a386 100644
--- a/keyboards/noxary/268_2/268_2.c
+++ b/keyboards/noxary/268_2/268_2.c
@@ -21,7 +21,6 @@ void led_set_kb(uint8_t usb_led) {
writePinHigh(B0);
} else {
setPinInput(B0);
- writePinLow(B0);
}
led_set_user(usb_led);
diff --git a/keyboards/noxary/268_2/rules.mk b/keyboards/noxary/268_2/rules.mk
index 2f9d08765..230ecc453 100644
--- a/keyboards/noxary/268_2/rules.mk
+++ b/keyboards/noxary/268_2/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/noxary/280/280.c b/keyboards/noxary/280/280.c
index 441f0ad84..1743ebc0d 100644
--- a/keyboards/noxary/280/280.c
+++ b/keyboards/noxary/280/280.c
@@ -28,43 +28,10 @@ void matrix_init_kb(void) {
matrix_init_user();
}
-/*
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
-
- matrix_scan_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_record_user(keycode, record);
-}
-
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- led_set_user(usb_led);
-}
-
-*/
-
-
-void led_set_kb(uint8_t usb_led) {
-
- if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
- writePinLow(D5);
- } else {
- writePinHigh(D5);
- }
-
- if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
- writePinLow(D0);
- } else {
- writePinHigh(D0);
+bool led_update_kb(led_t led_state) {
+ if(led_update_user(led_state)) {
+ writePin(D5, led_state.caps_lock);
+ writePin(D0, led_state.scroll_lock);
}
-
- led_set_user(usb_led);
+ return true;
} \ No newline at end of file
diff --git a/keyboards/noxary/280/keymaps/via/keymap.c b/keyboards/noxary/280/keymaps/via/keymap.c
new file mode 100644
index 000000000..d7fe69170
--- /dev/null
+++ b/keyboards/noxary/280/keymaps/via/keymap.c
@@ -0,0 +1,118 @@
+/* Copyright 2019 Rozakin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _BL 0
+#define _FL1 1
+#define _FL2 2
+#define _FL3 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* _BL: Base Layer(Default) - For ISO enter use ANSI enter
+ * ,------------------------------------------------------------. ,--------------.
+ * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11| f12| |Prnt|ScLk|Paus|
+ * |------------------------------------------------------------| |--------------|
+ * | ~ | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|BSpc| | Ins|Home|PgUp|
+ * |------------------------------------------------------------| |--------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | Del| End|PgDn|
+ * |------------------------------------------------------------| `--------------'
+ * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| Ent|
+ * |------------------------------------------------------------| ,----.
+ * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift|Mo(1)| | Up |
+ * |------------------------------------------------------------| ,--------------.
+ * |Ctrl|Win |Alt | Space |Alt |Win |Mo(1) |Ctrl | |Left| Dn |Rght|
+ * `------------------------------------------------------------' `--------------'
+ */
+ [_BL] = LAYOUT(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL1), KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT),
+ /* _FL1: Function Layer 1 - For ISO enter use ANSI enter
+ * ,------------------------------------------------------------. ,--------------.
+ * | | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| |--------------|
+ * | | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| |--------------|
+ * | | | | |RST| | | | | | | | | | | | | |
+ * |------------------------------------------------------------| `--------------'
+ * | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| ,----.
+ * | | | | | | | | | |Bl-|Bl+| | Mute| | |Vol+|
+ * |------------------------------------------------------------| ,--------------.
+ * | | | | BL_Toggle | | | | | | |Vol-| |
+ * `------------------------------------------------------------' `--------------'
+ */
+ [_FL1] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, _______, KC_MUTE, _______, KC_VOLU,
+ _______, _______, _______, BL_TOGG, _______, _______, _______, _______, _______, KC_VOLD, _______),
+ /* _FL2: Function Layer 2 - For ISO enter use ANSI enter
+ * ,------------------------------------------------------------. ,--------------.
+ * | | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| |--------------|
+ * | | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| |--------------|
+ * | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| `--------------'
+ * | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| ,----.
+ * | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| ,--------------.
+ * | | | | | | | | | | | | |
+ * `------------------------------------------------------------' `--------------'
+ */
+ [_FL2] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+ /* _FL3: Function Layer 3 - For ISO enter use ANSI enter
+ * ,------------------------------------------------------------. ,--------------.
+ * | | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| |--------------|
+ * | | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| |--------------|
+ * | | | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| `--------------'
+ * | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| ,----.
+ * | | | | | | | | | | | | | | | | |
+ * |------------------------------------------------------------| ,--------------.
+ * | | | | | | | | | | | | |
+ * `------------------------------------------------------------' `--------------'
+ */
+ [_FL3] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+
+ };
+
diff --git a/keyboards/noxary/280/keymaps/via/readme.md b/keyboards/noxary/280/keymaps/via/readme.md
new file mode 100644
index 000000000..71535a3bd
--- /dev/null
+++ b/keyboards/noxary/280/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA keymap for Noxary 280 \ No newline at end of file
diff --git a/keyboards/noxary/280/keymaps/via/rules.mk b/keyboards/noxary/280/keymaps/via/rules.mk
new file mode 100644
index 000000000..96d2d189b
--- /dev/null
+++ b/keyboards/noxary/280/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+MOUSEKEY_ENABLE = no
diff --git a/keyboards/noxary/280/rules.mk b/keyboards/noxary/280/rules.mk
index 7ac7c8f65..e75034e26 100644
--- a/keyboards/noxary/280/rules.mk
+++ b/keyboards/noxary/280/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/noxary/x268/rules.mk b/keyboards/noxary/x268/rules.mk
index 8b2d28fcd..a8654dc91 100644
--- a/keyboards/noxary/x268/rules.mk
+++ b/keyboards/noxary/x268/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/numatreus/config.h b/keyboards/numatreus/config.h
new file mode 100644
index 000000000..5b16ef34d
--- /dev/null
+++ b/keyboards/numatreus/config.h
@@ -0,0 +1,100 @@
+/*
+Copyright 2019 yohei <yohewi@gmail.com>
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0xE80A
+#define DEVICE_VER 0x0001
+#define MANUFACTURER yohewi
+#define PRODUCT NumAtreus
+#define DESCRIPTION QMK keyboard firmware for NumAtreus
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 11
+
+
+// wiring of each half
+#define MATRIX_ROW_PINS { C6, D7, E6, B4 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, D2, D1, D0, D4 }
+
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION ROW2COL
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+//#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* ws2812 RGB LED */
+#define RGB_DI_PIN D3
+
+// keyboard RGB LED support
+//#define RGBLIGHT_ANIMATIONS : see ./rules.mk: LED_ANIMATIONS = yes or no
+// see ./rules.mk: LED_BACK_ENABLE or LED_UNDERGLOW_ENABLE set yes
+#define RGBLED_NUM 6
+
+#define RGBLIGHT_LIMIT_VAL 200
+#define RGBLIGHT_VAL_STEP 17
+
+#define RGBLIGHT_HUE_STEP 10
+#define RGBLIGHT_SAT_STEP 17
+
+#if defined(RGBLIGHT_ENABLE)
+// USB_MAX_POWER_CONSUMPTION value for stonehenge30 keyboard
+// 120 RGBoff, OLEDoff
+// 120 OLED
+// 330 RGB 6
+// 300 RGB 32
+// 310 OLED & RGB 32
+ #define USB_MAX_POWER_CONSUMPTION 400
+#else
+ // fix iPhone and iPad power adapter issue
+ // iOS device need lessthan 100
+ #define USB_MAX_POWER_CONSUMPTION 100
+#endif
+
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/numatreus/info.json b/keyboards/numatreus/info.json
new file mode 100644
index 000000000..452d2a915
--- /dev/null
+++ b/keyboards/numatreus/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "numatreus",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 13,
+ "height": 4.7,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"x":0, "y":0.6}, {"x":1, "y":0.35}, {"x":2, "y":0}, {"x":3, "y":0.35}, {"x":4, "y":0.7}, {"x":8, "y":0.7}, {"x":9, "y":0.35}, {"x":10, "y":0}, {"x":11, "y":0.35}, {"x":12, "y":0.6}, {"x":0, "y":1.6}, {"x":1, "y":1.35}, {"x":2, "y":1}, {"x":3, "y":1.35}, {"x":4, "y":1.7}, {"x":8, "y":1.7}, {"x":9, "y":1.35}, {"x":10, "y":1}, {"x":11, "y":1.35}, {"x":12, "y":1.6}, {"x":0, "y":2.6}, {"x":1, "y":2.35}, {"x":2, "y":2}, {"x":3, "y":2.35}, {"x":4, "y":2.7}, {"x":8, "y":2.7}, {"x":9, "y":2.35}, {"x":10, "y":2}, {"x":11, "y":2.35}, {"x":12, "y":2.6}, {"x":0, "y":3.6}, {"x":1, "y":3.35}, {"x":2, "y":3}, {"x":3, "y":3.35}, {"x":4, "y":3.7}, {"x":5, "y":2.95, "h":1.5}, {"x":7, "y":2.95, "h":1.5}, {"x":8, "y":3.7}, {"x":9, "y":3.35}, {"x":10, "y":3}, {"x":11, "y":3.35}, {"x":12, "y":3.6}]
+ }
+ }
+}
diff --git a/keyboards/numatreus/keymaps/default/keymap.c b/keyboards/numatreus/keymaps/default/keymap.c
new file mode 100644
index 000000000..99053002f
--- /dev/null
+++ b/keyboards/numatreus/keymaps/default/keymap.c
@@ -0,0 +1,60 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum layer_number {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT( /* Qwerty */
+ /*
+ * Q W E R T || Y U I O P
+ * A S D F G || H J K L ;
+ * Z X C V B || N M , . /
+ * SFT TAB CTL LW space bksp||ALT Ent RS - ' =
+ */
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
+ KC_LSFT, KC_TAB, KC_LCTL, MO(_LOWER), KC_SPC, KC_BSPC, KC_LALT, KC_ENT, MO(_RAISE), KC_MINS, KC_QUOT, KC_PEQL
+ ),
+
+ /*
+ * 1 2 3 4 5 || 6 7 8 9 0
+ * F1 F2 F3 F4 F5 || F6 F7 F8 F9 F10
+ * F11 F12 ( ) & || ` [ ] + \
+ * lower insert super shift space bksp|| alt Ent fn . - =
+ */
+ [_RAISE] = LAYOUT( /* [> RAISE <] */
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 ,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 ,
+ KC_F11, KC_F12, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_LBRC, KC_RBRC, KC_PSLS, KC_BSLS ,
+ KC_NO, KC_INS, KC_LGUI, KC_LSFT, KC_SPC, KC_BSPC, KC_LALT, KC_ENT, KC_TRNS, KC_DOT, KC_PMNS, KC_EQL ),
+
+
+ /*
+ * ! @ # $ % || ^ & * ( )
+ * DEL ESC || PGDN PGUP PSCR
+ * CAPS volup ENT reset || UP
+ * voldn super shift space bspc|| alt ent LEFT DOWN RGHT
+ */
+ [_LOWER] = LAYOUT( /* [> LOWER <] */
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN ,
+ KC_DELT, KC_ESC, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_PGUP, KC_PSCR, KC_NO, KC_NO,
+ KC_CAPS, KC_VOLU, KC_NO, KC_ENT, RESET, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO ,
+ KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_SPC, KC_BSPC, KC_LALT, KC_ENT, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT )
+
+};
diff --git a/keyboards/numatreus/keymaps/hdbx/keymap.c b/keyboards/numatreus/keymaps/hdbx/keymap.c
new file mode 100644
index 000000000..98fe4d67d
--- /dev/null
+++ b/keyboards/numatreus/keymaps/hdbx/keymap.c
@@ -0,0 +1,230 @@
+// WindowsでJIS配列として認識しているときに、オシャレなUS配列用キーキャップを使うためのキーマップです。
+// Google日本語入力の場合、以下のキー設定を行うとLower,Raiseのタップでそれぞれ半角入力と全角入力を切り替えできるようになります。
+// ・Henkan(入力文字なし/直接入力)に「IMEを有効化」を割り当て
+// ・Muhenkan(入力文字なし/直接入力)に「IMEを無効化」を割り当て
+
+#include QMK_KEYBOARD_H
+#include "keymap_jp.h" // qmk_firmware-master/quantum/keymap_extras/keymap_jp.h 日本語キーボード設定用
+#include <sendstring_jis.h> // macro sendstring for jis keyboard マクロ文字列送信時に日本語キーボード設定での文字化け回避
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layer_number {
+ _QWERTY,
+ _HDBX,
+ _LOWER,
+ _RAISE,
+ _GAME,
+ _ADJUST
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ HDBX,
+ MCR1, // マクロ1
+ MCR2, // マクロ2
+ MCR3, // マクロ3
+ MCR4, // マクロ4
+ MCR5, // マクロ5
+ WN_SCLN, // タップでJISの「:」 シフトでJISの「;」 (Windows)
+ DM_PLY1,
+ DM_PLY2,
+ DM_REC1,
+ DM_REC2,
+ DM_RSTP,
+};
+
+// Use Dynamic macro
+
+// Fillers to make layering more clear
+#define LOWER LT(_LOWER, KC_MHEN) // タップで無変換 ホールドでLower
+#define RAISE LT(_RAISE, KC_HENK) // タップで変換 ホールドでRaise
+#define GUI_ESC GUI_T(KC_ESC) // タップでESC ホールドでGUI
+#define SFT_BS SFT_T(KC_BSPC) // タップでBackSpace ホールドでSHIFT
+#define CTL_ENT CTL_T(KC_ENT) // タップでEnter ホールドでCTRL
+#define CTL_TAB CTL_T(KC_TAB) // タップでTAB ホールドでCTRL
+#define SFT_DEL SFT_T(KC_DEL) // タップでDELETE ホールドでSHIFT
+#define ALT_LBR ALT_T(JP_LBRC) // タップで[ ホールドでALT
+#define SFT_RBR SFT_T(JP_RBRC) // タップで] ホールドでSHIFT
+#define SFT_SPC S(KC_SPC) // Shift + Space
+#define WN_CAPS S(KC_CAPS) // Caps Lock (Windows)
+#define GAME TO(_GAME) // _GAMEレイヤーへ移動
+#define ADJUST TO(_ADJUST) // _ADJUSTレイヤーへ移動
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Qwerty配列
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | R | T | | Y | U | I | O | P |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | S | D | F | G | | H | J | K | L | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z | X | C | V | B | | N | M | , | . | / |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |Alt/[ |WINESC| ~ |Sft/Bs|Lower |CtlEnt|Space |Raise |CtrlTb| - | ' |Sft/] |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_QWERTY] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, WN_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ ALT_LBR, GUI_ESC, JP_TILD, SFT_BS, LOWER, CTL_ENT, KC_SPC, RAISE, CTL_TAB, KC_MINS, JP_QUOT, SFT_RBR
+ ),
+
+ /* HDBX配列 デフォルトレイヤーをこの配列にしたい場合は、AdjustレイヤーでK (Lower + Raise + K)
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | W | E | , | . | | Y | D | P | F | : |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | A | I | O | U | G | | M | N | T | R | S |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z | X | C | V | B | | H | J | K | L | / |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |Alt/[ |WINESC| ~ |Sft/Bs|Lower |CtlEnt|Space |Raise |CtrlTb| - | ' |Sft/] |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_HDBX] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_COMM, KC_DOT, KC_Y, KC_D, KC_P, KC_F, WN_SCLN,
+ KC_A, KC_I, KC_O, KC_U, KC_G, KC_M, KC_N, KC_T, KC_R, KC_S,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, KC_J, KC_K, KC_L, KC_SLSH,
+ ALT_LBR, GUI_ESC, JP_TILD, SFT_BS, LOWER, CTL_ENT, KC_SPC, RAISE, CTL_TAB, KC_MINS, JP_QUOT, SFT_RBR
+ ),
+
+ /* Lower
+ * ,----------------------------------. ,----------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | | 7 | 8 | 9 | . | Bspc |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | F6 | F7 | F8 | F9 | F10 | | 4 | 5 | 6 | + | * |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * |Zen/Ha|ScLock|Pause | F11 | F12 | | 1 | 2 | 3 | - | / |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Alt | WIN | ` |SftDel|Lower | Ctrl |SftSpc|Raise | 0 | , | = |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_LOWER] = LAYOUT(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_7, KC_8, KC_9, KC_DOT, KC_BSPC,
+ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_4, KC_5, KC_6, KC_PPLS, KC_PAST,
+ KC_ZKHK, KC_SLCK, KC_PAUS, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_PMNS, KC_PSLS,
+ KC_LALT, KC_LGUI, JP_GRV, SFT_DEL, _______, KC_LCTL, SFT_SPC, _______, KC_0, KC_COMM, JP_EQL, KC_ENT
+ ),
+
+ /* Raise
+ * ,----------------------------------. ,----------------------------------.
+ * | ! | @ | # | $ | % | | Home | App | Ins | Calc |PrtScr|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ^ | & | * | \ | | | | Left | Down | Up |Right | ; |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | ` | { | } | < | > | | End | Mute | ( | ) | ? |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Alt | WIN | ` | Del |Lower | Ctrl | Caps |Raise | Ctrl | _ | " |Shift |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_RAISE] = LAYOUT(
+ KC_EXLM, JP_AT, KC_HASH, KC_DLR, KC_PERC, KC_HOME, KC_APP, KC_INS, KC_CALC, KC_PSCR,
+ JP_CIRC, JP_AMPR, JP_ASTR, JP_YEN, JP_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN,
+ JP_GRV, JP_LCBR, JP_RCBR, KC_LT, KC_GT, KC_END, KC_MUTE, JP_LPRN, JP_RPRN, KC_QUES,
+ KC_LALT, KC_LGUI, JP_GRV, KC_DEL, _______, KC_LCTL, WN_CAPS, _______, KC_RCTL, JP_UNDS, JP_DQT, KC_RSFT
+ ),
+
+ /* GAME ゲームやテンキー固定で使用するレイヤーです。AdjustレイヤーでGを押下して遷移。戻るときはtoBaseから。
+ * ,----------------------------------. ,----------------------------------.
+ * | Q | Up | E | R | T | | 7 | 8 | 9 | . | Bspc |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Left | Down |Right | F | G | | 4 | 5 | 6 | + | * |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | Z | X | C | V | B | | 1 | 2 | 3 | - | / |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Alt | Esc | Tab |Shift |Space | Ctrl |toBase| \ | 0 | , | = |Enter |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_GAME] = LAYOUT(
+ KC_Q, KC_UP, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_DOT, KC_BSPC,
+ KC_LEFT, KC_DOWN, KC_RGHT, KC_F, KC_G, KC_4, KC_5, KC_6, KC_PPLS, KC_PAST,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_1, KC_2, KC_3, KC_PMNS, KC_PSLS,
+ KC_LALT, KC_ESC, KC_TAB, KC_LSFT, KC_SPC, KC_LCTL, ADJUST, JP_YEN, KC_0, KC_COMM, JP_EQL, KC_ENT
+ ),
+
+ /* Adjust (Lower + Raise)
+ * ,----------------------------------. ,----------------------------------.
+ * | MCR1 | MCR2 | MCR3 | MCR4 | MCR5 | |DyMcr1|DyMcr2|RcMcr1|RcMcr2|StpRec|
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | | | | |ToGAME| | |Qwerty| HDBX | | |
+ * |------+------+------+------+------| |------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |RESET | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+ [_ADJUST] = LAYOUT(
+ MCR1, MCR2, MCR3, MCR4, MCR5, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, GAME, XXXXXXX, QWERTY, HDBX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ RESET, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ )
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
+return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case HDBX:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_HDBX);
+ }
+ return false;
+ break;
+ static bool lshift = false;
+ case WN_SCLN: // コロン「;:」
+ if (record->event.pressed) {
+ lshift = get_mods() & MOD_BIT(KC_LSFT);
+ if (lshift) {
+ unregister_code(KC_LSFT);
+ tap_code(JP_SCLN);
+ } else {
+ tap_code(JP_SCLN);
+ }
+ }
+ return false;
+ break;
+ case MCR1:
+ if (record->event.pressed) {
+ SEND_STRING("0123456789"); // 送信文字列
+ }
+ return false;
+ break;
+ case MCR2:
+ if (record->event.pressed) {
+ SEND_STRING("hogehoge\n"); // 送信文字列
+ }
+ return false;
+ break;
+ case MCR3:
+ if (record->event.pressed) {
+ SEND_STRING("hoge@hoge.hoge"); // 送信文字列
+ }
+ return false;
+ break;
+ case MCR4:
+ if (record->event.pressed) {
+ SEND_STRING("\"\""SS_TAP(X_LEFT)); // 送信文字列
+ }
+ return false;
+ break;
+ case MCR5:
+ if (record->event.pressed) {
+ SEND_STRING("<>"SS_TAP(X_LEFT)); // 送信文字列
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/numatreus/keymaps/hdbx/rules.mk b/keyboards/numatreus/keymaps/hdbx/rules.mk
new file mode 100644
index 000000000..d4e78b385
--- /dev/null
+++ b/keyboards/numatreus/keymaps/hdbx/rules.mk
@@ -0,0 +1,3 @@
+MOUSEKEY_ENABLE = no
+EXTRAKEY_ENABLE = yes
+DYNAMIC_MACRO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/numatreus/keymaps/like_jis/config.h b/keyboards/numatreus/keymaps/like_jis/config.h
new file mode 100644
index 000000000..961de83e4
--- /dev/null
+++ b/keyboards/numatreus/keymaps/like_jis/config.h
@@ -0,0 +1,59 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+// place overrides here
+
+#ifdef TAPPING_TERM
+#undef TAPPING_TERM
+#endif
+#define TAPPING_TERM 225
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#ifdef MOUSEKEY_ENABLE
+ #undef MOUSEKEY_INTERVAL
+ #define MOUSEKEY_INTERVAL 1
+
+ #undef MOUSEKEY_TIME_TO_MAX
+ #define MOUSEKEY_TIME_TO_MAX 150
+
+ #undef MOUSEKEY_MAX_SPEED
+ #define MOUSEKEY_MAX_SPEED 3
+
+ #undef MOUSEKEY_MOVE_DELTA
+ #define MOUSEKEY_MOVE_DELTA 4
+
+ #undef MOUSEKEY_DELAY
+ #define MOUSEKEY_DELAY 0
+#endif
+
+// Selection of RGBLIGHT MODE to use.
+#if defined(LED_ANIMATIONS)
+ //#define RGBLIGHT_EFFECT_BREATHING
+ #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+ #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ //#define RGBLIGHT_EFFECT_SNAKE
+ #define RGBLIGHT_EFFECT_KNIGHT
+ //#define RGBLIGHT_EFFECT_CHRISTMAS
+ #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+ //#define RGBLIGHT_EFFECT_RGB_TEST
+ //#define RGBLIGHT_EFFECT_ALTERNATING
+#endif
diff --git a/keyboards/numatreus/keymaps/like_jis/keymap.c b/keyboards/numatreus/keymaps/like_jis/keymap.c
new file mode 100644
index 000000000..eb9e9230d
--- /dev/null
+++ b/keyboards/numatreus/keymaps/like_jis/keymap.c
@@ -0,0 +1,196 @@
+#include QMK_KEYBOARD_H
+#include "keymap_jp.h"
+
+
+#ifdef RGBLIGHT_ENABLE
+//Following line allows macro to read current RGB settings
+extern rgblight_config_t rgblight_config;
+#endif
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+enum layer_number {
+ _BASE = 0,
+ _NUMPAD,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+enum custom_keycodes {
+ BASE = SAFE_RANGE,
+ NUMPAD,
+ KANJI,
+ LOWER,
+ RAISE,
+ ADJUST,
+ RGBRST
+};
+
+enum tapdances{
+ TD_CODO = 0,
+ // TD_MNUB,
+};
+
+// Layer Mode aliases
+#define KC_LOWER LOWER
+#define KC_RAISE RAISE
+#define KC_ADJST ADJUST
+#define KC_DLNP NUMPAD //DF(_NUMPAD)
+#define KC_DLBS BASE //DF(_BASE)
+
+#define KC_ZSFT LSFT_T(KC_Z)
+#define KC_MNSF LSFT_T(KC_MINS)
+#define KC_ESCT LCTL_T(KC_ESC)
+#define KC_TBAL LALT_T(KC_TAB)
+#define KC_11SF LSFT_T(KC_F11)
+#define KC_ALAP LALT_T(KC_APP)
+#define KC_JEQL LSFT(KC_MINS)
+#define KC_WLCK LALT(KC_L)
+#define KC_SFEQ LSFT(KC_MINS)
+#define KC_SFPL LSFT(KC_SCLN)
+#define KC_SFAS LSFT(KC_QUOT)
+
+#define KC_CODO TD(TD_CODO)
+// #define KC_MNUB TD(TD_MNUB)
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_CODO] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT),
+ // [TD_MNUB] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, LSFT(KC_RO)),
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT(
+ //,----------------------------------. ,----------------------------------.
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ KC_ZSFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_CODO, KC_UP, KC_MNSF,
+ //|------+------+------+------+------|------+------+------+------+------+------+------|
+ KC_ESCT, KC_TBAL, KC_LGUI, KC_LOWER, KC_BSPC, KC_BSPC, KC_SPC, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_RGHT
+ //|------+------+------+------+-------------+------+------+------+------+------+------|
+ ),
+
+ [_NUMPAD] = LAYOUT(
+ //,----------------------------------. ,----------------------------------.
+ KC_P7, KC_P8, KC_P9, KC_PAST, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_PAST, KC_NLCK,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ KC_P1, KC_P2, KC_P3, KC_PPLS, KC_QUOT, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_QUOT,
+ //|------+------+------+------+------|------+------+------+------+------+------+------|
+ KC_DLBS, KC_P0, KC_PDOT, KC_SFEQ, KC_SPC, KC_DEL, KC_SPC, KC_DLBS, KC_P0, KC_PDOT, KC_SFEQ, KC_BSPC
+ //|------+------+------+------+-------------+------+------+------+------+------+------|
+ ),
+
+ [_LOWER] = LAYOUT(
+ //,----------------------------------. ,----------------------------------.
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_JYEN, KC_LBRC, KC_RBRC,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ KC_11SF, KC_F12, KC_DLNP, KANJI, KC_ENT, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, KC_RO,
+ //|------+------+------+------+------|------+------+------+------+------+------+------|
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ //|------+------+------+------+-------------+------+------+------+------+------+------|
+ ),
+
+ [_RAISE] = LAYOUT(
+ //,----------------------------------. ,----------------------------------.
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, KC_4, KC_5, KC_6, KC_MINS,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, KC_1, KC_2, KC_3, KC_PPLS,
+ //|------+------+------+------+------|------+------+------+------+------+------+------|
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WLCK, KC_TRNS, KC_0, KC_DOT, KC_JEQL
+ //|------+------+------+------+-------------+------+------+------+------+------+------|
+ ),
+
+ [_ADJUST] = LAYOUT(
+ //,----------------------------------. ,----------------------------------.
+ RESET, RGBRST, AG_NORM, AG_SWAP, KC_CAPS, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_SLCK, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN,
+ //|------+------+------+------+------| |------+------+------+------+------|
+ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NLCK, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX,
+ //|------+------+------+------+------|------+------+------+------+------+------+------|
+ KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R
+ //|------+------+------+------+-------------+------+------+------+------+------+------|
+ )
+};
+
+#define L_BASE _BASE
+#define L_NUMPAD (1<<_NUMPAD)
+
+static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+
+ pressed ? layer_on(layer1) : layer_off(layer1);
+ IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
+}
+
+int RGB_current_mode;
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ bool result = false;
+ switch (keycode) {
+ case BASE:
+ if (record->event.pressed) {
+ default_layer_set(L_BASE);
+ }
+ break;
+ case NUMPAD:
+ if (record->event.pressed) {
+ default_layer_set(L_NUMPAD);
+ }
+ break;
+ case LOWER:
+ update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
+ break;
+ case RAISE:
+ update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
+ break;
+ case KANJI:
+ if (record->event.pressed) {
+ if (keymap_config.swap_lalt_lgui == false) {
+ register_code(KC_LANG2);
+ } else {
+ tap_code16(A(KC_GRV));
+ }
+ } else {
+ unregister_code(KC_LANG2);
+ }
+ break;
+ #ifdef RGBLIGHT_ENABLE
+ //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
+ case RGB_MOD:
+ if (record->event.pressed) {
+ rgblight_mode(RGB_current_mode);
+ rgblight_step();
+ RGB_current_mode = rgblight_config.mode;
+ }
+ break;
+ case RGBRST:
+ if (record->event.pressed) {
+ eeconfig_update_rgblight_default();
+ rgblight_enable();
+ RGB_current_mode = rgblight_config.mode;
+ }
+ break;
+ #endif
+ default:
+ result = true;
+ break;
+ }
+
+ return result;
+}
+
+void matrix_init_user(void) {
+ #ifdef RGBLIGHT_ENABLE
+ RGB_current_mode = rgblight_config.mode;
+ #endif
+}
diff --git a/keyboards/numatreus/keymaps/like_jis/rules.mk b/keyboards/numatreus/keymaps/like_jis/rules.mk
new file mode 100644
index 000000000..959653f3f
--- /dev/null
+++ b/keyboards/numatreus/keymaps/like_jis/rules.mk
@@ -0,0 +1,8 @@
+MOUSEKEY_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+LED_ANIMATIONS = yes
+
+ifeq ($(strip $(LED_ANIMATIONS)), yes)
+ OPT_DEFS += -DLED_ANIMATIONS
+endif
diff --git a/keyboards/numatreus/keymaps/yohewi/keymap.c b/keyboards/numatreus/keymaps/yohewi/keymap.c
new file mode 100644
index 000000000..8027a972e
--- /dev/null
+++ b/keyboards/numatreus/keymaps/yohewi/keymap.c
@@ -0,0 +1,61 @@
+#include QMK_KEYBOARD_H
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum layer_number {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+};
+
+enum custom_keycodes {
+ BASE = SAFE_RANGE,
+ LOWER,
+ RAISE,
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /*
+ * q w e r t || y u i o p
+ * a s d f g || h j k l ;
+ * z x c v b || n m , . \
+ * esc tab ctl lw spc bspc|| GRV ent RS / alt -
+ */
+
+ [_QWERTY] = LAYOUT( /* Qwerty */
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
+ SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_BSLS) ,
+ KC_ESC, KC_TAB, KC_LCTL, MO(_LOWER), KC_SPC, KC_BSPC, LALT(KC_GRV), KC_ENT, MO(_RAISE), KC_DOT, KC_RALT, KC_MINS ),
+
+
+ /*
+ * 1 2 3 4 5 || 6 7 8 9 0
+ * # < > = - || _ + ENT
+ * [ ] ( ) & || ` . UP \
+ * TRANS TRANS TRANS TRANS TRANS TRANS|| TRANS TRANS RS LEFT DPWM RGHT
+ */
+ [_RAISE] = LAYOUT( /* [> RAISE <] */
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 ,
+ KC_HASH, KC_LABK, KC_RABK, KC_EQL, KC_MINS, KC_UNDS, KC_PLUS, KC_TRNS, KC_TRNS, KC_ENT ,
+ KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_TRNS, KC_DOT, KC_UP, KC_BSLS ,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT ),
+
+ /*
+ * ! @ # $ % || ^ & * ( )
+ * F1 F2 F3 F4 F5 || F6 F7 F8 F9 F10
+ * F11 F12 reset || , UP \
+ * TRNS TRNS TRNS TRNS TRNS TRNS||TRNS TRNS TRNS LEFT DPWM RGHT
+ */
+
+ [_LOWER] = LAYOUT( /* [> LOWER <] */
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN ,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 ,
+ KC_F11, KC_F12, KC_NO, KC_NO, RESET, KC_TRNS, KC_TRNS, KC_QUOT, KC_UP, KC_BSLS ,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENT, TO(_QWERTY), KC_LEFT, KC_DOWN, KC_RGHT )
+};
diff --git a/keyboards/numatreus/numatreus.c b/keyboards/numatreus/numatreus.c
new file mode 100644
index 000000000..0338210e8
--- /dev/null
+++ b/keyboards/numatreus/numatreus.c
@@ -0,0 +1 @@
+#include "numatreus.h" \ No newline at end of file
diff --git a/keyboards/numatreus/numatreus.h b/keyboards/numatreus/numatreus.h
new file mode 100644
index 000000000..6ec56504a
--- /dev/null
+++ b/keyboards/numatreus/numatreus.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include "quantum.h"
+
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+#define LAYOUT( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+ { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \
+ { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \
+ { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \
+ { k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b } \
+}
diff --git a/keyboards/numatreus/readme.md b/keyboards/numatreus/readme.md
new file mode 100644
index 000000000..e945c3146
--- /dev/null
+++ b/keyboards/numatreus/readme.md
@@ -0,0 +1,13 @@
+# NumAtreus
+
+A small mechanical keyboard that is based around the shape of the human hand.
+
+* Keyboard Maintainer: yohewi(yohewi@gmail.com)
+* Hardware Supported: NumAtreus, PCB
+* Hardware Availability: [Case Data](https://github.com/yohewi/NumAtreuscase)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make numatreus:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/numatreus/rules.mk b/keyboards/numatreus/rules.mk
new file mode 100644
index 000000000..f1efe4cc5
--- /dev/null
+++ b/keyboards/numatreus/rules.mk
@@ -0,0 +1,36 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+#BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+#MIDI_ENABLE = no # MIDI controls
+UNICODE_ENABLE = yes # Unicode
+#BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+#TAP_DANCE_ENABLE = yes
+RGBLIGHT_ENABLE = no
+LED_ANIMATIONS = no
+
+ifeq ($(strip $(LED_ANIMATIONS)), yes)
+ OPT_DEFS += -DLED_ANIMATIONS
+endif
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/ogre/ergo_single/config.h b/keyboards/ogre/ergo_single/config.h
new file mode 100644
index 000000000..68e94a11a
--- /dev/null
+++ b/keyboards/ogre/ergo_single/config.h
@@ -0,0 +1,45 @@
+/*
+Copyright 2020 ctrlshiftba
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0000
+#define DEVICE_VER 0x0001
+#define MANUFACTURER ctrlshiftba
+#define PRODUCT ergo_single
+#define DESCRIPTION a keycap friendly ergo. the non-split version
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 7
+
+/* Keyboard Matrix Assignments */
+#define MATRIX_ROW_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN B6
+#define RGBLED_NUM 14
+#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 13, 12,11, 10, 9, 8, 7}
+#define RGBLIGHT_ANIMATIONS
+#define DEBOUNCE 5
diff --git a/keyboards/ogre/ergo_single/ergo_single.c b/keyboards/ogre/ergo_single/ergo_single.c
new file mode 100644
index 000000000..b48b0a02e
--- /dev/null
+++ b/keyboards/ogre/ergo_single/ergo_single.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 ctrlshiftba
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ergo_single.h"
diff --git a/keyboards/ogre/ergo_single/ergo_single.h b/keyboards/ogre/ergo_single/ergo_single.h
new file mode 100644
index 000000000..f8f9ddf65
--- /dev/null
+++ b/keyboards/ogre/ergo_single/ergo_single.h
@@ -0,0 +1,39 @@
+/* Copyright 2020 ctrlshiftba
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k63, k00, k10, k20, k30, k40, k50, k60, k65, k55, k45, k35, k25, k15, k05, k68, \
+ k01, k11, k21, k31, k41, k51, k61, k66, k56, k46, k36, k26, k16, k06, \
+ k02, k12, k22, k32, k42, k52, k62, k67, k57, k47, k37, k27, k17, k07, \
+ k03, k13, k23, k33, k43, k53, k58, k48, k38, k28, k18, k08, \
+ k04, k14, k24, k34, k44, k54, k64, k69, k59, k49, k39, k29, k19, k09 \
+) \
+{ \
+ { k00, k10, k20, k30, k40, k50, k60 }, \
+ { k01, k11, k21, k31, k41, k51, k61 }, \
+ { k02, k12, k22, k32, k42, k52, k62 }, \
+ { k03, k13, k23, k33, k43, k53, k63 }, \
+ { k04, k14, k24, k34, k44, k54, k64 }, \
+ { k05, k15, k25, k35, k45, k55, k65 }, \
+ { k06, k16, k26, k36, k46, k56, k66 }, \
+ { k07, k17, k27, k37, k47, k57, k67 }, \
+ { k08, k18, k28, k38, k48, k58, k68 }, \
+ { k09, k19, k29, k39, k49, k59, k69 }, \
+}
diff --git a/keyboards/ogre/ergo_single/keymaps/default/keymap.c b/keyboards/ogre/ergo_single/keymaps/default/keymap.c
new file mode 100644
index 000000000..94e725791
--- /dev/null
+++ b/keyboards/ogre/ergo_single/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
+/* Copyright 2020 ctrlshiftba
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define TP_Z MT(MOD_LCTL, KC_Z)
+#define TP_X MT(MOD_LGUI, KC_X)
+#define TP_GR MT(MOD_LCTL, KC_GRV)
+#define TP_SPC LT(1, KC_SPC)
+#define TP_ENT LT(1, KC_ENT)
+#define TP_QUOT MT(MOD_RGUI, KC_QUOT)
+#define TP_RCTRL MT(MOD_RCTL, KC_RBRC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGDN, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, TP_QUOT,
+ KC_LSFT, TP_Z, TP_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ TP_GR, KC_LALT, KC_LEFT, KC_RGHT, TP_SPC, KC_SPC, KC_BSPC, KC_RALT, KC_ENT, TP_ENT, KC_DOWN, KC_UP, KC_LBRC, TP_RCTRL
+ ),
+ [1] = LAYOUT(
+ RESET, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_INS, KC_HOME, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RGB_M_P, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, _______,
+ RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MENU, _______
+ ),
+};
diff --git a/keyboards/ogre/ergo_single/keymaps/default/readme.md b/keyboards/ogre/ergo_single/keymaps/default/readme.md
new file mode 100644
index 000000000..a63ad5baa
--- /dev/null
+++ b/keyboards/ogre/ergo_single/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for ergo_single
diff --git a/keyboards/ogre/ergo_single/readme.md b/keyboards/ogre/ergo_single/readme.md
new file mode 100644
index 000000000..d39714a6f
--- /dev/null
+++ b/keyboards/ogre/ergo_single/readme.md
@@ -0,0 +1,15 @@
+# ogre ergo
+## a keycap friendly ergo
+![ogre_ergo](https://i.imgur.com/27rF0jj.jpg)
+
+The ogre ergo is a ergodox inspired keyboard that is a keycap friendly ergo supporting a wide variety of keycap layout possiblities. Its can be built as either a split or single keyboard.
+
+* Keyboard Maintainer: [ctrlshiftba](https://github.com/ctrlshiftbryan)
+* Hardware Supported: the ogre ergo pcb
+* Hardware Availability: https://ctrlshiftba.com/
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ogre/ergo_single:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/ogre/ergo_single/rules.mk b/keyboards/ogre/ergo_single/rules.mk
new file mode 100644
index 000000000..cd209a9c4
--- /dev/null
+++ b/keyboards/ogre/ergo_single/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+SPLIT_KEYBOARD = no
diff --git a/keyboards/ogre/ergo_split/config.h b/keyboards/ogre/ergo_split/config.h
new file mode 100644
index 000000000..05aff9809
--- /dev/null
+++ b/keyboards/ogre/ergo_split/config.h
@@ -0,0 +1,52 @@
+/*
+Copyright 2020 ctrlshiftba
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0000
+#define DEVICE_VER 0x0001
+#define MANUFACTURER ctrlshiftba
+#define PRODUCT ergo_split
+#define DESCRIPTION a keycap friendly ergo. the split version
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 7
+
+/* Keyboard Matrix Assignments */
+#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D3
+#define SPLIT_HAND_PIN D1
+
+#define RGB_DI_PIN B6
+#define RGBLED_SPLIT { 7, 7 }
+#define RGBLED_NUM 14
+#define RGBLIGHT_LED_MAP { 6, 5, 4, 3, 2, 1, 0, 13, 12,11, 10, 9, 8, 7}
+#define RGBLIGHT_ANIMATIONS
+#define DEBOUNCE 5
diff --git a/keyboards/ogre/ergo_split/ergo_split.c b/keyboards/ogre/ergo_split/ergo_split.c
new file mode 100644
index 000000000..0d83a5e8e
--- /dev/null
+++ b/keyboards/ogre/ergo_split/ergo_split.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 ctrlshiftba
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ergo_split.h"
diff --git a/keyboards/ogre/ergo_split/ergo_split.h b/keyboards/ogre/ergo_split/ergo_split.h
new file mode 100644
index 000000000..f8f9ddf65
--- /dev/null
+++ b/keyboards/ogre/ergo_split/ergo_split.h
@@ -0,0 +1,39 @@
+/* Copyright 2020 ctrlshiftba
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ k63, k00, k10, k20, k30, k40, k50, k60, k65, k55, k45, k35, k25, k15, k05, k68, \
+ k01, k11, k21, k31, k41, k51, k61, k66, k56, k46, k36, k26, k16, k06, \
+ k02, k12, k22, k32, k42, k52, k62, k67, k57, k47, k37, k27, k17, k07, \
+ k03, k13, k23, k33, k43, k53, k58, k48, k38, k28, k18, k08, \
+ k04, k14, k24, k34, k44, k54, k64, k69, k59, k49, k39, k29, k19, k09 \
+) \
+{ \
+ { k00, k10, k20, k30, k40, k50, k60 }, \
+ { k01, k11, k21, k31, k41, k51, k61 }, \
+ { k02, k12, k22, k32, k42, k52, k62 }, \
+ { k03, k13, k23, k33, k43, k53, k63 }, \
+ { k04, k14, k24, k34, k44, k54, k64 }, \
+ { k05, k15, k25, k35, k45, k55, k65 }, \
+ { k06, k16, k26, k36, k46, k56, k66 }, \
+ { k07, k17, k27, k37, k47, k57, k67 }, \
+ { k08, k18, k28, k38, k48, k58, k68 }, \
+ { k09, k19, k29, k39, k49, k59, k69 }, \
+}
diff --git a/keyboards/ogre/ergo_split/keymaps/default/keymap.c b/keyboards/ogre/ergo_split/keymaps/default/keymap.c
new file mode 100644
index 000000000..94e725791
--- /dev/null
+++ b/keyboards/ogre/ergo_split/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
+/* Copyright 2020 ctrlshiftba
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define TP_Z MT(MOD_LCTL, KC_Z)
+#define TP_X MT(MOD_LGUI, KC_X)
+#define TP_GR MT(MOD_LCTL, KC_GRV)
+#define TP_SPC LT(1, KC_SPC)
+#define TP_ENT LT(1, KC_ENT)
+#define TP_QUOT MT(MOD_RGUI, KC_QUOT)
+#define TP_RCTRL MT(MOD_RCTL, KC_RBRC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_ESC, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGDN, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, TP_QUOT,
+ KC_LSFT, TP_Z, TP_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ TP_GR, KC_LALT, KC_LEFT, KC_RGHT, TP_SPC, KC_SPC, KC_BSPC, KC_RALT, KC_ENT, TP_ENT, KC_DOWN, KC_UP, KC_LBRC, TP_RCTRL
+ ),
+ [1] = LAYOUT(
+ RESET, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_INS, KC_HOME, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RGB_M_P, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, _______,
+ RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MENU, _______
+ ),
+};
diff --git a/keyboards/ogre/ergo_split/keymaps/default/readme.md b/keyboards/ogre/ergo_split/keymaps/default/readme.md
new file mode 100644
index 000000000..4e225222b
--- /dev/null
+++ b/keyboards/ogre/ergo_split/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for ergo_split
diff --git a/keyboards/ogre/ergo_split/readme.md b/keyboards/ogre/ergo_split/readme.md
new file mode 100644
index 000000000..e027e6be0
--- /dev/null
+++ b/keyboards/ogre/ergo_split/readme.md
@@ -0,0 +1,15 @@
+# ogre ergo (split)
+## a keycap friendly ergo
+![ogre_ergo_split](https://i.imgur.com/55luvRi.jpg)
+
+The ogre ergo is a ergodox inspired keyboard that is a keycap friendly ergo supporting a wide variety of keycap layout possiblities. Its can be built as either a split or single keyboard.
+
+* Keyboard Maintainer: [ctrlshiftba](https://github.com/ctrlshiftbryan)
+* Hardware Supported: the ogre ergo pcb
+* Hardware Availability: https://ctrlshiftba.com/
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ogre/ergo_split:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/ogre/ergo_split/rules.mk b/keyboards/ogre/ergo_split/rules.mk
new file mode 100644
index 000000000..06f53864c
--- /dev/null
+++ b/keyboards/ogre/ergo_split/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+SPLIT_KEYBOARD = yes
diff --git a/keyboards/ok60/rules.mk b/keyboards/ok60/rules.mk
index 6a0b6cfb3..064683816 100644
--- a/keyboards/ok60/rules.mk
+++ b/keyboards/ok60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-# CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+# CONSOLE_ENABLE = yes # Console for debug
# COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/omnikey_blackheart/rules.mk b/keyboards/omnikey_blackheart/rules.mk
index 648f84eee..59f163e2f 100644
--- a/keyboards/omnikey_blackheart/rules.mk
+++ b/keyboards/omnikey_blackheart/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/orange75/rules.mk b/keyboards/orange75/rules.mk
index d5b1f1e10..ce242bb2a 100644
--- a/keyboards/orange75/rules.mk
+++ b/keyboards/orange75/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/org60/rules.mk b/keyboards/org60/rules.mk
index 3e00a0493..a57d68acc 100644
--- a/keyboards/org60/rules.mk
+++ b/keyboards/org60/rules.mk
@@ -15,12 +15,12 @@ BOOTLOADER = atmel-dfu
AUDIO_ENABLE = no # Audio output on port C6
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no # Console for debug(+400)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug
+EXTRAKEY_ENABLE = yes # Audio control and System control
MIDI_ENABLE = no # MIDI controls
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+MOUSEKEY_ENABLE = yes # Mouse keys
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/orthodox/keymaps/xyverz/keymap.c b/keyboards/orthodox/keymaps/xyverz/keymap.c
index cc3c38943..0417c1a4a 100644
--- a/keyboards/orthodox/keymaps/xyverz/keymap.c
+++ b/keyboards/orthodox/keymaps/xyverz/keymap.c
@@ -63,9 +63,7 @@ void matrix_init_user(void) {
#ifdef BOOTLOADER_CATERINA
// This will disable the red LEDs on the ProMicros
setPinInput(D5);
- writePinLow(D5);
setPinInput(B0);
- writePinLow(B0);
#endif
};
@@ -86,4 +84,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
return true;
-} \ No newline at end of file
+}
diff --git a/keyboards/orthodox/rules.mk b/keyboards/orthodox/rules.mk
index 59f039a76..384938ed0 100644
--- a/keyboards/orthodox/rules.mk
+++ b/keyboards/orthodox/rules.mk
@@ -5,10 +5,10 @@ MCU = atmega32u4
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/otaku_split/rev0/rules.mk b/keyboards/otaku_split/rev0/rules.mk
index 8c41bc5a2..15240c6d9 100644
--- a/keyboards/otaku_split/rev0/rules.mk
+++ b/keyboards/otaku_split/rev0/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD=yes
diff --git a/keyboards/otaku_split/rev1/rules.mk b/keyboards/otaku_split/rev1/rules.mk
index 8c41bc5a2..15240c6d9 100644
--- a/keyboards/otaku_split/rev1/rules.mk
+++ b/keyboards/otaku_split/rev1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD=yes
diff --git a/keyboards/paladin64/rules.mk b/keyboards/paladin64/rules.mk
index 558d1855a..6caa47e90 100755
--- a/keyboards/paladin64/rules.mk
+++ b/keyboards/paladin64/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= yes # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= yes # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/panc60/config.h b/keyboards/panc60/config.h
index c565f39bc..b3bcdc973 100644
--- a/keyboards/panc60/config.h
+++ b/keyboards/panc60/config.h
@@ -37,5 +37,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/panc60/panc60.c b/keyboards/panc60/panc60.c
index 6bd16a4bd..d7ff52963 100644
--- a/keyboards/panc60/panc60.c
+++ b/keyboards/panc60/panc60.c
@@ -16,30 +16,18 @@
#include "panc60.h"
-void backlight_init_ports(void) {
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // Turn out the lights
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // Turn on the lights
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
- }
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
diff --git a/keyboards/pancake/feather/rules.mk b/keyboards/pancake/feather/rules.mk
index ed10c5faa..c54fbf06e 100644
--- a/keyboards/pancake/feather/rules.mk
+++ b/keyboards/pancake/feather/rules.mk
@@ -18,10 +18,10 @@ BOOTLOADER = caterina
# comment out to disable the options.
#
BLUETOOTH = AdafruitBLE
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/pancake/promicro/rules.mk b/keyboards/pancake/promicro/rules.mk
index 3ede4cd34..6ed9e88e9 100644
--- a/keyboards/pancake/promicro/rules.mk
+++ b/keyboards/pancake/promicro/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/pdxkbc/rules.mk b/keyboards/pdxkbc/rules.mk
index 7218e1e1b..1aa337931 100644
--- a/keyboards/pdxkbc/rules.mk
+++ b/keyboards/pdxkbc/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/pearl/config.h b/keyboards/pearl/config.h
index 0ae69e8e2..5dbba3ec0 100644
--- a/keyboards/pearl/config.h
+++ b/keyboards/pearl/config.h
@@ -31,7 +31,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
#define MATRIX_ROWS 4
#define MATRIX_COLS 13
diff --git a/keyboards/pearl/pearl.c b/keyboards/pearl/pearl.c
index 093b5fdd9..b08ee6f88 100644
--- a/keyboards/pearl/pearl.c
+++ b/keyboards/pearl/pearl.c
@@ -17,32 +17,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "pearl.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
setPinOutput(D0);
setPinOutput(D1);
- setPinOutput(D4);
setPinOutput(D6);
-
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
}
+ return true;
}
diff --git a/keyboards/peiorisboards/ixora/chconf.h b/keyboards/peiorisboards/ixora/chconf.h
index b836a3b99..e811705ba 100644
--- a/keyboards/peiorisboards/ixora/chconf.h
+++ b/keyboards/peiorisboards/ixora/chconf.h
@@ -102,10 +102,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
@@ -518,4 +514,4 @@
#endif /* CHCONF_H */
-/** @} */ \ No newline at end of file
+/** @} */
diff --git a/keyboards/peiorisboards/ixora/config.h b/keyboards/peiorisboards/ixora/config.h
index bf74b13cc..77ba89c29 100644
--- a/keyboards/peiorisboards/ixora/config.h
+++ b/keyboards/peiorisboards/ixora/config.h
@@ -17,7 +17,7 @@
#define MATRIX_ROW_PINS { A0 }
#define MATRIX_COL_PINS { B4, A15, B3, A1, B6, B5 }
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/peiorisboards/ixora/rules.mk b/keyboards/peiorisboards/ixora/rules.mk
index 0cea106d0..1d93c6a30 100644
--- a/keyboards/peiorisboards/ixora/rules.mk
+++ b/keyboards/peiorisboards/ixora/rules.mk
@@ -12,3 +12,7 @@ CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/percent/canoe/canoe.c b/keyboards/percent/canoe/canoe.c
index 79c6330fe..dd31640e6 100644
--- a/keyboards/percent/canoe/canoe.c
+++ b/keyboards/percent/canoe/canoe.c
@@ -17,32 +17,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "canoe.h"
-#ifdef BACKLIGHT_ENABLE
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // Turn out the lights
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // Turn on the lights
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
- }
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_init_ports(void) {
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
+}
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/percent/canoe/config.h b/keyboards/percent/canoe/config.h
index 950e0806e..21b3dcea6 100644
--- a/keyboards/percent/canoe/config.h
+++ b/keyboards/percent/canoe/config.h
@@ -38,7 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
#define NO_UART 1
diff --git a/keyboards/percent/canoe/rules.mk b/keyboards/percent/canoe/rules.mk
index 6340c8122..9661eaefe 100644
--- a/keyboards/percent/canoe/rules.mk
+++ b/keyboards/percent/canoe/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/percent/skog/backlight.c b/keyboards/percent/skog/backlight.c
deleted file mode 100644
index 94e8126d8..000000000
--- a/keyboards/percent/skog/backlight.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#include "backlight.h"
-#include "quantum.h"
-
-#include <avr/pgmspace.h>
-#include <avr/interrupt.h>
-
-#include "backlight_custom.h"
-#include "breathing_custom.h"
-
-// DEBUG
-#include <stdlib.h>
-#include <stdio.h>
-
-// Port D: digital pins of the AVR chipset
-#define NUMLOCK_PORT (1 << 0) // D0
-#define CAPSLOCK_PORT (1 << 1) // D1
-#define BACKLIGHT_PORT (1 << 4) // D4
-#define SCROLLLOCK_PORT (1 << 6) // D6
-
-#define TIMER_CLK_DIV64 0x03 ///< Timer clocked at F_CPU/64
-#define TIMER1PRESCALE TIMER_CLK_DIV64 ///< timer 1 prescaler default
-
-#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
-
-#define PWM_MAX 0xFF
-#define TIMER_TOP 255 // 8 bit PWM
-
-extern backlight_config_t backlight_config;
-
-/**
- * References
- * Port Registers: https://www.arduino.cc/en/Reference/PortManipulation
- * TCCR1A: https://electronics.stackexchange.com/questions/92350/what-is-the-difference-between-tccr1a-and-tccr1b
- * Timers: http://www.avrbeginners.net/architecture/timers/timers.html
- * 16-bit timer setup: http://sculland.com/ATmega168/Interrupts-And-Timers/16-Bit-Timer-Setup/
- * PS2AVRGB firmware: https://github.com/showjean/ps2avrU/tree/master/firmware
- */
-
-// @Override
-// turn LEDs on and off depending on USB caps/num/scroll lock states.
-__attribute__ ((weak))
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1 << USB_LED_NUM_LOCK)) {
- // turn on
- DDRD |= NUMLOCK_PORT;
- PORTD |= NUMLOCK_PORT;
- } else {
- // turn off
- DDRD &= ~NUMLOCK_PORT;
- PORTD &= ~NUMLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- DDRD |= CAPSLOCK_PORT;
- PORTD |= CAPSLOCK_PORT;
- } else {
- DDRD &= ~CAPSLOCK_PORT;
- PORTD &= ~CAPSLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
- DDRD |= SCROLLLOCK_PORT;
- PORTD |= SCROLLLOCK_PORT;
- } else {
- DDRD &= ~SCROLLLOCK_PORT;
- PORTD &= ~SCROLLLOCK_PORT;
- }
-}
-
-#ifdef BACKLIGHT_ENABLE
-
-// sets up Timer 1 for 8-bit PWM
-void timer1PWMSetup(void) { // NOTE ONLY CALL THIS ONCE
- // default 8 bit mode
- TCCR1A &= ~(1 << 1); // cbi(TCCR1A,PWM11); <- set PWM11 bit to HIGH
- TCCR1A |= (1 << 0); // sbi(TCCR1A,PWM10); <- set PWM10 bit to LOW
-
- // clear output compare value A
- // outb(OCR1AH, 0);
- // outb(OCR1AL, 0);
-
- // clear output comparator registers for B
- OCR1BH = 0; // outb(OCR1BH, 0);
- OCR1BL = 0; // outb(OCR1BL, 0);
-}
-
-bool is_init = false;
-void timer1Init(void) {
- // timer1SetPrescaler(TIMER1PRESCALE)
- // set to DIV/64
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | TIMER1PRESCALE;
-
- // reset TCNT1
- TCNT1H = 0; // outb(TCNT1H, 0);
- TCNT1L = 0; // outb(TCNT1L, 0);
-
- // TOIE1: Timer Overflow Interrupt Enable (Timer 1);
- TIMSK |= _BV(TOIE1); // sbi(TIMSK, TOIE1);
-
- is_init = true;
-}
-
-void timer1UnInit(void) {
- // set prescaler back to NONE
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | 0x00; // TIMERRTC_CLK_STOP
-
- // disable timer overflow interrupt
- TIMSK &= ~_BV(TOIE1); // overflow bit?
-
- setPWM(0);
-
- is_init = false;
-}
-
-
-// handle TCNT1 overflow
-//! Interrupt handler for tcnt1 overflow interrupt
-ISR(TIMER1_OVF_vect, ISR_NOBLOCK)
-{
- // sei();
- // handle breathing here
- #ifdef BACKLIGHT_BREATHING
- if (is_breathing()) {
- custom_breathing_handler();
- }
- #endif
-}
-
-// enable timer 1 PWM
-// timer1PWMBOn()
-void timer1PWMBEnable(void) {
- // turn on channel B (OC1B) PWM output
- // set OC1B as non-inverted PWM
- TCCR1A |= _BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-// disable timer 1 PWM
-// timer1PWMBOff()
-void timer1PWMBDisable(void) {
- TCCR1A &= ~_BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-void enableBacklight(void) {
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
-}
-
-void disableBacklight(void) {
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
-}
-
-void startPWM(void) {
- timer1Init();
- timer1PWMBEnable();
- enableBacklight();
-}
-
-void stopPWM(void) {
- timer1UnInit();
- disableBacklight();
- timer1PWMBDisable();
-}
-
-void b_led_init_ports(void) {
- /* turn backlight on/off depending on user preference */
- #if BACKLIGHT_ON_STATE == 0
- // DDRx register: sets the direction of Port D
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
- #else
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
- #endif
-
- timer1PWMSetup();
- startPWM();
-
- #ifdef BACKLIGHT_BREATHING
- breathing_enable();
- #endif
-}
-
-void b_led_set(uint8_t level) {
- if (level > BACKLIGHT_LEVELS) {
- level = BACKLIGHT_LEVELS;
- }
-
- setPWM((int)(TIMER_TOP * (float) level / BACKLIGHT_LEVELS));
-}
-
-// called every matrix scan
-void b_led_task(void) {
- // do nothing for now
-}
-
-void setPWM(uint16_t xValue) {
- if (xValue > TIMER_TOP) {
- xValue = TIMER_TOP;
- }
- OCR1B = xValue; // timer1PWMBSet(xValue);
-}
-
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/percent/skog/backlight_custom.h b/keyboards/percent/skog/backlight_custom.h
deleted file mode 100644
index 51365fe3b..000000000
--- a/keyboards/percent/skog/backlight_custom.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#pragma once
-
-#include <avr/pgmspace.h>
-void b_led_init_ports(void);
-void b_led_set(uint8_t level);
-void b_led_task(void);
-void setPWM(uint16_t xValue);
-
diff --git a/keyboards/percent/skog/breathing_custom.h b/keyboards/percent/skog/breathing_custom.h
deleted file mode 100644
index 71416b1b4..000000000
--- a/keyboards/percent/skog/breathing_custom.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Breathing effect code for PS2AVRGB boards (ATMEGA32A)
- * Works in conjunction with `backlight.c`.
- *
- * Code adapted from `quantum.c` to register with the existing TIMER1 overflow
- * handler in `backlight.c` instead of setting up its own timer.
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifdef BACKLIGHT_ENABLE
-#ifdef BACKLIGHT_BREATHING
-
-#include "backlight_custom.h"
-
-#ifndef BREATHING_PERIOD
-#define BREATHING_PERIOD 6
-#endif
-
-#define breathing_min() do {breathing_counter = 0;} while (0)
-#define breathing_max() do {breathing_counter = breathing_period * 244 / 2;} while (0)
-
-// TODO make this share code with quantum.c
-
-#define BREATHING_NO_HALT 0
-#define BREATHING_HALT_OFF 1
-#define BREATHING_HALT_ON 2
-#define BREATHING_STEPS 128
-
-static uint8_t breathing_period = BREATHING_PERIOD;
-static uint8_t breathing_halt = BREATHING_NO_HALT;
-static uint16_t breathing_counter = 0;
-
-static bool breathing = false;
-
-bool is_breathing(void) {
- return breathing;
-}
-
-// See http://jared.geek.nz/2013/feb/linear-led-pwm
-static uint16_t cie_lightness(uint16_t v) {
- if (v <= 5243) // if below 8% of max
- return v / 9; // same as dividing by 900%
- else {
- uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
- // to get a useful result with integer division, we shift left in the expression above
- // and revert what we've done again after squaring.
- y = y * y * y >> 8;
- if (y > 0xFFFFUL) // prevent overflow
- return 0xFFFFU;
- else
- return (uint16_t) y;
- }
-}
-
-void breathing_enable(void) {
- breathing = true;
- breathing_counter = 0;
- breathing_halt = BREATHING_NO_HALT;
- // interrupt already registered
-}
-
-void breathing_pulse(void) {
- if (get_backlight_level() == 0)
- breathing_min();
- else
- breathing_max();
- breathing_halt = BREATHING_HALT_ON;
- // breathing_interrupt_enable();
- breathing = true;
-}
-
-void breathing_disable(void) {
- breathing = false;
- // backlight_set(get_backlight_level());
- b_led_set(get_backlight_level()); // custom implementation of backlight_set()
-}
-
-void breathing_self_disable(void)
-{
- if (get_backlight_level() == 0)
- breathing_halt = BREATHING_HALT_OFF;
- else
- breathing_halt = BREATHING_HALT_ON;
-}
-
-void breathing_toggle(void) {
- if (is_breathing())
- breathing_disable();
- else
- breathing_enable();
-}
-
-void breathing_period_set(uint8_t value)
-{
- if (!value)
- value = 1;
- breathing_period = value;
-}
-
-void breathing_period_default(void) {
- breathing_period_set(BREATHING_PERIOD);
-}
-
-void breathing_period_inc(void)
-{
- breathing_period_set(breathing_period+1);
-}
-
-void breathing_period_dec(void)
-{
- breathing_period_set(breathing_period-1);
-}
-
-/* To generate breathing curve in python:
- * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)]
- */
-static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-// Use this before the cie_lightness function.
-static inline uint16_t scale_backlight(uint16_t v) {
- return v / BACKLIGHT_LEVELS * get_backlight_level();
-}
-
-void custom_breathing_handler(void) {
- uint16_t interval = (uint16_t) breathing_period * 244 / BREATHING_STEPS;
- // resetting after one period to prevent ugly reset at overflow.
- breathing_counter = (breathing_counter + 1) % (breathing_period * 244);
- uint8_t index = breathing_counter / interval % BREATHING_STEPS;
-
- if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) ||
- ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1)))
- {
- // breathing_interrupt_disable();
- }
-
- setPWM(cie_lightness(scale_backlight((uint16_t) pgm_read_byte(&breathing_table[index]) * 0x0101U)));
-}
-
-#endif // BACKLIGHT_BREATHING
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/percent/skog/config.h b/keyboards/percent/skog/config.h
index 7a0c703ec..15844711f 100644
--- a/keyboards/percent/skog/config.h
+++ b/keyboards/percent/skog/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#define VENDOR_ID 0x20A0
#define PRODUCT_ID 0x422D
@@ -36,8 +35,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 2
#define RGBLIGHT_ANIMATIONS
+#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 5
#define NO_UART 1
-
-#endif
diff --git a/keyboards/percent/skog/rules.mk b/keyboards/percent/skog/rules.mk
index da03a2e0c..0d243b858 100644
--- a/keyboards/percent/skog/rules.mk
+++ b/keyboards/percent/skog/rules.mk
@@ -21,11 +21,7 @@ BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
-BACKLIGHT_CUSTOM_DRIVER = yes
-
OPT_DEFS = -DDEBUG_LEVEL=0
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-SRC = backlight.c
diff --git a/keyboards/percent/skog/skog.c b/keyboards/percent/skog/skog.c
index 1c26c550e..152fc5684 100644
--- a/keyboards/percent/skog/skog.c
+++ b/keyboards/percent/skog/skog.c
@@ -19,20 +19,20 @@ ps2avrGB support code by Kenneth A. (bminiex/.[ch])
#include "skog.h"
-#include "backlight.h"
-#include "backlight_custom.h"
-
-#ifdef BACKLIGHT_ENABLE
-/// Overrides functions in `quantum.c`
-void backlight_init_ports(void) {
- b_led_init_ports();
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_task(void) {
- b_led_task();
+void led_init_ports(void) {
+ setPinOutput(D1);
+ setPinOutput(D6);
}
-void backlight_set(uint8_t level) {
- b_led_set(level);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/percent/skog_lite/config.h b/keyboards/percent/skog_lite/config.h
index 97d11238e..a3d4a225f 100644
--- a/keyboards/percent/skog_lite/config.h
+++ b/keyboards/percent/skog_lite/config.h
@@ -32,11 +32,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// 0 1 2 3 4 5 6 7 8 9 A B C D E
#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B6, B5 }
-#define MATRIX_COL_PINS { C4, C2, D7, C7, C6, A0, A1, A2, A3, A7, A6, A5, A4, C5, C3}
+#define MATRIX_COL_PINS { C4, C2, D7, C7, C6, A0, A1, A2, A3, A7, A6, A4, A5, C5, C3}
#define UNUSED_PINS
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/percent/skog_lite/info.json b/keyboards/percent/skog_lite/info.json
index d8e382cce..a1d10f59c 100644
--- a/keyboards/percent/skog_lite/info.json
+++ b/keyboards/percent/skog_lite/info.json
@@ -1,20 +1,280 @@
{
- "keyboard_name": "Skog Lite",
- "url": "",
- "maintainer": "qmk",
- "width": 18.25,
- "height": 6.5,
- "layouts": {
- "LAYOUT_tkl_ansi": {
- "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5, "w":1.25}, {"x":11.25, "y":5.5, "w":1.25}, {"x":12.5, "y":5.5, "w":1.25}, {"x":13.75, "y":5.5, "w":1.25}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}]
- },
+ "keyboard_name": "Skog Lite",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 18.25,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_tkl_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0.5},
+ {"x":16.25, "y":0.5},
+ {"x":17.25, "y":0.5},
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.75},
+ {"x":16.25, "y":1.75},
+ {"x":17.25, "y":1.75},
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":13.5, "y":2.25, "w":1.5},
+ {"x":15.25, "y":2.75},
+ {"x":16.25, "y":2.75},
+ {"x":17.25, "y":2.75},
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25, "w":2.25},
+ {"x":0, "y":4.25, "w":2.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+ {"x":0, "y":5.25, "w":1.25},
+ {"x":1.25, "y":5.25, "w":1.25},
+ {"x":2.5, "y":5.25, "w":1.25},
+ {"x":3.75, "y":5.25, "w":6.25},
+ {"x":10, "y":5.25, "w":1.25},
+ {"x":11.25, "y":5.25, "w":1.25},
+ {"x":12.5, "y":5.25, "w":1.25},
+ {"x":13.75, "y":5.25, "w":1.25},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25}
+ ]
+ },
- "LAYOUT_tkl_7u_ansi": {
- "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.5}, {"x":1.5, "y":5.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":12.5, "y":5.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}]
- },
+ "LAYOUT_tkl_7u_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0.5},
+ {"x":16.25, "y":0.5},
+ {"x":17.25, "y":0.5},
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.75},
+ {"x":16.25, "y":1.75},
+ {"x":17.25, "y":1.75},
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":13.5, "y":2.25, "w":1.5},
+ {"x":15.25, "y":2.75},
+ {"x":16.25, "y":2.75},
+ {"x":17.25, "y":2.75},
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25, "w":2.25},
+ {"x":0, "y":4.25, "w":2.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+ {"x":0, "y":5.25, "w":1.5},
+ {"x":1.5, "y":5.25},
+ {"x":2.5, "y":5.25, "w":1.5},
+ {"x":4, "y":5.25, "w":7},
+ {"x":11, "y":5.25, "w":1.5},
+ {"x":12.5, "y":5.25},
+ {"x":13.5, "y":5.25, "w":1.5},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25}
+ ]
+ },
- "LAYOUT_tkl_7u_ansi_blocker": {
- "layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}]
- }
- }
+ "LAYOUT_tkl_7u_ansi_blocker": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0.5},
+ {"x":16.25, "y":0.5},
+ {"x":17.25, "y":0.5},
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.75},
+ {"x":16.25, "y":1.75},
+ {"x":17.25, "y":1.75},
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":13.5, "y":2.25, "w":1.5},
+ {"x":15.25, "y":2.75},
+ {"x":16.25, "y":2.75},
+ {"x":17.25, "y":2.75},
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25, "w":2.25},
+ {"x":0, "y":4.25, "w":2.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+ {"x":0, "y":5.25, "w":1.5},
+ {"x":2.5, "y":5.25, "w":1.5},
+ {"x":4, "y":5.25, "w":7},
+ {"x":11, "y":5.25, "w":1.5},
+ {"x":13.5, "y":5.25, "w":1.5},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25}
+ ]
+ }
+ }
}
diff --git a/keyboards/percent/skog_lite/keymaps/binman/keymap.c b/keyboards/percent/skog_lite/keymaps/binman/keymap.c
new file mode 100755
index 000000000..40308e1a6
--- /dev/null
+++ b/keyboards/percent/skog_lite/keymaps/binman/keymap.c
@@ -0,0 +1,20 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_tkl_ansi(
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, RGB_TOG, MO(1),
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, KC_VOLU, KC_MPLY,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_MRWD, KC_VOLD, KC_MFFD,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_NO, KC_LGUI, KC_SPC, KC_RGUI, KC_NO, KC_RALT, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_tkl_ansi(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_RMOD, KC_TRNS,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI, RGB_HUI, RGB_SAI,
+ KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, RGB_HUD, RGB_SAD,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPI,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, KC_NO
+ )
+};
diff --git a/keyboards/percent/skog_lite/keymaps/binman/readme.md b/keyboards/percent/skog_lite/keymaps/binman/readme.md
new file mode 100755
index 000000000..d4bf1929d
--- /dev/null
+++ b/keyboards/percent/skog_lite/keymaps/binman/readme.md
@@ -0,0 +1,3 @@
+# binman Skog Lite layout
+
+This mostly just changes the "TKL" section of the board to be media and lighting controls. Bottom row has also been modified a bit. \ No newline at end of file
diff --git a/keyboards/percent/skog_lite/rules.mk b/keyboards/percent/skog_lite/rules.mk
index 1d2372c77..dbcb6c188 100644
--- a/keyboards/percent/skog_lite/rules.mk
+++ b/keyboards/percent/skog_lite/rules.mk
@@ -11,14 +11,16 @@ MCU = atmega32a
# ATmega328P USBasp
BOOTLOADER = bootloadHID
-# build options
-BOOTMAGIC_ENABLE = no
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = yes
-COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
WS2812_DRIVER = i2c
OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/percent/skog_lite/skog_lite.c b/keyboards/percent/skog_lite/skog_lite.c
index a6c00f529..95d398211 100644
--- a/keyboards/percent/skog_lite/skog_lite.c
+++ b/keyboards/percent/skog_lite/skog_lite.c
@@ -16,32 +16,20 @@
#include "skog_lite.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
setPinOutput(D1);
- setPinOutput(D4);
setPinOutput(D6);
-
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
}
+ return true;
}
diff --git a/keyboards/phantom/keymaps/rgbmod/rules.mk b/keyboards/phantom/keymaps/rgbmod/rules.mk
index 2892bb424..e4865902c 100644
--- a/keyboards/phantom/keymaps/rgbmod/rules.mk
+++ b/keyboards/phantom/keymaps/rgbmod/rules.mk
@@ -18,14 +18,14 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/phantom/rules.mk b/keyboards/phantom/rules.mk
index 1c8d7b916..79c64ac7a 100644
--- a/keyboards/phantom/rules.mk
+++ b/keyboards/phantom/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/pinky/rules.mk b/keyboards/pinky/rules.mk
index 395afeff0..2e315382f 100644
--- a/keyboards/pinky/rules.mk
+++ b/keyboards/pinky/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/plaid/rules.mk b/keyboards/plaid/rules.mk
index e020114b3..068ebe4ba 100644
--- a/keyboards/plaid/rules.mk
+++ b/keyboards/plaid/rules.mk
@@ -17,10 +17,10 @@ OPT_DEFS = -DDEBUG_LEVEL=0
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -28,12 +28,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk
index 7fb0dec50..ff4d8daed 100644
--- a/keyboards/planck/ez/rules.mk
+++ b/keyboards/planck/ez/rules.mk
@@ -5,11 +5,11 @@ MCU = STM32F303
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c
index c6298d247..34ef05248 100644
--- a/keyboards/planck/keymaps/callum/keymap.c
+++ b/keyboards/planck/keymaps/callum/keymap.c
@@ -163,12 +163,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[SYMB] = LAYOUT_planck_grid(
esc, n7, n5, n3, n1, n9, n8, n0, n2, n4, n6, dash,
del, at, dlr, eql, lprn, lbrc, rbrc, rprn, astr, hash, plus, gbp,
- caps, grv, pipe, bsls, lcbr, tild, circ, rcbr, ampr, exlm, perc, caps,
+ ____, grv, pipe, bsls, lcbr, tild, circ, rcbr, ampr, exlm, perc, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____
),
[MOVE] = LAYOUT_planck_grid(
- esc, xxxx, slup, dtl, dtr, xxxx, xxxx, home, up, end, xxxx, xxxx,
+ esc, xxxx, slup, dtl, dtr, xxxx, xxxx, home, up, end, xxxx, caps,
del, xxxx, sldn, tabl, tabr, xxxx, xxxx, left, down, rght, xxxx, xxxx,
____, xxxx, xxxx, back, fwd, xxxx, xxxx, pgdn, pgup, xxxx, xxxx, ____,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____
diff --git a/keyboards/planck/keymaps/samuel/README.org b/keyboards/planck/keymaps/samuel/README.org
index 3c0f08a9d..d38b8fc3b 100644
--- a/keyboards/planck/keymaps/samuel/README.org
+++ b/keyboards/planck/keymaps/samuel/README.org
@@ -7,117 +7,162 @@ before, so bear with me.
* Layers
-#+BEGIN_COMMENT
-#+NAME: empty-layer
-| <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> |
-|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-| - | - | - | - | - | - | - | - | - | - | - | - |
-| - | - | - | - | - | - | - | - | - | - | - | - |
-| - | - | - | - | - | - | - | - | - | - | - | - |
-| - | - | - | - | - | - | - | - | - | - | - | - |
-|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-#+END_COMMENT
-
-This is my "pretty" org mode organized table for my main dvorak layer. If you
-don't use org mode, it won't be that exciting, but if you enjoy working in org
-mode, you can edit this table directly, and this file is tangled to the actual
-keymap. No more organizing spaces or converting to and from comments.
-
-#+NAME: home-layer
-|--------+--------+------+------+------+-----+-----+-----+------+-------+--------+--------|
-| T_LRSE | QUOT | COMM | DOT | P | Y | F | G | C | R | L | T_RRSE |
-| T_LSFT | A | O | E | U | I | D | H | T | N | S | T_RSFT |
-| T_LCTL | SCLN | Q | J | K | X | B | M | W | V | Z | T_RCTL |
-| T_LGUI | T_LALT | UP | DOWN | BSPC | TAB | ENT | SPC | LEFT | RIGHT | T_RALT | T_RGUI |
-|--------+--------+------+------+------+-----+-----+-----+------+-------+--------+--------|
-
-This qwerty layout is just so normal people can try out the board. Tap keys
-would need to be customized I think, more on that later. I also put another
-dvorak key here because I have nightmares of getting trapped in this forsaken
-layout.
-
-#+NAME: qwerty-layer
-|--------+--------+----+------+------+-----+-----+-----+------+-------+--------+--------|
-| T_LRSE | Q | W | E | R | T | Y | U | I | O | P | T_RRSE |
-| T_LSFT | A | S | D | F | G | H | J | K | L | SCLN | T_RSFT |
-| T_LCTL | Z | X | C | V | B | N | M | COMM | DOT | QUOT | T_RCTL |
-| T_LGUI | T_LALT | UP | DOWN | BSPC | TAB | ENT | SPC | LEFT | RIGHT | T_RALT | DVORAK |
-|--------+--------+----+------+------+-----+-----+-----+------+-------+--------+--------|
-
-I tried to keep my layout bare bones, just what would be available on a normal
-keyboard, minus some keys I never used. This one secondary layer should cover a
-majority of the keys not found on the home layer. The bottom left copies a normal
-keyboards symbols from shifted numbers, and the rest is placed where convenient,
-with some considerations for one handed use, hence the shortcuts in the top
-left.
-
-#+NAME: secondary-layer
-|--------+--------+--------+--------+--------+------+------+-----+--------+--------+-------+--------|
-| -- | EZUNDO | EZCOPY | EZCUT | EZPSTE | INS | EQL | 7 | 8 | 9 | -- | -- |
-| EZSHFT | ESC | CAPS | PGUP | PGDN | HOME | ASTR | 4 | 5 | 6 | 0 | EZSHFT |
-| EZCTRL | EXLM | AT | HASH | DLR | PERC | CIRC | 1 | 2 | 3 | COM | EZCTRL |
-| EZGUI | EZALT | EZUP | EZDOWN | SPC | AMPR | PIPE | END | EZLEFT | EZRGHT | EZALT | EZGUI |
-|--------+--------+--------+--------+--------+------+------+-----+--------+--------+-------+--------|
-
-Basic command layer for one-shot macros and function keys.
-
-#+NAME: command-layer
-|----+-----+-----+-----+-----+--------+--------+------+-------+------+-----+----|
-| -- | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | -- |
-| -- | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | -- |
-| -- | F21 | F22 | F23 | F24 | QWERTY | DVORAK | USER | EMAIL | NAME | -- | -- |
-| -- | -- | -- | -- | -- | -- | -- | DIR | -- | -- | -- | -- |
-|----+-----+-----+-----+-----+--------+--------+------+-------+------+-----+----|
-
-But wait, we are missing several important keys? well, yes, but the modifier keys
-all do other keys when tapped. More about that in the keymap section.
+ #+BEGIN_COMMENT
+ #+NAME: empty-layer
+ | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> | <6> |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ | - | - | - | - | - | - | - | - | - | - | - | - |
+ | - | - | - | - | - | - | - | - | - | - | - | - |
+ | - | - | - | - | - | - | - | - | - | - | - | - |
+ | - | - | - | - | - | - | - | - | - | - | - | - |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ #+END_COMMENT
+
+ This is my "pretty" org mode organized table for my main dvorak layer. If you
+ don't use org mode, it won't be that exciting, but if you enjoy working in org
+ mode, you can edit this table directly, and this file is tangled to the actual
+ keymap. No more organizing spaces or converting to and from comments.
+
+ #+NAME: home-layer
+ |--------+--------+------+------+-----+-----+------+-----+------+-------+--------+--------|
+ | T_LRSE | QUOT | COMM | DOT | P | Y | F | G | C | R | L | T_RRSE |
+ | T_LSFT | A | O | E | U | I | D | H | T | N | S | T_RSFT |
+ | T_LCTL | SCLN | Q | J | K | X | B | M | W | V | Z | T_RCTL |
+ | T_LGUI | T_LALT | UP | DOWN | SPC | EQL | GRAVE | SPC | LEFT | RIGHT | T_RALT | T_RGUI |
+ |--------+--------+------+------+-----+-----+------+-----+------+-------+--------+--------|
+
+ Tap keys. Used only with the "T_" keys above.
+
+ #+NAME: tap-layer
+ |----------+------+---+---+---+---+---+---+---+---+------+----------|
+ | DEL | - | - | - | - | - | - | - | - | - | - | BSPC |
+ | TAB | - | - | - | - | - | - | - | - | - | - | ENTER |
+ | LBRACKET | - | - | - | - | - | - | - | - | - | - | RBRACKET |
+ | SLASH | LPRN | - | - | - | - | - | - | - | - | RPRN | MINS |
+ |----------+------+---+---+---+---+---+---+---+---+------+----------|
+
+ #+NAME: hold-layer
+ |------+------+---+---+---+---+---+---+---+---+------+------|
+ | RISE | - | - | - | - | - | - | - | - | - | - | RISE |
+ | LSFT | - | - | - | - | - | - | - | - | - | - | RSFT |
+ | LCTL | - | - | - | - | - | - | - | - | - | - | RCTL |
+ | LGUI | LALT | - | - | - | - | - | - | - | - | RALT | RGUI |
+ |------+------+---+---+---+---+---+---+---+---+------+------|
+
+ I tried to keep my layout bare bones, just what would be available on a normal
+ keyboard, minus some keys I never used. This one secondary layer should cover a
+ majority of the keys not found on the home layer. The bottom left copies a normal
+ keyboards symbols from shifted numbers, and the rest is placed where convenient,
+ with some considerations for one handed use, hence the shortcuts in the top
+ left.
+
+ #+NAME: secondary-layer
+ |--------+--------+--------+--------+--------+------+--------+-----+--------+--------+-------+--------|
+ | -- | EZUNDO | EZCOPY | EZCUT | EZPSTE | INS | ASTR | 7 | 8 | 9 | -- | -- |
+ | EZSHFT | ESC | CAPS | PGUP | PGDN | HOME | AMPR | 4 | 5 | 6 | 0 | EZSHFT |
+ | EZCTRL | EXLM | AT | HASH | DLR | PERC | CIRC | 1 | 2 | 3 | COM | EZCTRL |
+ | EZGUI | EZALT | EZUP | EZDOWN | SPC | PIPE | BSLASH | END | EZLEFT | EZRGHT | EZALT | EZGUI |
+ |--------+--------+--------+--------+--------+------+--------+-----+--------+--------+-------+--------|
+
+ Basic command layer for one-shot macros and function keys.
+
+ #+NAME: command-layer
+ |----+-----+-----+-----+-----+--------+--------+-----+-----+-----+-----+----|
+ | -- | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | -- |
+ | -- | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | -- |
+ | -- | F21 | F22 | F23 | F24 | QWERTY | DVORAK | -- | -- | -- | -- | -- |
+ | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
+ |----+-----+-----+-----+-----+--------+--------+-----+-----+-----+-----+----|
+
+ This qwerty layout is just so normal people can try out the board. Tap keys
+ would need to be customized I think, more on that later. I also put another
+ dvorak key here because I have nightmares of getting trapped in this forsaken
+ layout.
+
+ #+NAME: qwerty-layer
+ |--------+--------+----+------+-----+-----+------+-----+------+-------+--------+--------|
+ | T_LRSE | Q | W | E | R | T | Y | U | I | O | P | T_RRSE |
+ | T_LSFT | A | S | D | F | G | H | J | K | L | SCLN | T_RSFT |
+ | T_LCTL | Z | X | C | V | B | N | M | COMM | DOT | QUOT | T_RCTL |
+ | T_LGUI | T_LALT | UP | DOWN | SPC | EQL | GRAVE | SPC | LEFT | RIGHT | T_RALT | DVORAK |
+ |--------+--------+----+------+-----+-----+------+-----+------+-------+--------+--------|
+
* Keymap Conversion in Python
-This python can convert that table into the array needed for the keymap file. It
-simply prepends every key with "KC_". I used to use a dictionary to convert some
-keys from the table into qmk keycodes, but the double convertion was
-unneccessary so I just prepended all my macros with KC and moved all the
-implementation to the `process-user-input` function.
-
-#+NAME:layer-to-array
-#+BEGIN_SRC python :var keys=secondary-layer :tangle no
-results = "{"
-row = 0
-while row < len(keys):
- results += '{ '
- key = 0
- while key < len(keys[row]):
- keyName = str(keys[row][key])
+ This python can convert that table into the array needed for the keymap file. It
+ simply prepends every key with "KC_". I used to use a dictionary to convert some
+ keys from the table into qmk keycodes, but the double convertion was
+ unneccessary so I just prepended all my macros with KC and moved all the
+ implementation to the `process-user-input` function.
+
+ #+NAME:layer-to-array
+ #+BEGIN_SRC python :var keys=secondary-layer :tangle no
+ row = 0
+ results = ''
+ while row < len(keys):
+ key = 0
+ while key < len(keys[row]):
+ keyName = str(keys[row][key])
+ if keyName == '--':
+ keyName = 'TRANSPARENT'
+ results += 'KC_' + keyName
+ if key != 11:
+ results += ', '
+ key+=1
+ if row != 3:
+ results += ','
+ results += '\n'
+ row+=1
+ return results
+ #+END_SRC
+
+ Tap keys are technically defined in the mod_lift function. but this is will
+ implement that function from the org table.
+
+ #+NAME:define-tap-key
+ #+BEGIN_SRC python :var row=3 :var col=1 :var id=0 :var tapkeys=tap-layer :var holdkeys=hold-layer :tangle no
+ def getKey(keys, istapkey):
+ if istapkey == True:
+ keyName = str(keys[row][col])
+ else:
+ keyName = str(keys[row][col])
if keyName == '--':
keyName = 'TRANSPARENT'
- results += 'KC_' + keyName
- if key != 11:
- results += ', '
- key+=1
- results += '}'
- if row != 3:
- results += ','
- results += '\n'
- row+=1
-results += '},\n'
-return results
-#+END_SRC
+ if istapkey == False:
+ return 'KC_T_' + keyName, 'KC_' + keyName
+ else:
+ return 'KC_' + keyName
+ tapKeyName = getKey(tapkeys, True)
+ holdKeyMacro, holdKeyName = getKey(holdkeys, False)
+ return """case %s:
+ if (record->event.pressed) {
+ mod_press(%s, %s, %i);
+ } else {
+ mod_lift(%s, %s, %i);
+ }
+ return false;
+ break;""" % (holdKeyMacro, tapKeyName, holdKeyName, id, tapKeyName, holdKeyName, id)
+
+ #+END_SRC
+
* keymap.c
-Now that we laid out our layout, lets lay out our kemap file.
+ Now that we laid out our layout, lets lay out our keymap file.
+
+** Headers
-#+BEGIN_SRC C :noweb yes
+ #+BEGIN_SRC C :noweb yes
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
-#+END_SRC
+ #+END_SRC
** Keycodes
-#+BEGIN_SRC C :noweb yes
+ #+BEGIN_SRC C :noweb yes
// where the 'T_' communicates how the key does something different when tapped.
enum planck_keycodes {
//DVORAK = SAFE_RANGE,
@@ -145,18 +190,14 @@ KC_EZGUI,
KC_EZALT,
KC_DVORAK,
KC_QWERTY,
-KC_USER,
-KC_EMAIL,
-KC_NAME,
-KC_DIR,
KC_COM
};
-#+END_SRC
+ #+END_SRC
** Import Key table
-#+BEGIN_SRC C :noweb yes
+ #+BEGIN_SRC C :noweb yes
enum planck_layers {
_DVORAK,
_QWERTY,
@@ -166,457 +207,286 @@ _COMMAND
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
-[_DVORAK] =
-
-#+END_SRC
+ #+END_SRC
-#+BEGIN_SRC C :noweb yes
+ #+BEGIN_SRC C :noweb yes
+[_DVORAK] = LAYOUT_planck_grid(
<<layer-to-array(home-layer)>>
-
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
-[_QWERTY] =
-
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
+),
+[_QWERTY] = LAYOUT_planck_grid(
<<layer-to-array(qwerty-layer)>>
-
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
-[_RISE] =
-
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
+),
+[_RISE] = LAYOUT_planck_grid(
<<layer-to-array(secondary-layer)>>
-
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
-[_COMMAND] =
-
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
+),
+[_COMMAND] = LAYOUT_planck_grid(
<<layer-to-array(command-layer)>>
-
-#+END_SRC
-
-#+BEGIN_SRC C :noweb yes
+)
};
-#+END_SRC
+ #+END_SRC
** Tap Keys
-I don't like tap keys coming out on release. When modified, I often let go of
-the modifier too early because the tap button doesn't come out untill release. I
-guess you could save the state of the board on press and then apply it after the
-timer, but what I really want is the keys to come out on press when they can and
-when it is most useful. For me, that is when they are modified a single time. So
-I kind "locked" the board into only doing single modifiers, making them faster.
-Disadvantages are double modified keys must be done with one shot keys (its
-actually not that bad, it feels like emacs!) and triple modified keys are
-impossible at the moment.
-
-#+BEGIN_SRC C :noweb yes
-
-static uint16_t tap_timer = 0;
-char last_mod = 10;
-
-void mod_press(uint16_t tap_code, uint16_t hold_code, int id) {
- // this first if body makes double modified keys impossible, but stops the
- // delay when modifying a tap key which would result in the tap key not
- // getting modified.
- if (last_mod != id && last_mod != 10) {
- tap_code16(tap_code);
- last_mod = 10;
- } else {
- tap_timer = timer_read();
- last_mod = id;
- register_code(hold_code);
- }
-}
-
-void mod_lift(uint16_t tap_code, uint16_t hold_code, int id) {
- unregister_code(hold_code);
- if (last_mod == id && timer_elapsed(tap_timer) < TAPPING_TERM) {
- tap_code16(tap_code);
- last_mod = 10;
- }
-}
-
-#+END_SRC
-
+ I don't like tap keys coming out on release. When modified, I often let go of
+ the modifier too early because the tap button doesn't come out untill release. I
+ guess you could save the state of the board on press and then apply it after the
+ timer, but what I really want is the keys to come out on press when they can and
+ when it is most useful. For me, that is when they are modified a single time. So
+ I kind of "locked" the board into only doing single modifiers, making them faster.
+ Disadvantages are double modified keys must be done with one shot keys (its
+ actually not that bad, it feels like emacs!) and triple modified keys are
+ impossible at the moment.
+
+ #+BEGIN_SRC C :noweb yes
+
+ static uint16_t tap_timer = 0;
+ char last_mod = 10;
+
+ void mod_press(uint16_t tap_code, uint16_t hold_code, int id) {
+ /* this first if body makes double modified keys impossible, but stops the */
+ /* delay when modifying a tap key which would result in the tap key not */
+ /* getting modified. */
+ if (last_mod != id && last_mod != 10) {
+ tap_code16(tap_code);
+ last_mod = 10;
+ } else {
+ tap_timer = timer_read();
+ last_mod = id;
+ register_code(hold_code);
+ }
+ }
+
+ void mod_lift(uint16_t tap_code, uint16_t hold_code, int id) {
+ unregister_code(hold_code);
+ if (last_mod == id && timer_elapsed(tap_timer) < TAPPING_TERM) {
+ tap_code16(tap_code);
+ }
+ last_mod = 10;
+ }
+
+ #+END_SRC
** Process User Input
-#+BEGIN_SRC C :noweb yes
+ #+BEGIN_SRC C :noweb yes
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
-#+END_SRC
-
-** Layouts
-
-Set Dvorak layout
-
-#+BEGIN_SRC C :noweb yes
-case KC_DVORAK:
-if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
-}
-return true;
-break;
-
-#+END_SRC
-
-Set Qwerty layout.
-
-#+BEGIN_SRC C :noweb yes
-case KC_QWERTY:
-if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
-}
-return true;
-break;
-
-#+END_SRC
-
-** Alt and ()
-
-Left and right alt are ( and ) when tapped. I put them on alt instead of a more
-conveniant key like control because parentheses do not need to be shift modified
-ever, unlike some other tap keys seen in the next sections.
-
-#+BEGIN_SRC C :noweb yes
-case KC_T_LALT:
-if (record->event.pressed) {
- mod_press(S(KC_9), KC_LALT, 0);
-} else {
- mod_lift(S(KC_9), KC_LALT, 0);
-}
-return false;
-break;
-case KC_T_RALT:
-if (record->event.pressed) {
- mod_press(S(KC_0), KC_RALT, 1);
-} else {
- mod_lift(S(KC_0), KC_RALT, 1);
-}
-return false;
-break;
-
-#+END_SRC
-
-** Gui and `\
-
-I place gui in the bottom corner because I believe it is the hardest key to
-reach, so gui seemed like a good fit for a dedicated key that I never want to
-have to spam. For tap keys, I used equally unused keys that are not apart of the
-number pad or shifted number keys.
-
-#+BEGIN_SRC C :noweb yes
-case KC_T_LGUI:
-if (record->event.pressed) {
- mod_press(KC_GRAVE, KC_LGUI, 2);
-} else {
- mod_lift(KC_GRAVE, KC_LGUI, 2);
-}
-return false;
-break;
-case KC_T_RGUI:
-if (record->event.pressed) {
- mod_press(KC_BSLASH, KC_RGUI, 3);
-} else {
- mod_lift(KC_BSLASH, KC_RGUI, 3);
-}
-return false;
-break;
-
-#+END_SRC
-
-** Ctrl and []
-
-Left and right control are [] respectively when they are tapped, making { and }
-also very convenient.
-
-#+BEGIN_SRC C :noweb yes
-case KC_T_LCTL:
-if (record->event.pressed) {
- mod_press(KC_LBRACKET, KC_LCTL, 4);
-} else {
- mod_lift(KC_LBRACKET, KC_LCTL, 4);
-}
-return false;
-break;
-case KC_T_RCTL:
-if (record->event.pressed) {
- mod_press(KC_RBRACKET, KC_RCTL, 5);
-} else {
- mod_lift(KC_RBRACKET, KC_RCTL, 5);
-}
-return false;
-break;
-
-#+END_SRC
-
-** Shft and =-
-
-I place shift on the home row, so having '-' right of my pinkie is standard, and
-it only felt natural to put its opposite, '=/+' on the other side. I put an
-extra one on the right side in the secondary layer for the num pad.
-
-#+BEGIN_SRC C :noweb yes
-case KC_T_LSFT:
-if (record->event.pressed) {
- mod_press(KC_EQUAL, KC_LSFT, 6);
-} else {
- mod_lift(KC_EQUAL, KC_LSFT, 6);
-}
-return false;
-break;
-case KC_T_RSFT:
-if (record->event.pressed) {
- mod_press(KC_MINUS, KC_RSFT, 7);
-} else {
- mod_lift(KC_MINUS, KC_RSFT, 7);
-}
-return false;
-break;
-
-#+END_SRC
-
-** Rise, DEL, and /
-
-I use the top corners as rise because I decided that I do not like using layers
-with my thumbs. It feels uncomfortable to hold keys down with the side of my
-thumb, and backspace, tab, enter, and spacebar keep them satisfied. My pinky is
-for holding modifiers, so it makes sense to put the layer key with the other
-modifiers. Both my left and right layer keys activate the same layer which also
-makes sense to me. You wouldn't want left and right shift to do different things
-
-I used to have escape in the top left, but I use delete a lot more, and putting
-escape under a layer has not been a problem at all. I put / in the top right
-corner again mimicing a standard dvorak keyboard.
-
-#+BEGIN_SRC C :noweb yes
-case KC_T_LRSE:
-if (record->event.pressed) {
- tap_timer = timer_read();
- last_mod = 8;
- layer_on(_RISE);
-} else {
- layer_off(_RISE);
- if (last_mod == 8 && timer_elapsed(tap_timer) < TAPPING_TERM) {
- tap_code16(KC_DELETE);
- last_mod = 10;
- }
-}
-return false;
-break;
-case KC_T_RRSE:
-if (record->event.pressed) {
- tap_timer = timer_read();
- last_mod = 9;
- layer_on(_RISE);
-} else {
- layer_off(_RISE);
- if (last_mod == 9 && timer_elapsed(tap_timer) < TAPPING_TERM) {
- tap_code16(KC_SLASH);
- last_mod = 10;
- }
-}
-return false;
-break;
-
-#+END_SRC
-
-** EZ Keys
-
-EZ or "easy" keys do things that can already be done on the board, but I want an
-easier way of doing them.
-
-*** One Shot Keys
-
-Since I made modified tap keys occur on press instead of release, I need one
-shot keys to press any key with more than one modifier.
-
-#+BEGIN_SRC C :noweb yes
-case KC_EZSHFT:
-if (record->event.pressed) {
- set_oneshot_mods(MOD_LSFT);
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZCTRL:
-if (record->event.pressed) {
- set_oneshot_mods(MOD_LCTL);
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZALT:
-if (record->event.pressed) {
- set_oneshot_mods(MOD_LALT);
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZGUI:
-if (record->event.pressed) {
- set_oneshot_mods(MOD_LGUI);
- last_mod = 10;
-}
-return false;
-break;
-
-#+END_SRC
-
-*** Arrows
-
-I use ctrl+shift+arrows keys a lot, so when the layer key is pressed they became
-lazy versions of themselves with control and shift already pressed.
-
-I also added undo, copy, paste, and cut to be easily available with only the
-left hand like on a qwerty or colemek keyboard.
-
-#+BEGIN_SRC C :noweb yes
-case KC_EZRGHT:
-if (record->event.pressed) {
- register_code(KC_LCTL);
- tap_code16(S(KC_RGHT));
- unregister_code(KC_LCTL);
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZLEFT:
-if (record->event.pressed) {
- register_code(KC_LCTL);
- tap_code16(S(KC_LEFT));
- unregister_code(KC_LCTL);
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZDOWN:
-if (record->event.pressed) {
- register_code(KC_LCTL);
- tap_code16(S(KC_DOWN));
- unregister_code(KC_LCTL);
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZUP:
-if (record->event.pressed) {
- register_code(KC_LCTL);
- tap_code16(S(KC_UP));
- unregister_code(KC_LCTL);
- last_mod = 10;
-}
-return false;
-break;
-#+END_SRC
-
-*** Undo, Copy, Cut, Paste
-
-#+BEGIN_SRC C :noweb yes
-case KC_EZUNDO:
-if (record->event.pressed) {
- tap_code16(C(KC_Z));
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZCOPY:
-if (record->event.pressed) {
- tap_code16(C(KC_C));
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZCUT:
-if (record->event.pressed) {
- tap_code16(C(KC_X));
- last_mod = 10;
-}
-return false;
-break;
-case KC_EZPSTE:
-if (record->event.pressed) {
- tap_code16(C(KC_V));
- last_mod = 10;
-}
-return false;
-break;
-#+END_SRC
-
-** Commands
-
-Start command layer one shot
-
-#+BEGIN_SRC C :noweb yes
-case KC_COM:
-if (record->event.pressed) {
- layer_on(_COMMAND);
- set_oneshot_layer(_COMMAND, ONESHOT_START);
- last_mod = 10;
-} else {
- clear_oneshot_layer_state (ONESHOT_PRESSED);
-}
-return false;
-break;
-#+END_SRC
-
-Just some strings I notice that I type a lot.
-
-#+BEGIN_SRC C :noweb yes
-case KC_USER:
-if (record->event.pressed) {
- send_string("mhostley");
- last_mod = 10;
-}
-return true;
-break;
-case KC_EMAIL:
-if (record->event.pressed) {
- send_string("mhostley@gmail.com");
- last_mod = 10;
-}
-return true;
-break;
-case KC_NAME:
-if (record->event.pressed) {
- send_string("Samuel Jahnke");
- last_mod = 10;
-}
-return true;
-break;
-case KC_DIR:
-if (record->event.pressed) {
- send_string("home/mhostley/");
- last_mod = 10;
-}
-return true;
-break;
-
-#+END_SRC
-
-** Standard inputs interupt tap
-
-Finally, if just a standard key is tapped, set the interupted flag.
-Keep this last.
-
-#+BEGIN_SRC C :noweb yes
-}
-last_mod = 10;
-return true;
-}
-#+END_SRC
+ #+END_SRC
+
+*** Layouts
+
+ Set Dvorak layout
+
+ #+BEGIN_SRC C :noweb yes
+ case KC_DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return true;
+ break;
+
+ #+END_SRC
+
+ Set Qwerty layout.
+
+ #+BEGIN_SRC C :noweb yes
+ case KC_QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return true;
+ break;
+
+ #+END_SRC
+
+*** Custom Keys
+**** Command Layer One Shot
+
+ #+BEGIN_SRC C :noweb yes
+ case KC_COM:
+ if (record->event.pressed) {
+ layer_on(_COMMAND);
+ set_oneshot_layer(_COMMAND, ONESHOT_START);
+ last_mod = 10;
+ } else {
+ clear_oneshot_layer_state (ONESHOT_PRESSED);
+ }
+ return false;
+ break;
+ #+END_SRC
+
+**** Tap Keys
+
+ #+BEGIN_SRC C :noweb yes
+ <<define-tap-key(3, 1, 0)>>
+ <<define-tap-key(3, 10, 1)>>
+ <<define-tap-key(3, 0, 2)>>
+ <<define-tap-key(3, 11, 3)>>
+ <<define-tap-key(2, 0, 4)>>
+ <<define-tap-key(2, 11, 5)>>
+ <<define-tap-key(1, 0, 6)>>
+ <<define-tap-key(1, 11, 7)>>
+ #+END_SRC
+
+**** Rise Keys
+
+ #+BEGIN_SRC C :noweb yes
+ case KC_T_LRSE:
+ if (record->event.pressed) {
+ tap_timer = timer_read();
+ last_mod = 8;
+ layer_on(_RISE);
+ } else {
+ layer_off(_RISE);
+ if (last_mod == 8 && timer_elapsed(tap_timer) < TAPPING_TERM) {
+ tap_code16(KC_DELETE);
+ last_mod = 10;
+ }
+ }
+ return false;
+ break;
+ case KC_T_RRSE:
+ if (record->event.pressed) {
+ tap_timer = timer_read();
+ last_mod = 9;
+ layer_on(_RISE);
+ } else {
+ layer_off(_RISE);
+ if (last_mod == 9 && timer_elapsed(tap_timer) < TAPPING_TERM) {
+ tap_code16(KC_BSPACE);
+ last_mod = 10;
+ }
+ }
+ return false;
+ break;
+
+ #+END_SRC
+
+**** One Shot Keys
+
+ Since I made modified tap keys occur on press instead of release, I need one
+ shot keys to press any key with more than one modifier.
+
+ #+BEGIN_SRC C :noweb yes
+ case KC_EZSHFT:
+ if (record->event.pressed) {
+ set_oneshot_mods(MOD_LSFT);
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZCTRL:
+ if (record->event.pressed) {
+ set_oneshot_mods(MOD_LCTL);
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZALT:
+ if (record->event.pressed) {
+ set_oneshot_mods(MOD_LALT);
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZGUI:
+ if (record->event.pressed) {
+ set_oneshot_mods(MOD_LGUI);
+ last_mod = 10;
+ }
+ return false;
+ break;
+
+ #+END_SRC
+
+**** C-S Arrows
+
+ I use ctrl+shift+arrows keys a lot, so when the layer key is pressed they became
+ lazy versions of themselves with control and shift already pressed.
+
+ I also added undo, copy, paste, and cut to be easily available with only the
+ left hand like on a qwerty or colemek keyboard.
+
+ #+BEGIN_SRC C :noweb yes
+ case KC_EZRGHT:
+ if (record->event.pressed) {
+ register_code(KC_LCTL);
+ tap_code16(S(KC_RGHT));
+ unregister_code(KC_LCTL);
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZLEFT:
+ if (record->event.pressed) {
+ register_code(KC_LCTL);
+ tap_code16(S(KC_LEFT));
+ unregister_code(KC_LCTL);
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZDOWN:
+ if (record->event.pressed) {
+ register_code(KC_LCTL);
+ tap_code16(S(KC_DOWN));
+ unregister_code(KC_LCTL);
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZUP:
+ if (record->event.pressed) {
+ register_code(KC_LCTL);
+ tap_code16(S(KC_UP));
+ unregister_code(KC_LCTL);
+ last_mod = 10;
+ }
+ return false;
+ break;
+ #+END_SRC
+
+**** Undo, Copy, Cut, Paste
+
+ #+BEGIN_SRC C :noweb yes
+ case KC_EZUNDO:
+ if (record->event.pressed) {
+ tap_code16(C(KC_Z));
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZCOPY:
+ if (record->event.pressed) {
+ tap_code16(C(KC_C));
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZCUT:
+ if (record->event.pressed) {
+ tap_code16(C(KC_X));
+ last_mod = 10;
+ }
+ return false;
+ break;
+ case KC_EZPSTE:
+ if (record->event.pressed) {
+ tap_code16(C(KC_V));
+ last_mod = 10;
+ }
+ return false;
+ break;
+ #+END_SRC
+
+*** Standard inputs interupt tap
+
+ Finally, if just a standard key is tapped, set the interupted flag.
+ Keep this last.
+
+ #+BEGIN_SRC C :noweb yes
+ }
+ last_mod = 10;
+ return true;
+ }
+ #+END_SRC
diff --git a/keyboards/planck/keymaps/samuel/keymap.c b/keyboards/planck/keymaps/samuel/keymap.c
index ff1424489..20e64a022 100644
--- a/keyboards/planck/keymaps/samuel/keymap.c
+++ b/keyboards/planck/keymaps/samuel/keymap.c
@@ -29,10 +29,6 @@ KC_EZGUI,
KC_EZALT,
KC_DVORAK,
KC_QWERTY,
-KC_USER,
-KC_EMAIL,
-KC_NAME,
-KC_DIR,
KC_COM
};
@@ -45,47 +41,39 @@ _COMMAND
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_DVORAK] =
-
-{{ KC_T_LRSE, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_T_RRSE},
-{ KC_T_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_T_RSFT},
-{ KC_T_LCTL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_T_RCTL},
-{ KC_T_LGUI, KC_T_LALT, KC_UP, KC_DOWN, KC_BSPC, KC_TAB, KC_ENT, KC_SPC, KC_LEFT, KC_RIGHT, KC_T_RALT, KC_T_RGUI}
-},
-
-[_QWERTY] =
-
-{{ KC_T_LRSE, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_T_RRSE},
-{ KC_T_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_T_RSFT},
-{ KC_T_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, KC_T_RCTL},
-{ KC_T_LGUI, KC_T_LALT, KC_UP, KC_DOWN, KC_BSPC, KC_TAB, KC_ENT, KC_SPC, KC_LEFT, KC_RIGHT, KC_T_RALT, KC_DVORAK}
-},
-
-[_RISE] =
-
-{{ KC_TRANSPARENT, KC_EZUNDO, KC_EZCOPY, KC_EZCUT, KC_EZPSTE, KC_INS, KC_EQL, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_TRANSPARENT},
-{ KC_EZSHFT, KC_ESC, KC_CAPS, KC_PGUP, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_0, KC_EZSHFT},
-{ KC_EZCTRL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_1, KC_2, KC_3, KC_COM, KC_EZCTRL},
-{ KC_EZGUI, KC_EZALT, KC_EZUP, KC_EZDOWN, KC_SPC, KC_AMPR, KC_PIPE, KC_END, KC_EZLEFT, KC_EZRGHT, KC_EZALT, KC_EZGUI}
-},
-
-[_COMMAND] =
-
-{{ KC_TRANSPARENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRANSPARENT},
-{ KC_TRANSPARENT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRANSPARENT},
-{ KC_TRANSPARENT, KC_F21, KC_F22, KC_F23, KC_F24, KC_QWERTY, KC_DVORAK, KC_USER, KC_EMAIL, KC_NAME, KC_TRANSPARENT, KC_TRANSPARENT},
-{ KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_DIR, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT}
-},
-
+[_DVORAK] = LAYOUT_planck_grid(
+KC_T_LRSE, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_T_RRSE,
+KC_T_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_T_RSFT,
+KC_T_LCTL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_T_RCTL,
+KC_T_LGUI, KC_T_LALT, KC_UP, KC_DOWN, KC_SPC, KC_EQL, KC_GRAVE, KC_SPC, KC_LEFT, KC_RIGHT, KC_T_RALT, KC_T_RGUI
+),
+[_QWERTY] = LAYOUT_planck_grid(
+KC_T_LRSE, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_T_RRSE,
+KC_T_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_T_RSFT,
+KC_T_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, KC_T_RCTL,
+KC_T_LGUI, KC_T_LALT, KC_UP, KC_DOWN, KC_SPC, KC_EQL, KC_GRAVE, KC_SPC, KC_LEFT, KC_RIGHT, KC_T_RALT, KC_DVORAK
+),
+[_RISE] = LAYOUT_planck_grid(
+KC_TRANSPARENT, KC_EZUNDO, KC_EZCOPY, KC_EZCUT, KC_EZPSTE, KC_INS, KC_ASTR, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_TRANSPARENT,
+KC_EZSHFT, KC_ESC, KC_CAPS, KC_PGUP, KC_PGDN, KC_HOME, KC_AMPR, KC_4, KC_5, KC_6, KC_0, KC_EZSHFT,
+KC_EZCTRL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_1, KC_2, KC_3, KC_COM, KC_EZCTRL,
+KC_EZGUI, KC_EZALT, KC_EZUP, KC_EZDOWN, KC_SPC, KC_PIPE, KC_BSLASH, KC_END, KC_EZLEFT, KC_EZRGHT, KC_EZALT, KC_EZGUI
+),
+[_COMMAND] = LAYOUT_planck_grid(
+KC_TRANSPARENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRANSPARENT,
+KC_TRANSPARENT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRANSPARENT,
+KC_TRANSPARENT, KC_F21, KC_F22, KC_F23, KC_F24, KC_QWERTY, KC_DVORAK, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
+KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
+)
};
static uint16_t tap_timer = 0;
char last_mod = 10;
void mod_press(uint16_t tap_code, uint16_t hold_code, int id) {
- // this first if body makes double modified keys impossible, but stops the
- // delay when modifying a tap key which would result in the tap key not
- // getting modified.
+ /* this first if body makes double modified keys impossible, but stops the */
+ /* delay when modifying a tap key which would result in the tap key not */
+ /* getting modified. */
if (last_mod != id && last_mod != 10) {
tap_code16(tap_code);
last_mod = 10;
@@ -100,8 +88,8 @@ void mod_lift(uint16_t tap_code, uint16_t hold_code, int id) {
unregister_code(hold_code);
if (last_mod == id && timer_elapsed(tap_timer) < TAPPING_TERM) {
tap_code16(tap_code);
- last_mod = 10;
}
+ last_mod = 10;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
@@ -121,73 +109,81 @@ if (record->event.pressed) {
return true;
break;
-case KC_T_LALT:
-if (record->event.pressed) {
- mod_press(S(KC_9), KC_LALT, 0);
-} else {
- mod_lift(S(KC_9), KC_LALT, 0);
-}
-return false;
-break;
-case KC_T_RALT:
+case KC_COM:
if (record->event.pressed) {
- mod_press(S(KC_0), KC_RALT, 1);
+ layer_on(_COMMAND);
+ set_oneshot_layer(_COMMAND, ONESHOT_START);
+ last_mod = 10;
} else {
- mod_lift(S(KC_0), KC_RALT, 1);
+ clear_oneshot_layer_state (ONESHOT_PRESSED);
}
return false;
break;
+case KC_T_LALT:
+ if (record->event.pressed) {
+ mod_press(KC_LPRN, KC_LALT, 0);
+ } else {
+ mod_lift(KC_LPRN, KC_LALT, 0);
+ }
+ return false;
+ break;
+case KC_T_RALT:
+ if (record->event.pressed) {
+ mod_press(KC_RPRN, KC_RALT, 1);
+ } else {
+ mod_lift(KC_RPRN, KC_RALT, 1);
+ }
+ return false;
+ break;
case KC_T_LGUI:
-if (record->event.pressed) {
- mod_press(KC_GRAVE, KC_LGUI, 2);
-} else {
- mod_lift(KC_GRAVE, KC_LGUI, 2);
-}
-return false;
-break;
+ if (record->event.pressed) {
+ mod_press(KC_SLASH, KC_LGUI, 2);
+ } else {
+ mod_lift(KC_SLASH, KC_LGUI, 2);
+ }
+ return false;
+ break;
case KC_T_RGUI:
-if (record->event.pressed) {
- mod_press(KC_BSLASH, KC_RGUI, 3);
-} else {
- mod_lift(KC_BSLASH, KC_RGUI, 3);
-}
-return false;
-break;
-
+ if (record->event.pressed) {
+ mod_press(KC_MINS, KC_RGUI, 3);
+ } else {
+ mod_lift(KC_MINS, KC_RGUI, 3);
+ }
+ return false;
+ break;
case KC_T_LCTL:
-if (record->event.pressed) {
- mod_press(KC_LBRACKET, KC_LCTL, 4);
-} else {
- mod_lift(KC_LBRACKET, KC_LCTL, 4);
-}
-return false;
-break;
+ if (record->event.pressed) {
+ mod_press(KC_LBRACKET, KC_LCTL, 4);
+ } else {
+ mod_lift(KC_LBRACKET, KC_LCTL, 4);
+ }
+ return false;
+ break;
case KC_T_RCTL:
-if (record->event.pressed) {
- mod_press(KC_RBRACKET, KC_RCTL, 5);
-} else {
- mod_lift(KC_RBRACKET, KC_RCTL, 5);
-}
-return false;
-break;
-
+ if (record->event.pressed) {
+ mod_press(KC_RBRACKET, KC_RCTL, 5);
+ } else {
+ mod_lift(KC_RBRACKET, KC_RCTL, 5);
+ }
+ return false;
+ break;
case KC_T_LSFT:
-if (record->event.pressed) {
- mod_press(KC_EQUAL, KC_LSFT, 6);
-} else {
- mod_lift(KC_EQUAL, KC_LSFT, 6);
-}
-return false;
-break;
+ if (record->event.pressed) {
+ mod_press(KC_TAB, KC_LSFT, 6);
+ } else {
+ mod_lift(KC_TAB, KC_LSFT, 6);
+ }
+ return false;
+ break;
case KC_T_RSFT:
-if (record->event.pressed) {
- mod_press(KC_MINUS, KC_RSFT, 7);
-} else {
- mod_lift(KC_MINUS, KC_RSFT, 7);
-}
-return false;
-break;
+ if (record->event.pressed) {
+ mod_press(KC_ENTER, KC_RSFT, 7);
+ } else {
+ mod_lift(KC_ENTER, KC_RSFT, 7);
+ }
+ return false;
+ break;
case KC_T_LRSE:
if (record->event.pressed) {
@@ -211,7 +207,7 @@ if (record->event.pressed) {
} else {
layer_off(_RISE);
if (last_mod == 9 && timer_elapsed(tap_timer) < TAPPING_TERM) {
- tap_code16(KC_SLASH);
+ tap_code16(KC_BSPACE);
last_mod = 10;
}
}
@@ -313,46 +309,6 @@ if (record->event.pressed) {
return false;
break;
-case KC_COM:
-if (record->event.pressed) {
- layer_on(_COMMAND);
- set_oneshot_layer(_COMMAND, ONESHOT_START);
- last_mod = 10;
-} else {
- clear_oneshot_layer_state (ONESHOT_PRESSED);
-}
-return false;
-break;
-
-case KC_USER:
-if (record->event.pressed) {
- send_string("mhostley");
- last_mod = 10;
-}
-return true;
-break;
-case KC_EMAIL:
-if (record->event.pressed) {
- send_string("mhostley@gmail.com");
- last_mod = 10;
-}
-return true;
-break;
-case KC_NAME:
-if (record->event.pressed) {
- send_string("Samuel Jahnke");
- last_mod = 10;
-}
-return true;
-break;
-case KC_DIR:
-if (record->event.pressed) {
- send_string("home/mhostley/");
- last_mod = 10;
-}
-return true;
-break;
-
}
last_mod = 10;
return true;
diff --git a/keyboards/planck/light/rules.mk b/keyboards/planck/light/rules.mk
index 0d86bb8a5..e64f6e2f1 100644
--- a/keyboards/planck/light/rules.mk
+++ b/keyboards/planck/light/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/planck/rev1/rules.mk b/keyboards/planck/rev1/rules.mk
index 3c85e172b..98ae26cbe 100644
--- a/keyboards/planck/rev1/rules.mk
+++ b/keyboards/planck/rev1/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/planck/rev2/rules.mk b/keyboards/planck/rev2/rules.mk
index 3c85e172b..98ae26cbe 100644
--- a/keyboards/planck/rev2/rules.mk
+++ b/keyboards/planck/rev2/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/planck/rev3/rules.mk b/keyboards/planck/rev3/rules.mk
index 3c85e172b..98ae26cbe 100644
--- a/keyboards/planck/rev3/rules.mk
+++ b/keyboards/planck/rev3/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/planck/rev4/rules.mk b/keyboards/planck/rev4/rules.mk
index 299ee4aad..8454ea0e7 100644
--- a/keyboards/planck/rev4/rules.mk
+++ b/keyboards/planck/rev4/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/planck/rev5/rules.mk b/keyboards/planck/rev5/rules.mk
index 3c95f132c..495857254 100644
--- a/keyboards/planck/rev5/rules.mk
+++ b/keyboards/planck/rev5/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = qmk-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/planck/rev6/rules.mk b/keyboards/planck/rev6/rules.mk
index 429fc50a2..49f6088c3 100644
--- a/keyboards/planck/rev6/rules.mk
+++ b/keyboards/planck/rev6/rules.mk
@@ -5,11 +5,11 @@ MCU = STM32F303
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/playkbtw/ca66/rules.mk b/keyboards/playkbtw/ca66/rules.mk
index 28cb37ade..c3371db0f 100644
--- a/keyboards/playkbtw/ca66/rules.mk
+++ b/keyboards/playkbtw/ca66/rules.mk
@@ -15,9 +15,9 @@ BOOTLOADER = atmel-dfu
# comment out to disable the options.
#
BOOTMAGIC_ENABLE = lite
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/playkbtw/pk60/rules.mk b/keyboards/playkbtw/pk60/rules.mk
index 2c812e365..23b186842 100644
--- a/keyboards/playkbtw/pk60/rules.mk
+++ b/keyboards/playkbtw/pk60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/preonic/keymaps/alfrdmalr/config.h b/keyboards/preonic/keymaps/alfrdmalr/config.h
new file mode 100644
index 000000000..d906664c9
--- /dev/null
+++ b/keyboards/preonic/keymaps/alfrdmalr/config.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(PREONIC_SOUND)
+ // #define STARTUP_SONG SONG(NO_SOUND)
+
+ #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
+ SONG(COLEMAK_SOUND), \
+ SONG(DVORAK_SOUND) \
+ }
+#endif
+
+#define MUSIC_MASK (keycode != KC_NO)
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
+
+#define LEADER_TIMEOUT 400
+#define LEADER_PER_KEY_TIMING
diff --git a/keyboards/preonic/keymaps/alfrdmalr/keymap.c b/keyboards/preonic/keymaps/alfrdmalr/keymap.c
new file mode 100644
index 000000000..c2a682d4a
--- /dev/null
+++ b/keyboards/preonic/keymaps/alfrdmalr/keymap.c
@@ -0,0 +1,192 @@
+/* Copyright 2015-2017 Jack Humbert 2019-2020 Alfred Maler
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+#include "muse.h"
+
+enum preonic_layers {
+ _QWERTY,
+ _SETTINGS,
+ _SYMBOLS,
+ _NAVIGATION,
+ _NUMPAD,
+};
+
+enum preonic_keycodes {
+ QWERTY = SAFE_RANGE,
+ SYMBOLS,
+ NAVIGATION,
+ NUMPAD,
+ SETTINGS
+};
+
+#define NUMSPACE LT(_NUMPAD, KC_SPC)
+#define NAVLAYER MO(_NAVIGATION)
+#define SYMLAYER MO(_SYMBOLS)
+#define CTRLSHFT C(KC_LSFT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | DEL |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | NAV | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | SHFT | Z | X | C | V | B | N | M | , | . | / | SHFT |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | CTRL | C/S | LGUI | LALT | SYMB | SPACE/NUM | SYMB | RALT | SETT | MUTG | LEAD |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_preonic_grid(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ NAVLAYER, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, CTRLSHFT, KC_LGUI, KC_LALT, SYMLAYER, NUMSPACE, NUMSPACE, SYMLAYER, KC_RALT, SETTINGS, MU_TOG, KC_LEAD
+),
+
+/* SYMBOLS
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TAB | # | $ | { | } | | | ^ | * | | | ~ | DEL |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ESC | < | > | ( | ) | | | - | + | & | \ | ` |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | SHFT | ! | @ | [ | ] | | | _ | = | % | / | SHFT |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_SYMBOLS] = LAYOUT_preonic_grid(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_HASH, KC_DOLLAR, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_CIRC, KC_ASTR, KC_PIPE, KC_TILD, KC_DEL,
+ KC_NO, KC_LABK, KC_RABK, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_MINS, KC_PLUS, KC_AMPR, KC_BSLS, KC_GRV,
+ KC_LSFT, KC_EXCLAIM, KC_AT, KC_LBRC, KC_RBRC, KC_NO, KC_NO, KC_UNDS, KC_EQL, KC_PERC, KC_SLSH, KC_RSFT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* NAVIGATION
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | | | SPC | F5 | | INS | HOME | END | TAB | | DEL |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | NAV | SHFT | CTRl | ALT | GUI | | LEFT | DOWN | UP | RGHT | | ENTR |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | SHFT | UNDO | CUT | COPY | PSTE | | SPC | PGDO | PGUP | | | SHFT |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | TRNS | TRNS | TRNS | TRNS | ESC | TRNS | TRNS | TRNS | TRNS | TRNS |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NAVIGATION] = LAYOUT_preonic_grid(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TRNS, KC_NO, KC_NO, KC_SPC, KC_F5, KC_NO, KC_INS, KC_HOME, KC_END, KC_TAB, KC_NO, KC_DEL,
+ KC_TRNS, KC_LSFT, KC_LCTRL, KC_LALT, KC_LGUI, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_ENT,
+ KC_TRNS, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), KC_NO, KC_SPC, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ESC, KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+/* NUMPAD
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | F9 | F10 | F11 | F12 | | | 7 | 8 | 9 | - | DEL |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ESC | F5 | F6 | F7 | F8 | SPC | SPC | 4 | 5 | 6 | + | ENTR |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | F1 | F2 | F3 | F4 | ALT | CAPS | 1 | 2 | 3 | / | TRNS |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | 0 | , | . | * | TRNS |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = LAYOUT_preonic_grid(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_MINS, KC_DEL,
+ KC_ESC, KC_F5, KC_F6, KC_F7, KC_F8, KC_SPC, KC_SPC, KC_4, KC_5, KC_6, KC_PLUS, KC_ENT,
+ KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F4, KC_LALT, KC_CAPS, KC_1, KC_2, KC_3, KC_SLSH, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_COMM, KC_DOT, KC_ASTR, KC_TRNS
+),
+
+/* SETTINGS
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty| | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | ASTG |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_SETTINGS] = LAYOUT_preonic_grid(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, _______, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL,
+ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______,
+ KC_ASTG, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+};
+
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+LEADER_EXTERNS();
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+ if (muse_mode) {
+ if (muse_counter == 0) {
+ uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+ if (muse_note != last_muse_note) {
+ stop_note(compute_freq_for_midi_note(last_muse_note));
+ play_note(compute_freq_for_midi_note(muse_note), 0xF);
+ last_muse_note = muse_note;
+ }
+ }
+ muse_counter = (muse_counter + 1) % muse_tempo;
+ } else {
+ if (muse_counter) {
+ stop_all_notes();
+ muse_counter = 0;
+ }
+ }
+#endif
+
+ LEADER_DICTIONARY() {
+ leading = false;
+ SEQ_FIVE_KEYS(KC_R, KC_E, KC_S, KC_E, KC_T) {
+ reset_keyboard();
+ }
+ leader_end();
+ }
+}
+
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ default:
+ return true;
+ }
+} \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/alfrdmalr/readme.md b/keyboards/preonic/keymaps/alfrdmalr/readme.md
new file mode 100644
index 000000000..13c5d711c
--- /dev/null
+++ b/keyboards/preonic/keymaps/alfrdmalr/readme.md
@@ -0,0 +1,80 @@
+# alfrdmalr's preonic layout
+## Overview
+The alphanumeric characters and symbols are spread between three main 'typing' layers: QWERTY, NUMPAD, and SYMBOLS. The NUMPAD layer also holds the first twelve function keys.
+
+A fourth layer, NAVIGATION, contains useful modifiers, shortcuts, and navigation functions like the arrow keys and page up/down. This layer also provides access to the ENTER and ESC keys.
+
+Finally, a SETTINGS layer can be used to adjust certain keyboard-related options. Right now, this is pretty similar to the default settings layer (the planck's ADJUST layer). Primary differences are the inclusion of an autoshift toggle and the removal of the reset button. The bootloader functionality has been moved to a leader key sequence: LEAD - R - E - S - E - T.
+
+```
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | NAV | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | SHFT | Z | X | C | V | B | N | M | , | . | / | SHFT |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | CTRL | C/S | LGUI | LALT | SYMB | SPACE/NUM | SYMB | RALT | SETT |mu tog| LEAD |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+ /* SYMBOLS
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | # | $ | { | } | | | ^ | * | | | ~ | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | < | > | ( | ) | | | - | + | & | ` | ENTR |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | SHFT | ! | @ | [ | ] | | | _ | = | % | / | SHFT |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+ /* NUMPAD
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | F9 | F10 | F11 | F12 | | | 7 | 8 | 9 | - | DEL |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ESC | F5 | F6 | F7 | F8 | SPC | SPC | 4 | 5 | 6 | + | ENTR |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | F1 | F2 | F3 | F4 | ALT | CAPS | 1 | 2 | 3 | / | TRNS |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | 0 | , | . | * | TRNS |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+ /* NAVIGATION
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | | | SPC | F5 | | INS | HOME | END | TAB | | Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | NAV | SHIFT| CTRl | ALT | GUI | | LEFT | DOWN | UP | RIGHT| | ENTR |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | SHFT | UNDO | CUT | COPY | PASTE| | SPC | PGDO | PGUP | | | SHFT |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TRNS | TRNS | TRNS | TRNS | TRNS | ESC | TRNS | TRNS | TRNS | TRNS | TRNS |
+ * `-----------------------------------------------------------------------------------'
+ */
+
+ /* SETTINGS
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty| | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | ASTG |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+ ```
+ ASTG = autoshift toggle
diff --git a/keyboards/preonic/keymaps/alfrdmalr/rules.mk b/keyboards/preonic/keymaps/alfrdmalr/rules.mk
new file mode 100644
index 000000000..291bb16fa
--- /dev/null
+++ b/keyboards/preonic/keymaps/alfrdmalr/rules.mk
@@ -0,0 +1,3 @@
+SRC += muse.c
+AUTO_SHIFT_ENABLE = yes
+LEADER_ENABLE = yes
diff --git a/keyboards/preonic/keymaps/mverteuil/config.h b/keyboards/preonic/keymaps/mverteuil/config.h
new file mode 100644
index 000000000..51b278f64
--- /dev/null
+++ b/keyboards/preonic/keymaps/mverteuil/config.h
@@ -0,0 +1,39 @@
+#ifdef AUDIO_ENABLE
+# if __has_include("copyright.h")
+# include "copyright.h"
+# endif
+
+# define AUDIO_CLICKY_DELAY_DURATION 0
+# define AUDIO_CLICKY_FREQ_DEFAULT 100.0f
+# define AUDIO_CLICKY_FREQ_MIN 61.0f
+# define AUDIO_CLICKY_FREQ_RANDOMNESS 0.2f
+# define DAC_SAMPLE_MAX 7000U
+# define STARTUP_SONG SONG(WORKMAN_SOUND)
+# define GOODBYE_SONG SONG(COIN_SOUND)
+#endif
+
+#define MUSIC_MASK (keycode != KC_NO)
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/mverteuil/keymap.c b/keyboards/preonic/keymaps/mverteuil/keymap.c
new file mode 100644
index 000000000..621d60be6
--- /dev/null
+++ b/keyboards/preonic/keymaps/mverteuil/keymap.c
@@ -0,0 +1,508 @@
+/* Copyright 2015-2017 Jack Humbert, 2019 Matthew de Verteuil
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+#include "muse.h"
+#include "mverteuil.h"
+
+/* TapDance Aliases */
+#define TD_LBRK TD(TD_BRACKETS_LEFT)
+#define TD_RBRK TD(TD_BRACKETS_RIGHT)
+#define TD_CLES TD(TD_CONTROL_ESCAPE)
+#define TD_NPFR TD(TD_NUMPAD_FUNCTIONROW)
+#define TD_PLEQ TD(TD_PLUS_EQUALS)
+#define TD_SCOL TD(TD_SEMICOLON_COLON)
+#define TD_SLQU TD(TD_SLASH_QUESTION)
+#define TD_SQDQ TD(TD_QUOTE_DOUBLEQUOTE)
+#define TD_USMI TD(TD_UNDERSCORE_MINUS)
+
+/* Sentinel value for invalid tap dance exit */
+#define TAP_DANCE_NO_MATCH 64
+
+enum preonic_layers {
+ _QWERTY,
+ _FUNCTIONROW,
+ _NUMPAD,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+enum preonic_keycodes {
+ QWERTY = SAFE_RANGE,
+ NUMPAD,
+ LOWER,
+ RAISE,
+ BACKLIT,
+};
+
+enum tapdance_keycodes {
+ TD_BRACKETS_LEFT,
+ TD_BRACKETS_RIGHT,
+ TD_CONTROL_ESCAPE,
+ TD_NUMPAD_FUNCTIONROW,
+ TD_PLUS_EQUALS,
+ TD_QUOTE_DOUBLEQUOTE,
+ TD_SEMICOLON_COLON,
+ TD_SLASH_QUESTION,
+ TD_UNDERSCORE_MINUS,
+};
+
+typedef enum {
+ SINGLE_TAP,
+ SINGLE_HOLD,
+ DOUBLE_TAP,
+ DOUBLE_HOLD,
+ TRIPLE_TAP,
+ TRIPLE_HOLD,
+} t_tap_state;
+
+typedef struct {
+ t_tap_state left_brackets;
+ t_tap_state numpad_funcrow;
+ t_tap_state right_brackets;
+} t_tap;
+
+t_tap_state get_tapdance_state(qk_tap_dance_state_t *state);
+
+void td_numpad_funcrow_finished(qk_tap_dance_state_t *state, void *user_data);
+void td_numpad_funcrow_reset(qk_tap_dance_state_t *state, void *user_data);
+void td_brackets_left_finished(qk_tap_dance_state_t *state, void *user_data);
+void td_brackets_left_reset(qk_tap_dance_state_t *state, void *user_data);
+void td_brackets_right_finished(qk_tap_dance_state_t *state, void *user_data);
+void td_brackets_right_reset(qk_tap_dance_state_t *state, void *user_data);
+
+/* Tap Dance Definitions */
+qk_tap_dance_action_t tap_dance_actions[] = {
+ /* Tap once for left parenthesis, twice for left bracket, thrice for left brace */
+ [TD_BRACKETS_LEFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_left_finished, td_brackets_left_reset),
+ /* Tap once for right parenthesis, twice for right bracket, thrice for right brace */
+ [TD_BRACKETS_RIGHT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_right_finished, td_brackets_right_reset),
+ /* Tap once for control, twice for escape */
+ [TD_CONTROL_ESCAPE] = ACTION_TAP_DANCE_DOUBLE(KC_LCTRL, KC_ESCAPE),
+ /* Tap once for plus, twice for equals */
+ [TD_PLUS_EQUALS] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQUAL),
+ /* Hold for numpad, tap twice to toggle function row, double hold for temporary function row */
+ [TD_NUMPAD_FUNCTIONROW] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_numpad_funcrow_finished, td_numpad_funcrow_reset),
+ /* Tap once for single quote, twice for double quote */
+ [TD_QUOTE_DOUBLEQUOTE] = ACTION_TAP_DANCE_DOUBLE(KC_QUOTE, KC_DOUBLE_QUOTE),
+ /* Tap once for semicolon, twice for colon */
+ [TD_SEMICOLON_COLON] = ACTION_TAP_DANCE_DOUBLE(KC_SCOLON, KC_COLON),
+ /* Tap once for slash, twice for question mark */
+ [TD_SLASH_QUESTION] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_QUESTION),
+ /* Tap once for underscore, twice for minus */
+ [TD_UNDERSCORE_MINUS] = ACTION_TAP_DANCE_DOUBLE(KC_UNDERSCORE, KC_MINUS),
+};
+
+/* clang-format off */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | ! | @ | # | $ | % | ^ | & | * | _ - | + = | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | ' " |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |CtlEsc| A | S | D | F | G | H | J | K | L | ; : | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | Up | GUI |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |NP FRw| Ctrl | Alt | GUI |Lower | Space |Raise | / ? | Left | Down |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_preonic_1x2uC (
+ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, TD_USMI, TD_PLEQ, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_SQDQ,
+ TD_CLES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_SCOL, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RGUI,
+ TD_NPFR, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, TD_SLQU, KC_LEFT, KC_DOWN, KC_RGHT
+),
+
+/* Function Row
+ * ,-----------------------------------------------------------------------------------.
+ * | F12 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCTIONROW] = LAYOUT_preonic_1x2uC (
+ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Numpad
+ * ,------+------+------+------+------+------|------+------+------+------+------+------.
+ * | | | | | | | | Tab | / | * |Bksp | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | 7 | 8 | 9 | - | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | 4 | 5 | 6 | + | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | 1 | 2 | 3 |Enter | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | 0 | . |Enter | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = LAYOUT_preonic_1x2uC (
+ _______, _______, _______, _______, _______, _______, _______, KC_TAB, KC_SLSH, KC_PAST, KC_BSPC, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | Vol+ | | | | | | | | Play | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | Prev | Vol- | Next | | | ? | _ | + | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | Mute | | | PgUp | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |RGBmod| | | | | | | \ | Home | PgDn | End |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_preonic_1x2uC (
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______,
+ _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, KC_QUES, KC_UNDS, KC_PLUS, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_BSLS, KC_HOME, KC_PGDN, KC_END
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | | | | | | | | [ { (| ) } ]| |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_preonic_1x2uC (
+ KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, TD_LBRK, TD_RBRK, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_PIPE, _______, _______, _______
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |AudTog|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX| Debug| Reset|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |ClkTog|ClkFq-|ClkFq+|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|TermOn|TermOf|
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |MusTog|Voice- Voice+|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|AGnorm|AGswap|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |MidTog|Rplain|Rbreat|Rrainb|Rswirl|Rsnake|Rkridr|Rxmas |Rgrad |RGBtst|XXXXXX|Shift |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |RGBmod|RGBhue|RBGsat|RGBval| | | |XXXXXX|XXXXXX|XXXXXX|XXXXXX|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_preonic_1x2uC (
+ AU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, RESET,
+ CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TERM_ON, TERM_OFF,
+ MU_TOG, MUV_DE, MUV_IN, XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP,
+ MI_TOG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSHIFT,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_TOG, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
+)
+
+};
+/* clang-format on */
+
+float s_audio_on[][2] = AUDIO_ON_SONG;
+float s_layer_lower[][2] = LAYER_LOWER_SONG;
+float s_layer_raise[][2] = LAYER_RAISE_SONG;
+
+void audio_on_user() { PLAY_SONG(s_audio_on); };
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ PLAY_SONG(s_layer_lower);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ PLAY_SONG(s_layer_raise);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+ backlight_step();
+#endif
+#ifdef __AVR__
+ writePinLow(E6);
+#endif
+ } else {
+ unregister_code(KC_RSFT);
+#ifdef __AVR__
+ writePinHigh(E6);
+#endif
+ }
+ return false;
+ break;
+ }
+ return true;
+};
+
+/* Global TapDance State */
+static t_tap qk_tap_state = {
+ .left_brackets = 0,
+ .numpad_funcrow = 0,
+ .right_brackets = 0,
+};
+
+float s_functionrow_on[][2] = LAYER_FUNCROW_ON_SONG;
+float s_functionrow_off[][2] = LAYER_FUNCROW_OFF_SONG;
+float s_numpad_toggle[][2] = LAYER_NMPAD_SONG;
+
+t_tap_state get_tapdance_state(qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (state->interrupted || !state->pressed) {
+ return SINGLE_TAP;
+ } else {
+ return SINGLE_HOLD;
+ }
+ } else if (state->count == 2) {
+ if (state->interrupted || !state->pressed) {
+ return DOUBLE_TAP;
+ } else {
+ return DOUBLE_HOLD;
+ }
+ } else if (state->count == 3) {
+ if (state->interrupted || !state->pressed) {
+ return TRIPLE_TAP;
+ } else {
+ return TRIPLE_HOLD;
+ }
+ } else
+ return TAP_DANCE_NO_MATCH;
+}
+
+void td_numpad_funcrow_finished(qk_tap_dance_state_t *state, void *user_data) {
+ qk_tap_state.numpad_funcrow = get_tapdance_state(state);
+ switch (qk_tap_state.numpad_funcrow) {
+ case SINGLE_TAP ... SINGLE_HOLD:
+ layer_on(_NUMPAD);
+ PLAY_SONG(s_numpad_toggle);
+ break;
+ case DOUBLE_HOLD:
+ layer_on(_FUNCTIONROW);
+ break;
+ case DOUBLE_TAP:
+ if (layer_state_is(_FUNCTIONROW)) {
+ layer_off(_FUNCTIONROW);
+ PLAY_SONG(s_functionrow_off);
+ } else {
+ layer_on(_FUNCTIONROW);
+ PLAY_SONG(s_functionrow_on);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void td_numpad_funcrow_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (qk_tap_state.numpad_funcrow) {
+ case SINGLE_HOLD:
+ layer_off(_NUMPAD);
+ break;
+ case DOUBLE_HOLD:
+ layer_off(_FUNCTIONROW);
+ break;
+ default:
+ break;
+ }
+}
+
+void td_brackets_left_finished(qk_tap_dance_state_t *state, void *user_data) {
+ qk_tap_state.left_brackets = get_tapdance_state(state);
+ switch (qk_tap_state.left_brackets) {
+ case SINGLE_TAP:
+ register_code16(KC_LEFT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ register_code(KC_LBRACKET);
+ break;
+ case TRIPLE_TAP:
+ register_code16(KC_LEFT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+}
+
+void td_brackets_left_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (qk_tap_state.left_brackets) {
+ case SINGLE_TAP:
+ unregister_code16(KC_LEFT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ unregister_code(KC_LBRACKET);
+ break;
+ case TRIPLE_TAP:
+ unregister_code16(KC_LEFT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+ qk_tap_state.left_brackets = 0;
+}
+
+void td_brackets_right_finished(qk_tap_dance_state_t *state, void *user_data) {
+ qk_tap_state.right_brackets = get_tapdance_state(state);
+ switch (qk_tap_state.right_brackets) {
+ case SINGLE_TAP:
+ register_code16(KC_RIGHT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ register_code(KC_RBRACKET);
+ break;
+ case TRIPLE_TAP:
+ register_code16(KC_RIGHT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+}
+
+void td_brackets_right_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (qk_tap_state.right_brackets) {
+ case SINGLE_TAP:
+ unregister_code16(KC_RIGHT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ unregister_code(KC_RBRACKET);
+ break;
+ case TRIPLE_TAP:
+ unregister_code16(KC_RIGHT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+ qk_tap_state.right_brackets = 0;
+}
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (muse_mode) {
+ if (IS_LAYER_ON(_RAISE)) {
+ if (clockwise) {
+ muse_offset++;
+ } else {
+ muse_offset--;
+ }
+ } else {
+ if (clockwise) {
+ muse_tempo += 1;
+ } else {
+ muse_tempo -= 1;
+ }
+ }
+ } else {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+}
+
+void dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0:
+ if (active) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ break;
+ case 1:
+ if (active) {
+ muse_mode = true;
+ } else {
+ muse_mode = false;
+ }
+ }
+}
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+ if (muse_mode) {
+ if (muse_counter == 0) {
+ uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+ if (muse_note != last_muse_note) {
+ stop_note(compute_freq_for_midi_note(last_muse_note));
+ play_note(compute_freq_for_midi_note(muse_note), 0xF);
+ last_muse_note = muse_note;
+ }
+ }
+ muse_counter = (muse_counter + 1) % muse_tempo;
+ } else {
+ if (muse_counter) {
+ stop_all_notes();
+ muse_counter = 0;
+ }
+ }
+#endif
+}
+
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode) {
+ case RAISE:
+ case LOWER:
+ return false;
+ default:
+ return true;
+ }
+}
diff --git a/keyboards/preonic/keymaps/mverteuil/readme.md b/keyboards/preonic/keymaps/mverteuil/readme.md
new file mode 100644
index 000000000..b21df3f8f
--- /dev/null
+++ b/keyboards/preonic/keymaps/mverteuil/readme.md
@@ -0,0 +1,2 @@
+# mverteuil does olkb preonic
+## 1x2u: One 2u spacebar on bottom row
diff --git a/keyboards/preonic/keymaps/mverteuil/rules.mk b/keyboards/preonic/keymaps/mverteuil/rules.mk
new file mode 100644
index 000000000..a29a3cad7
--- /dev/null
+++ b/keyboards/preonic/keymaps/mverteuil/rules.mk
@@ -0,0 +1,5 @@
+SRC += muse.c
+
+AUDIO_ENABLE = yes
+MIDI_ENABLE = yes
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/preonic/keymaps/mverteuil_2x2u/config.h b/keyboards/preonic/keymaps/mverteuil_2x2u/config.h
new file mode 100644
index 000000000..51b278f64
--- /dev/null
+++ b/keyboards/preonic/keymaps/mverteuil_2x2u/config.h
@@ -0,0 +1,39 @@
+#ifdef AUDIO_ENABLE
+# if __has_include("copyright.h")
+# include "copyright.h"
+# endif
+
+# define AUDIO_CLICKY_DELAY_DURATION 0
+# define AUDIO_CLICKY_FREQ_DEFAULT 100.0f
+# define AUDIO_CLICKY_FREQ_MIN 61.0f
+# define AUDIO_CLICKY_FREQ_RANDOMNESS 0.2f
+# define DAC_SAMPLE_MAX 7000U
+# define STARTUP_SONG SONG(WORKMAN_SOUND)
+# define GOODBYE_SONG SONG(COIN_SOUND)
+#endif
+
+#define MUSIC_MASK (keycode != KC_NO)
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c b/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c
new file mode 100644
index 000000000..232b85311
--- /dev/null
+++ b/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c
@@ -0,0 +1,413 @@
+/* Copyright 2015-2017 Jack Humbert, 2019 Matthew de Verteuil
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+#include "muse.h"
+#include "mverteuil.h"
+
+/* Layer Aliases */
+#define LT_LWSP LT(_LOWER, KC_SPACE)
+#define LT_RSRT LT(_RAISE, KC_ENTER)
+#define MO_NUMS MO(_NUMPAD)
+
+/* Mod-Tap Aliases */
+#define MT_CESC CTL_T(KC_ESCAPE)
+
+/* TapDance Aliases */
+#define TD_LBRK TD(TD_BRACKETS_LEFT)
+#define TD_RBRK TD(TD_BRACKETS_RIGHT)
+#define TD_PLEQ TD(TD_PLUS_EQUALS)
+#define TD_SCOL TD(TD_SEMICOLON_COLON)
+#define TD_SLQU TD(TD_SLASH_QUESTION)
+#define TD_SQDQ TD(TD_QUOTE_DOUBLEQUOTE)
+#define TD_USMI TD(TD_UNDERSCORE_MINUS)
+
+/* Sentinel value for invalid tap dance exit */
+#define TAP_DANCE_NO_MATCH 64
+
+enum preonic_layers {
+ _QWERTY,
+ _NUMPAD,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+enum preonic_keycodes {
+ QWERTY = SAFE_RANGE,
+ NUMPAD,
+ LOWER,
+ RAISE,
+ BACKLIT,
+};
+
+enum tapdance_keycodes {
+ TD_BRACKETS_LEFT,
+ TD_BRACKETS_RIGHT,
+ TD_CONTROL_ESCAPE,
+ TD_PLUS_EQUALS,
+ TD_QUOTE_DOUBLEQUOTE,
+ TD_SEMICOLON_COLON,
+ TD_SLASH_QUESTION,
+ TD_UNDERSCORE_MINUS,
+};
+
+typedef enum {
+ SINGLE_TAP,
+ SINGLE_HOLD,
+ DOUBLE_TAP,
+ DOUBLE_HOLD,
+ TRIPLE_TAP,
+ TRIPLE_HOLD,
+} t_tap_state;
+
+typedef struct {
+ t_tap_state left_brackets;
+ t_tap_state right_brackets;
+} t_tap;
+
+t_tap_state get_tapdance_state(qk_tap_dance_state_t *state);
+
+void td_brackets_left_finished(qk_tap_dance_state_t *state, void *user_data);
+void td_brackets_left_reset(qk_tap_dance_state_t *state, void *user_data);
+void td_brackets_right_finished(qk_tap_dance_state_t *state, void *user_data);
+void td_brackets_right_reset(qk_tap_dance_state_t *state, void *user_data);
+
+/* Tap Dance Definitions */
+qk_tap_dance_action_t tap_dance_actions[] = {
+ /* Tap once for left parenthesis, twice for left bracket, thrice for left brace */
+ [TD_BRACKETS_LEFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_left_finished, td_brackets_left_reset),
+ /* Tap once for right parenthesis, twice for right bracket, thrice for right brace */
+ [TD_BRACKETS_RIGHT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_right_finished, td_brackets_right_reset),
+ /* Tap once for plus, twice for equals */
+ [TD_PLUS_EQUALS] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQUAL),
+ /* Tap once for single quote, twice for double quote */
+ [TD_QUOTE_DOUBLEQUOTE] = ACTION_TAP_DANCE_DOUBLE(KC_QUOTE, KC_DOUBLE_QUOTE),
+ /* Tap once for semicolon, twice for colon */
+ [TD_SEMICOLON_COLON] = ACTION_TAP_DANCE_DOUBLE(KC_SCOLON, KC_COLON),
+ /* Tap once for slash, twice for question mark */
+ [TD_SLASH_QUESTION] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_QUESTION),
+ /* Tap once for underscore, twice for minus */
+ [TD_UNDERSCORE_MINUS] = ACTION_TAP_DANCE_DOUBLE(KC_UNDERSCORE, KC_MINUS),
+};
+
+/* clang-format off */
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
+ * | ` | ! | @ | # | $ | % | ^ | & | * | _ - | + = | Bksp |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | ' " |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * |CtrlEsc| A | S | D | F | G | H | J | K | L | ; : | / ? |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | Shift | Z | X | C | V | B | N | M | , | . | ↑ | RShift|
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * |NumPad | Ctrl | Alt | GUI | Lower/Space | Raise/Enter | GUI | ← | ↓ | → |
+ * `-----------------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_preonic_2x2u (
+ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, TD_USMI, TD_PLEQ, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_SQDQ,
+ MT_CESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_SCOL, TD_SLQU,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
+ MO_NUMS, KC_LCTL, KC_LALT, KC_LGUI, LT_LWSP, LT_RSRT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
+),
+
+/* Numpad
+ * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
+ * | | | | | | | | Tab | / | * | Bksp | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | 7 | 8 | 9 | - | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | 4 | 5 | 6 | + | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | 1 | 2 | 3 | Enter | |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | | | | | | | 0 | . | Enter | |
+ * `-----------------------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = LAYOUT_preonic_2x2u (
+ _______, _______, _______, _______, _______, _______, _______, KC_TAB, KC_SLSH, KC_PAST, KC_BSPC, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
+ _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______
+),
+
+/* Lower
+ * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
+ * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |Delete |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | Vol+ | | | | | | | | MPlay | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | MPrev | Vol- | MNext | | | | | | | | \ |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | Mute | | | PgUp | |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | Home | PgDn | End |
+ * `-----------------------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_preonic_2x2u (
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______,
+ _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+),
+
+/* Raise
+ * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | | | | | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | | [ { ( | ) } ] | | | |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | | | | | |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_preonic_2x2u (
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, TD_LBRK, TD_RBRK, _______, KC_PIPE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Adjust (Lower + Raise)
+ * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
+ * |AudTog |███████|███████|███████|███████|███████|███████|███████|███████|███████| Debug | Reset |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * |Clicky |ClkFrq-|ClkFrq+|███████|███████|███████|███████|███████|███████|███████|TermOn |TermOff|
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | Music |Voice- |Voice+ |███████|███████|███████|███████|███████|███████|███████|AGnorm |AGswap |
+ * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
+ * | MIDI |R plain|R breat|R rnbow|R swirl|R snake|R knigt|R xmas |R grade|RGBtest|███████| Shift |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * |RGBmode|RGBhue+|RGBsat+|RGBval+| | |███████|███████|███████|███████|
+ * `-----------------------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_preonic_2x2u (
+ AU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, RESET,
+ CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TERM_ON, TERM_OFF,
+ MU_TOG, MUV_DE, MUV_IN, XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP,
+ MI_TOG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSHIFT,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
+)
+
+};
+/* clang-format on */
+
+float s_audio_on[][2] = AUDIO_ON_SONG;
+float s_layer_lower[][2] = LAYER_LOWER_SONG;
+float s_layer_raise[][2] = LAYER_RAISE_SONG;
+
+void audio_on_user() { PLAY_SONG(s_audio_on); };
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ PLAY_SONG(s_layer_lower);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ PLAY_SONG(s_layer_raise);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+ backlight_step();
+#endif
+#ifdef __AVR__
+ writePinLow(E6);
+#endif
+ } else {
+ unregister_code(KC_RSFT);
+#ifdef __AVR__
+ writePinHigh(E6);
+#endif
+ }
+ return false;
+ break;
+ }
+ return true;
+};
+
+/* Global TapDance State */
+static t_tap qk_tap_state = {
+ .left_brackets = 0,
+ .right_brackets = 0,
+};
+
+float s_numpad_toggle[][2] = LAYER_NMPAD_SONG;
+
+t_tap_state get_tapdance_state(qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (state->interrupted || !state->pressed) {
+ return SINGLE_TAP;
+ } else {
+ return SINGLE_HOLD;
+ }
+ } else if (state->count == 2) {
+ if (state->interrupted || !state->pressed) {
+ return DOUBLE_TAP;
+ } else {
+ return DOUBLE_HOLD;
+ }
+ } else if (state->count == 3) {
+ if (state->interrupted || !state->pressed) {
+ return TRIPLE_TAP;
+ } else {
+ return TRIPLE_HOLD;
+ }
+ } else
+ return TAP_DANCE_NO_MATCH;
+}
+
+void td_brackets_left_finished(qk_tap_dance_state_t *state, void *user_data) {
+ qk_tap_state.left_brackets = get_tapdance_state(state);
+ switch (qk_tap_state.left_brackets) {
+ case SINGLE_TAP:
+ register_code16(KC_LEFT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ register_code(KC_LBRACKET);
+ break;
+ case TRIPLE_TAP:
+ register_code16(KC_LEFT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+}
+
+void td_brackets_left_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (qk_tap_state.left_brackets) {
+ case SINGLE_TAP:
+ unregister_code16(KC_LEFT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ unregister_code(KC_LBRACKET);
+ break;
+ case TRIPLE_TAP:
+ unregister_code16(KC_LEFT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+ qk_tap_state.left_brackets = 0;
+}
+
+void td_brackets_right_finished(qk_tap_dance_state_t *state, void *user_data) {
+ qk_tap_state.right_brackets = get_tapdance_state(state);
+ switch (qk_tap_state.right_brackets) {
+ case SINGLE_TAP:
+ register_code16(KC_RIGHT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ register_code(KC_RBRACKET);
+ break;
+ case TRIPLE_TAP:
+ register_code16(KC_RIGHT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+}
+
+void td_brackets_right_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (qk_tap_state.right_brackets) {
+ case SINGLE_TAP:
+ unregister_code16(KC_RIGHT_PAREN);
+ break;
+ case DOUBLE_TAP:
+ unregister_code(KC_RBRACKET);
+ break;
+ case TRIPLE_TAP:
+ unregister_code16(KC_RIGHT_CURLY_BRACE);
+ break;
+ default:
+ break;
+ }
+ qk_tap_state.right_brackets = 0;
+}
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+void encoder_update_user(uint8_t index, bool clockwise) {
+ if (muse_mode) {
+ if (IS_LAYER_ON(_RAISE)) {
+ if (clockwise) {
+ muse_offset++;
+ } else {
+ muse_offset--;
+ }
+ } else {
+ if (clockwise) {
+ muse_tempo += 1;
+ } else {
+ muse_tempo -= 1;
+ }
+ }
+ } else {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+}
+
+void dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0:
+ if (active) {
+ layer_on(_ADJUST);
+ } else {
+ layer_off(_ADJUST);
+ }
+ break;
+ case 1:
+ if (active) {
+ muse_mode = true;
+ } else {
+ muse_mode = false;
+ }
+ }
+}
diff --git a/keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk b/keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk
new file mode 100644
index 000000000..9e55d0aa6
--- /dev/null
+++ b/keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk
@@ -0,0 +1,6 @@
+USER_NAME := mverteuil
+SRC += muse.c
+
+AUDIO_ENABLE = yes
+MIDI_ENABLE = yes
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/preonic/rev1/rules.mk b/keyboards/preonic/rev1/rules.mk
index 2d74f3823..9be496ce7 100644
--- a/keyboards/preonic/rev1/rules.mk
+++ b/keyboards/preonic/rev1/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/preonic/rev2/rules.mk b/keyboards/preonic/rev2/rules.mk
index 06315b2c6..b98f9b52c 100644
--- a/keyboards/preonic/rev2/rules.mk
+++ b/keyboards/preonic/rev2/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = qmk-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/preonic/rev3/rules.mk b/keyboards/preonic/rev3/rules.mk
index ad8a82967..4c5d2f2ff 100644
--- a/keyboards/preonic/rev3/rules.mk
+++ b/keyboards/preonic/rev3/rules.mk
@@ -5,11 +5,11 @@ MCU = STM32F303
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/primekb/prime_e/config.h b/keyboards/primekb/prime_e/config.h
index bf5061b1a..c56475203 100644
--- a/keyboards/primekb/prime_e/config.h
+++ b/keyboards/primekb/prime_e/config.h
@@ -36,7 +36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, D6, D4, D5, D3, D2, D1, D0 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN B7
diff --git a/keyboards/primekb/prime_e/rules.mk b/keyboards/primekb/prime_e/rules.mk
index 752497265..0a08cc2cc 100644
--- a/keyboards/primekb/prime_e/rules.mk
+++ b/keyboards/primekb/prime_e/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/primekb/prime_l/rules.mk b/keyboards/primekb/prime_l/rules.mk
index d7aca43df..f6979a626 100644
--- a/keyboards/primekb/prime_l/rules.mk
+++ b/keyboards/primekb/prime_l/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/primekb/prime_m/rules.mk b/keyboards/primekb/prime_m/rules.mk
index 615750bfb..160ed2088 100644
--- a/keyboards/primekb/prime_m/rules.mk
+++ b/keyboards/primekb/prime_m/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x6 numpad_5x6
diff --git a/keyboards/primekb/prime_o/rules.mk b/keyboards/primekb/prime_o/rules.mk
index e9b7f1558..8c2353de5 100644
--- a/keyboards/primekb/prime_o/rules.mk
+++ b/keyboards/primekb/prime_o/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/primekb/prime_r/rules.mk b/keyboards/primekb/prime_r/rules.mk
index 505ffe1e6..fb3fd385e 100644
--- a/keyboards/primekb/prime_r/rules.mk
+++ b/keyboards/primekb/prime_r/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/projectkb/alice/chconf.h b/keyboards/projectkb/alice/chconf.h
index 99fa8ce39..89388dd5a 100644
--- a/keyboards/projectkb/alice/chconf.h
+++ b/keyboards/projectkb/alice/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/projectkb/alice/config.h b/keyboards/projectkb/alice/config.h
index 4a068a889..94c1fd16d 100644
--- a/keyboards/projectkb/alice/config.h
+++ b/keyboards/projectkb/alice/config.h
@@ -62,6 +62,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
+
+// Let VIA handle the QMK RGBLIGHT
+#define VIA_QMK_RGBLIGHT_ENABLE
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/projectkb/alice/rules.mk b/keyboards/projectkb/alice/rules.mk
index 96904aef3..97fcc754d 100644
--- a/keyboards/projectkb/alice/rules.mk
+++ b/keyboards/projectkb/alice/rules.mk
@@ -23,3 +23,7 @@ RGBLIGHT_ENABLE = yes
# RAW_ENABLE = yes
# DYNAMIC_KEYMAP_ENABLE = yes
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/puck/rules.mk b/keyboards/puck/rules.mk
index 1bd0b8b1d..90519649e 100644
--- a/keyboards/puck/rules.mk
+++ b/keyboards/puck/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = halfkay
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/quantrik/kyuu/rules.mk b/keyboards/quantrik/kyuu/rules.mk
index 4b51619da..62b1a397b 100644
--- a/keyboards/quantrik/kyuu/rules.mk
+++ b/keyboards/quantrik/kyuu/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/qwertyydox/rules.mk b/keyboards/qwertyydox/rules.mk
index 4faab2607..bad5a268a 100644
--- a/keyboards/qwertyydox/rules.mk
+++ b/keyboards/qwertyydox/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/rabbit/rabbit68/rules.mk b/keyboards/rabbit/rabbit68/rules.mk
index 1bf19e4e1..b4d53d2e8 100644
--- a/keyboards/rabbit/rabbit68/rules.mk
+++ b/keyboards/rabbit/rabbit68/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/redox/rules.mk b/keyboards/redox/rules.mk
index 165008f1f..8ee269a14 100644
--- a/keyboards/redox/rules.mk
+++ b/keyboards/redox/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/redox_w/rules.mk b/keyboards/redox_w/rules.mk
index 22e8cb6b3..8b171f717 100644
--- a/keyboards/redox_w/rules.mk
+++ b/keyboards/redox_w/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/redscarf_iiplus/verb/rules.mk b/keyboards/redscarf_iiplus/verb/rules.mk
index 169e69d39..395010b62 100755
--- a/keyboards/redscarf_iiplus/verb/rules.mk
+++ b/keyboards/redscarf_iiplus/verb/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = qmk-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
SRC += matrix.c
diff --git a/keyboards/redscarf_iiplus/verc/rules.mk b/keyboards/redscarf_iiplus/verc/rules.mk
index e62b78dc6..0157596c0 100755
--- a/keyboards/redscarf_iiplus/verc/rules.mk
+++ b/keyboards/redscarf_iiplus/verc/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = qmk-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
SRC += matrix.c
diff --git a/keyboards/reviung34/rules.mk b/keyboards/reviung34/rules.mk
index 67f2386e0..036fb0c30 100755
--- a/keyboards/reviung34/rules.mk
+++ b/keyboards/reviung34/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/reviung39/rules.mk b/keyboards/reviung39/rules.mk
index 67f2386e0..036fb0c30 100644
--- a/keyboards/reviung39/rules.mk
+++ b/keyboards/reviung39/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/rgbkb/sol/config.h b/keyboards/rgbkb/sol/config.h
index 9b136db05..f42783f71 100644
--- a/keyboards/rgbkb/sol/config.h
+++ b/keyboards/rgbkb/sol/config.h
@@ -35,6 +35,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 7
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/rgbkb/sol/keymaps/default/rules.mk b/keyboards/rgbkb/sol/keymaps/default/rules.mk
index 269cf2027..7efa721e3 100644
--- a/keyboards/rgbkb/sol/keymaps/default/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/default/rules.mk
@@ -2,7 +2,7 @@
# Example:
# if you wanted to disable EXTRAKEY_ENABLE, you would copy the line from the rev1/rules.mk file
# and paste it in to this file, changing the yes to no. Like so:
-# EXTRAKEY_ENABLE = no # Audio control and System control(+450)
+# EXTRAKEY_ENABLE = no # Audio control and System control
#
# To keep things clean and tidy, as well as make upgrades easier, only place overrides from the defaults in this file.
diff --git a/keyboards/rgbkb/sol/rev1/rules.mk b/keyboards/rgbkb/sol/rev1/rules.mk
index dd6d25eb9..7be64231c 100644
--- a/keyboards/rgbkb/sol/rev1/rules.mk
+++ b/keyboards/rgbkb/sol/rev1/rules.mk
@@ -1,14 +1,14 @@
# RGBKB Sol Rev1 Defaults
# Keycode Options
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
UNICODE_ENABLE = no # Unicode keycodes
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
# Debug Options
-CONSOLE_ENABLE = no # Console for debug(+400)
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# RGB Options
diff --git a/keyboards/rgbkb/sol/rev2/rules.mk b/keyboards/rgbkb/sol/rev2/rules.mk
index 40f4c4b8c..debe8fe6b 100644
--- a/keyboards/rgbkb/sol/rev2/rules.mk
+++ b/keyboards/rgbkb/sol/rev2/rules.mk
@@ -8,7 +8,7 @@ UNICODE_ENABLE = no # Unicode keycodes
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
# Debug Options
-CONSOLE_ENABLE = no # Console for debug(+400)
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# RGB Options
diff --git a/keyboards/rgbkb/zen/rules.mk b/keyboards/rgbkb/zen/rules.mk
index 4193d23e0..dd1399580 100644
--- a/keyboards/rgbkb/zen/rules.mk
+++ b/keyboards/rgbkb/zen/rules.mk
@@ -30,10 +30,10 @@ endif
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
MIDI_ENABLE = no # MIDI controls
diff --git a/keyboards/rgbkb/zygomorph/rev1/config.h b/keyboards/rgbkb/zygomorph/rev1/config.h
index 6e55a6a5f..246e391ac 100644
--- a/keyboards/rgbkb/zygomorph/rev1/config.h
+++ b/keyboards/rgbkb/zygomorph/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 6
#define MATRIX_COL_PINS { F4, F6, C7, C6, B6, D4 }
+#define DIODE_DIRECTION COL2ROW
+
#define SOFT_SERIAL_PIN D3
#define ENCODERS_PAD_A { D2 }
diff --git a/keyboards/rgbkb/zygomorph/rules.mk b/keyboards/rgbkb/zygomorph/rules.mk
index 955221fdf..83706cdf2 100644
--- a/keyboards/rgbkb/zygomorph/rules.mk
+++ b/keyboards/rgbkb/zygomorph/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = qmk-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
LAYOUTS = ortho_4x12 ortho_5x12
diff --git a/keyboards/runner3680/3x6/config.h b/keyboards/runner3680/3x6/config.h
index d3f3605f5..fd462afb2 100644
--- a/keyboards/runner3680/3x6/config.h
+++ b/keyboards/runner3680/3x6/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/3x7/config.h b/keyboards/runner3680/3x7/config.h
index e0e6ae8e0..e6acb3735 100644
--- a/keyboards/runner3680/3x7/config.h
+++ b/keyboards/runner3680/3x7/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/3x8/config.h b/keyboards/runner3680/3x8/config.h
index 0d4e3296a..257f63a8f 100644
--- a/keyboards/runner3680/3x8/config.h
+++ b/keyboards/runner3680/3x8/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/4x6/config.h b/keyboards/runner3680/4x6/config.h
index 08838d1b6..06b9bc4df 100644
--- a/keyboards/runner3680/4x6/config.h
+++ b/keyboards/runner3680/4x6/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/4x7/config.h b/keyboards/runner3680/4x7/config.h
index f33f8f9f2..8bc2da4cd 100644
--- a/keyboards/runner3680/4x7/config.h
+++ b/keyboards/runner3680/4x7/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/4x8/config.h b/keyboards/runner3680/4x8/config.h
index d85ebb29c..9f9adfa9d 100644
--- a/keyboards/runner3680/4x8/config.h
+++ b/keyboards/runner3680/4x8/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/5x6/config.h b/keyboards/runner3680/5x6/config.h
index ae3853a8e..3ae72dcfd 100644
--- a/keyboards/runner3680/5x6/config.h
+++ b/keyboards/runner3680/5x6/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/5x7/config.h b/keyboards/runner3680/5x7/config.h
index 1d56608e6..004f84edd 100644
--- a/keyboards/runner3680/5x7/config.h
+++ b/keyboards/runner3680/5x7/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/5x8/config.h b/keyboards/runner3680/5x8/config.h
index 5349fa06a..11b7d647e 100644
--- a/keyboards/runner3680/5x8/config.h
+++ b/keyboards/runner3680/5x8/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/rules.mk b/keyboards/runner3680/rules.mk
index 3a0b190ae..2bf7ea0cb 100644
--- a/keyboards/runner3680/rules.mk
+++ b/keyboards/runner3680/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Enables split keyboard support
diff --git a/keyboards/s7_elephant/rules.mk b/keyboards/s7_elephant/rules.mk
index 6cbcb56ae..91fe85c3d 100644
--- a/keyboards/s7_elephant/rules.mk
+++ b/keyboards/s7_elephant/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/scarletbandana/rules.mk b/keyboards/scarletbandana/rules.mk
index a3461f314..ff2b9a258 100644
--- a/keyboards/scarletbandana/rules.mk
+++ b/keyboards/scarletbandana/rules.mk
@@ -14,16 +14,16 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = yes # Audio output on port C6
diff --git a/keyboards/sck/neiso/rules.mk b/keyboards/sck/neiso/rules.mk
index becaf5e1e..221054879 100644
--- a/keyboards/sck/neiso/rules.mk
+++ b/keyboards/sck/neiso/rules.mk
@@ -25,7 +25,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = yes # Audio output on port C6
diff --git a/keyboards/sck/osa/rules.mk b/keyboards/sck/osa/rules.mk
index 2d4a95c9e..c92130449 100644
--- a/keyboards/sck/osa/rules.mk
+++ b/keyboards/sck/osa/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/scythe/config.h b/keyboards/scythe/config.h
index d577192db..c4d12bb03 100644
--- a/keyboards/scythe/config.h
+++ b/keyboards/scythe/config.h
@@ -46,7 +46,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SOFT_SERIAL_PIN D0
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN B7
diff --git a/keyboards/scythe/rules.mk b/keyboards/scythe/rules.mk
index 54f2f7a52..d268951e3 100644
--- a/keyboards/scythe/rules.mk
+++ b/keyboards/scythe/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Use shared split_common
RGBLIGHT_SPLIT = yes
diff --git a/keyboards/sentraq/number_pad/rules.mk b/keyboards/sentraq/number_pad/rules.mk
index 8df6c4c7c..7c87642ac 100644
--- a/keyboards/sentraq/number_pad/rules.mk
+++ b/keyboards/sentraq/number_pad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/sentraq/s60_x/default/rules.mk b/keyboards/sentraq/s60_x/default/rules.mk
index 8b3674cd8..3b0123941 100644
--- a/keyboards/sentraq/s60_x/default/rules.mk
+++ b/keyboards/sentraq/s60_x/default/rules.mk
@@ -14,9 +14,9 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/sentraq/s60_x/rgb/rules.mk b/keyboards/sentraq/s60_x/rgb/rules.mk
index efd66a1ba..f765aa8bb 100644
--- a/keyboards/sentraq/s60_x/rgb/rules.mk
+++ b/keyboards/sentraq/s60_x/rgb/rules.mk
@@ -14,9 +14,9 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
@@ -24,7 +24,7 @@ MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
-CONSOLE_ENABLE = no # Console for debug(+400)
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/sentraq/s65_plus/rules.mk b/keyboards/sentraq/s65_plus/rules.mk
index f4da10aa1..8424d60e4 100644
--- a/keyboards/sentraq/s65_plus/rules.mk
+++ b/keyboards/sentraq/s65_plus/rules.mk
@@ -14,9 +14,9 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
MIDI_ENABLE = no # MIDI controls
diff --git a/keyboards/sentraq/s65_x/rules.mk b/keyboards/sentraq/s65_x/rules.mk
index a6a2319c2..a9cbd2518 100644
--- a/keyboards/sentraq/s65_x/rules.mk
+++ b/keyboards/sentraq/s65_x/rules.mk
@@ -14,9 +14,9 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
MIDI_ENABLE = no # MIDI controls
diff --git a/keyboards/setta21/rev1/config.h b/keyboards/setta21/rev1/config.h
index 57451a7e3..c6c1357d0 100644
--- a/keyboards/setta21/rev1/config.h
+++ b/keyboards/setta21/rev1/config.h
@@ -34,6 +34,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/shiro/rules.mk b/keyboards/shiro/rules.mk
index 03c1bc8f8..fa1864891 100644
--- a/keyboards/shiro/rules.mk
+++ b/keyboards/shiro/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/signum/3_0/elitec/config.h b/keyboards/signum/3_0/elitec/config.h
index 1e045e2e1..eeafb7236 100644
--- a/keyboards/signum/3_0/elitec/config.h
+++ b/keyboards/signum/3_0/elitec/config.h
@@ -22,6 +22,8 @@
#define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/signum/3_0/elitec/rules.mk b/keyboards/signum/3_0/elitec/rules.mk
index 6393e0f93..436c5f0ce 100644
--- a/keyboards/signum/3_0/elitec/rules.mk
+++ b/keyboards/signum/3_0/elitec/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/singa/config.h b/keyboards/singa/config.h
index badaef513..e998e6ea9 100644
--- a/keyboards/singa/config.h
+++ b/keyboards/singa/config.h
@@ -37,5 +37,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/singa/rules.mk b/keyboards/singa/rules.mk
index 54328d248..84eace5ed 100644
--- a/keyboards/singa/rules.mk
+++ b/keyboards/singa/rules.mk
@@ -15,7 +15,7 @@ BOOTLOADER = bootloadHID
BOOTMAGIC_ENABLE = no
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = yes
+CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
diff --git a/keyboards/singa/singa.c b/keyboards/singa/singa.c
index 144065d02..360b214a3 100644
--- a/keyboards/singa/singa.c
+++ b/keyboards/singa/singa.c
@@ -16,32 +16,18 @@
#include "singa.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
}
+ return true;
}
diff --git a/keyboards/sirius/uni660/config.h b/keyboards/sirius/uni660/config.h
new file mode 100644
index 000000000..06f1c7810
--- /dev/null
+++ b/keyboards/sirius/uni660/config.h
@@ -0,0 +1,78 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+
+#define VENDOR_ID 0x5352 // "SR"
+#define PRODUCT_ID 0x0201 // Second Product First Version
+#define DEVICE_VER 0x1912 // 2019.12
+#define MANUFACTURER SiRius
+#define PRODUCT SiRius Uni660
+#define DESCRIPTION SiRius Uni660
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 16
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+//#define BACKLIGHT_LEVELS 3
+
+#define ONESHOT_TIMEOUT 500
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+//UART settings for communication with the RF microcontroller
+#define SERIAL_UART_BAUD 1000000
+#define SERIAL_UART_DATA UDR1
+#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1)
+#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1))
+#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1))
+#define SERIAL_UART_INIT() do { \
+ /* baud rate */ \
+ UBRR1L = SERIAL_UART_UBRR; \
+ /* baud rate */ \
+ UBRR1H = SERIAL_UART_UBRR >> 8; \
+ /* enable TX and RX */ \
+ UCSR1B = _BV(TXEN1) | _BV(RXEN1); \
+ /* 8-bit data */ \
+ UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \
+ } while(0)
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 4
diff --git a/keyboards/sirius/uni660/info.json b/keyboards/sirius/uni660/info.json
new file mode 100644
index 000000000..296626d06
--- /dev/null
+++ b/keyboards/sirius/uni660/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "Uni660",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 12,
+ "height": 5.75,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"x":0, "y":0.75}, {"x":1, "y":0.25}, {"x":2, "y":0}, {"x":3, "y":0.25}, {"x":4, "y":0.125}, {"x":7, "y":0.125}, {"x":8, "y":0.25}, {"x":9, "y":0}, {"x":10, "y":0.25}, {"x":11, "y":0.75}, {"x":0, "y":1.75}, {"x":1, "y":1.25}, {"x":2, "y":1}, {"x":3, "y":1.25}, {"x":4, "y":1.125}, {"x":7, "y":1.125}, {"x":8, "y":1.25}, {"x":9, "y":1}, {"x":10, "y":1.25}, {"x":11, "y":1.75}, {"x":0, "y":2.75}, {"x":1, "y":2.25}, {"x":2, "y":2}, {"x":3, "y":2.25}, {"x":4, "y":2.125}, {"x":7, "y":2.125}, {"x":8, "y":2.25}, {"x":9, "y":2}, {"x":10, "y":2.25}, {"x":11, "y":2.75}, {"x":1.5, "y":3.75}, {"x":2.5, "y":3.75}, {"x":3.5, "y":3.75}, {"x":4.5, "y":3.75}, {"x":6.5, "y":3.75}, {"x":7.5, "y":3.75}, {"x":8.5, "y":3.75}, {"x":9.5, "y":3.75}, {"x":1.5, "y":4.75}, {"x":2.5, "y":4.75}, {"x":3.5, "y":4.75}, {"x":4.5, "y":4.75}, {"x":6.5, "y":4.75}, {"x":7.5, "y":4.75}, {"x":8.5, "y":4.75}, {"x":9.5, "y":4.75}]
+ }
+ }
+}
diff --git a/keyboards/sirius/uni660/keymaps/default/keymap.c b/keyboards/sirius/uni660/keymaps/default/keymap.c
new file mode 100644
index 000000000..336aa8410
--- /dev/null
+++ b/keyboards/sirius/uni660/keymaps/default/keymap.c
@@ -0,0 +1,11 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT( /* Base */
+KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS,
+KC_F1, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+KC_F3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+KC_F4, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_DEL, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
+),
+};
diff --git a/keyboards/sirius/uni660/keymaps/via/keymap.c b/keyboards/sirius/uni660/keymaps/via/keymap.c
new file mode 100644
index 000000000..61bac7e4d
--- /dev/null
+++ b/keyboards/sirius/uni660/keymaps/via/keymap.c
@@ -0,0 +1,35 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT( /* Base */
+KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS,
+KC_F1, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+KC_F2, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+KC_F3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+KC_F4, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_DEL, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
+),
+
+[1] = LAYOUT( /* Layer 1 */
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+[2] = LAYOUT( /* Layer 2 */
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+[3] = LAYOUT( /* Layer 3 */
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+};
diff --git a/keyboards/sirius/uni660/keymaps/via/rules.mk b/keyboards/sirius/uni660/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/sirius/uni660/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/sirius/uni660/matrix.c b/keyboards/sirius/uni660/matrix.c
new file mode 100644
index 000000000..3e231b33b
--- /dev/null
+++ b/keyboards/sirius/uni660/matrix.c
@@ -0,0 +1,160 @@
+/*
+Copyright 2012 Jun Wako
+Copyright 2014 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include <stdint.h>
+#include <stdbool.h>
+#if defined(__AVR__)
+#include <avr/io.h>
+#endif
+#include "wait.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+#include "timer.h"
+#include "debounce.h"
+
+#if (MATRIX_COLS <= 8)
+# define print_matrix_header() print("\nr/c 01234567\n")
+# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
+# define matrix_bitpop(i) bitpop(matrix[i])
+# define ROW_SHIFTER ((uint8_t)1)
+#elif (MATRIX_COLS <= 16)
+# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n")
+# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row))
+# define matrix_bitpop(i) bitpop16(matrix[i])
+# define ROW_SHIFTER ((uint16_t)1)
+#elif (MATRIX_COLS <= 32)
+# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n")
+# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row))
+# define matrix_bitpop(i) bitpop32(matrix[i])
+# define ROW_SHIFTER ((uint32_t)1)
+#endif
+
+/* matrix state(1:on, 0:off) */
+static matrix_row_t matrix[MATRIX_ROWS];
+
+
+__attribute__ ((weak))
+void matrix_init_kb(void) {
+ matrix_init_user();
+}
+
+__attribute__ ((weak))
+void matrix_scan_kb(void) {
+ matrix_scan_user();
+}
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+}
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+}
+
+inline
+uint8_t matrix_rows(void) {
+ return MATRIX_ROWS;
+}
+
+inline
+uint8_t matrix_cols(void) {
+ return MATRIX_COLS;
+}
+
+void matrix_init(void) {
+ debounce_init(MATRIX_ROWS);
+ matrix_init_quantum();
+}
+
+uint8_t matrix_scan(void)
+{
+ bool matrix_has_changed = false;
+
+ SERIAL_UART_INIT();
+
+ uint32_t timeout = 0;
+
+ //the s character requests the RF slave to send the matrix
+ SERIAL_UART_DATA = 's';
+
+ //trust the external keystates entirely, erase the last data
+ uint8_t uart_data[17] = {0};
+
+ //there are 16 bytes corresponding to 16 columns, and an end byte
+ for (uint8_t i = 0; i < 17; i++) {
+ //wait for the serial data, timeout if it's been too long
+ //this only happened in testing with a loose wire, but does no
+ //harm to leave it in here
+ while(!SERIAL_UART_RXD_PRESENT){
+ timeout++;
+ if (timeout > 10000){
+ break;
+ }
+ }
+ uart_data[i] = SERIAL_UART_DATA;
+ }
+
+ //check for the end packet, the key state bytes use the LSBs, so 0xE0
+ //will only show up here if the correct bytes were recieved
+ if (uart_data[10] == 0xE0)
+ {
+ //shifting and transferring the keystates to the QMK matrix variable
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = (uint16_t) uart_data[i*2] | (uint16_t) uart_data[i*2+1] << 8;
+ }
+ }
+
+ debounce(matrix, matrix, MATRIX_ROWS, matrix_has_changed);
+
+ matrix_scan_quantum();
+
+ return matrix_has_changed;
+}
+
+inline
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+ return (matrix[row] & ((matrix_row_t)1<<col));
+}
+
+inline
+matrix_row_t matrix_get_row(uint8_t row)
+{
+ return matrix[row];
+}
+
+void matrix_print(void)
+{
+ print_matrix_header();
+
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ phex(row); print(": ");
+ print_matrix_row(row);
+ print("\n");
+ }
+}
+
+uint8_t matrix_key_count(void)
+{
+ uint8_t count = 0;
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ count += matrix_bitpop(i);
+ }
+ return count;
+}
diff --git a/keyboards/sirius/uni660/readme.md b/keyboards/sirius/uni660/readme.md
new file mode 100644
index 000000000..c3d2dbc1b
--- /dev/null
+++ b/keyboards/sirius/uni660/readme.md
@@ -0,0 +1,13 @@
+# Uni660
+
+The Uni660 is an ergonomic wireless keyboard designed by Sirius.
+
+Join the KeyCommerce [Discord](https://discord.gg/GJ8bdM)
+
+Make example:
+
+ make sirius/uni660:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+To get the U2U into DFU flashing mode, insert the U2U into the computer and connect the ![RST pins](https://i.imgur.com/IlKKXWB.png)
diff --git a/keyboards/sirius/uni660/rules.mk b/keyboards/sirius/uni660/rules.mk
new file mode 100644
index 000000000..920d8a83d
--- /dev/null
+++ b/keyboards/sirius/uni660/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
+# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+# MIDI_ENABLE = yes # MIDI controls
+UNICODE_ENABLE = yes # Unicode
+# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+# project specific files
+SRC += matrix.c
diff --git a/keyboards/sirius/uni660/uni660.c b/keyboards/sirius/uni660/uni660.c
new file mode 100644
index 000000000..2144facc5
--- /dev/null
+++ b/keyboards/sirius/uni660/uni660.c
@@ -0,0 +1,35 @@
+#include "uni660.h"
+
+void uart_init(void) {
+ SERIAL_UART_INIT();
+}
+
+void led_init(void) {
+ setPinOutput(D1); // Pin to green, set as output
+ writePinHigh(D1); // Turn it off
+ setPinOutput(F4); // Pins to red and blue, set as output
+ setPinOutput(F5);
+ writePinHigh(F4); // Turn them off
+ writePinHigh(F5);
+}
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+ matrix_init_user();
+ uart_init();
+ led_init();
+}
+
+/*
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+{{9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
+{{9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
+{{9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
+{{9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
+{{9, 4}, {8, 4}, {7, 4}, {6, 4}, {5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
+};
+#endif
+*/
diff --git a/keyboards/sirius/uni660/uni660.h b/keyboards/sirius/uni660/uni660.h
new file mode 100644
index 000000000..81743adbd
--- /dev/null
+++ b/keyboards/sirius/uni660/uni660.h
@@ -0,0 +1,61 @@
+#pragma once
+
+#include "quantum.h"
+
+#define red_led_off writePinHigh(F5)
+#define red_led_on writePinLow(F5)
+#define blu_led_off writePinHigh(F4)
+#define blu_led_on writePinLow(F4)
+#define grn_led_off writePinHigh(D1)
+#define grn_led_on writePinLow(D1)
+
+#define set_led_off red_led_off; grn_led_off; blu_led_off
+#define set_led_red red_led_on; grn_led_off; blu_led_off
+#define set_led_blue red_led_off; grn_led_off; blu_led_on
+#define set_led_green red_led_off; grn_led_on; blu_led_off
+#define set_led_yellow red_led_on; grn_led_on; blu_led_off
+#define set_led_magenta red_led_on; grn_led_off; blu_led_on
+#define set_led_cyan red_led_off; grn_led_on; blu_led_on
+#define set_led_white red_led_on; grn_led_on; blu_led_on
+
+/*
+#define LED_B 5
+#define LED_R 6
+#define LED_G 7
+
+#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
+
+#define red_led_on PORTF |= (1<<LED_R)
+#define red_led_off PORTF &= ~(1<<LED_R)
+#define grn_led_on PORTF |= (1<<LED_G)
+#define grn_led_off PORTF &= ~(1<<LED_G)
+#define blu_led_on PORTF |= (1<<LED_B)
+#define blu_led_off PORTF &= ~(1<<LED_B)
+
+#define set_led_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
+#define set_led_red PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
+#define set_led_blue PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
+#define set_led_green PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
+#define set_led_yellow PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
+#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
+#define set_led_cyan PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
+#define set_led_white PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
+*/
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+#define LAYOUT( \
+ k00, k01, k02, k03, k04, k05, k06, k46, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k3f,\
+ k10, k11, k12, k13, k14, k15, k16, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k2f,\
+ k20, k21, k22, k23, k24, k25, k26, k28, k29, k2a, k2b, k2c, k2d, k2e,\
+ k30, k31, k32, k33, k34, k35, k36, k38, k39, k3a, k3b, k3c, k3d, k3e, \
+ k40, k41, k42, k43, k44, k45, k48, k49, k4a, k4c, k4d, k4e, k4f \
+) \
+ { \
+ { k00, k01, k02, k03, k04, k05, k06, KC_NO, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f }, \
+ { k10, k11, k12, k13, k14, k15, k16, KC_NO, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f }, \
+ { k20, k21, k22, k23, k24, k25, k26, KC_NO, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f }, \
+ { k30, k31, k32, k33, k34, k35, k36, KC_NO, k38, k39, k3a, k3b, k3c, k3d, k3e, k3f }, \
+ { k40, k41, k42, k43, k44, k45, k46, KC_NO, k48, k49, k4a, KC_NO, k4c, k4d, k4e, k4f } \
+ }
diff --git a/keyboards/sirius/unigo66/config.h b/keyboards/sirius/unigo66/config.h
index 66f7f9542..3eed36bc0 100644
--- a/keyboards/sirius/unigo66/config.h
+++ b/keyboards/sirius/unigo66/config.h
@@ -17,8 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define CUSTOM_MATRIX 2
-
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x1001
@@ -31,9 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 16
#define MATRIX_COLS 16
-/* matrix scanning is done in custom_matrix.cpp */
-//#define DIODE_DIRECTION
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/sirius/unigo66/rules.mk b/keyboards/sirius/unigo66/rules.mk
index 53cf934c4..3effc0850 100644
--- a/keyboards/sirius/unigo66/rules.mk
+++ b/keyboards/sirius/unigo66/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-# MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-# CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+# MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+# CONSOLE_ENABLE = yes # Console for debug
# COMMAND_ENABLE = yes # Commands for debug and configuration
# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
# NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/sixkeyboard/rules.mk b/keyboards/sixkeyboard/rules.mk
index 5b89ff4e6..889ea2fd1 100644
--- a/keyboards/sixkeyboard/rules.mk
+++ b/keyboards/sixkeyboard/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/smk60/rules.mk b/keyboards/smk60/rules.mk
index cbb1c8b74..45c73d75b 100644
--- a/keyboards/smk60/rules.mk
+++ b/keyboards/smk60/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/snagpad/rules.mk b/keyboards/snagpad/rules.mk
index 9256eaed1..566a398fe 100644
--- a/keyboards/snagpad/rules.mk
+++ b/keyboards/snagpad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/snampad/config.h b/keyboards/snampad/config.h
index a2dc3c6dd..86dd3ce2f 100644
--- a/keyboards/snampad/config.h
+++ b/keyboards/snampad/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D0, D1, D2, D3 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION ROW2COL
/*
diff --git a/keyboards/snampad/rules.mk b/keyboards/snampad/rules.mk
index 1a1fbe6bc..91b492ba4 100644
--- a/keyboards/snampad/rules.mk
+++ b/keyboards/snampad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,11 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = numpad_6x4
diff --git a/keyboards/southpole/rules.mk b/keyboards/southpole/rules.mk
index d6b65e960..f1bf7c8fd 100644
--- a/keyboards/southpole/rules.mk
+++ b/keyboards/southpole/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/spacetime/rules.mk b/keyboards/spacetime/rules.mk
index aa1a88925..7dd776190 100644
--- a/keyboards/spacetime/rules.mk
+++ b/keyboards/spacetime/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OLED_DRIVER_ENABLE = no
# Enable generic behavior for split boards
diff --git a/keyboards/speedo/rules.mk b/keyboards/speedo/rules.mk
index 4295e2ad7..b961b08c0 100644
--- a/keyboards/speedo/rules.mk
+++ b/keyboards/speedo/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/standaside/config.h b/keyboards/standaside/config.h
index 80c9f8d21..92c6b28b9 100644
--- a/keyboards/standaside/config.h
+++ b/keyboards/standaside/config.h
@@ -31,7 +31,7 @@
#define UNUSED_PINS {}
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
// #define BACKLIGHT_PIN C7
diff --git a/keyboards/standaside/rules.mk b/keyboards/standaside/rules.mk
index 1d92c731c..296081722 100644
--- a/keyboards/standaside/rules.mk
+++ b/keyboards/standaside/rules.mk
@@ -14,20 +14,20 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
RGBLIGHT_ENABLE = yes # Enable RGB underlighting support
diff --git a/keyboards/staryu/rules.mk b/keyboards/staryu/rules.mk
index 52bb72ca7..c97038804 100755
--- a/keyboards/staryu/rules.mk
+++ b/keyboards/staryu/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = lufa-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/stella/rules.mk b/keyboards/stella/rules.mk
index b6b8f8841..1f4d19228 100644
--- a/keyboards/stella/rules.mk
+++ b/keyboards/stella/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Supported layouts
LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/subatomic/rules.mk b/keyboards/subatomic/rules.mk
index 4d1c4c1c5..abff350ea 100644
--- a/keyboards/subatomic/rules.mk
+++ b/keyboards/subatomic/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/suihankey/rules.mk b/keyboards/suihankey/rules.mk
index d4c2e54b1..e3b91d3da 100644
--- a/keyboards/suihankey/rules.mk
+++ b/keyboards/suihankey/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OLED_DRIVER_ENABLE = yes
SPLIT_KEYBOARD = no
diff --git a/keyboards/switchplate/README.md b/keyboards/switchplate/README.md
new file mode 100644
index 000000000..166853f28
--- /dev/null
+++ b/keyboards/switchplate/README.md
@@ -0,0 +1,4 @@
+# Switchplate Peripherals
+All keyboards under the Switchplate Peripherals brand
+
+Website: [here](https://switchplate.co/) \ No newline at end of file
diff --git a/keyboards/switchplate/southpaw_fullsize/config.h b/keyboards/switchplate/southpaw_fullsize/config.h
new file mode 100644
index 000000000..adbb4f8db
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/config.h
@@ -0,0 +1,143 @@
+/*
+Copyright 2020 Ryota Goto
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xA103
+#define PRODUCT_ID 0x0017
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Switchplate Peripherals
+#define PRODUCT Southpaw Fullsize
+#define DESCRIPTION A large custom keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 22
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { E1, C0, C1, C2, C3, C4 }
+#define MATRIX_COL_PINS { A7, C7, C6, C5, F0, F1, F2, F3, F4, F5, F6, F7, A0, A1, A2, A3, A4, A5, A6, E0, D7, D6 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
+#ifndef LINK_TIME_OPTIMIZATION_ENABLE
+ #define NO_ACTION_MACRO
+ #define NO_ACTION_FUNCTION
+#endif
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/switchplate/southpaw_fullsize/info.json b/keyboards/switchplate/southpaw_fullsize/info.json
new file mode 100644
index 000000000..d4823f108
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/info.json
@@ -0,0 +1,242 @@
+{
+ "keyboard_name": "southpaw_fullsize",
+ "url": "",
+ "maintainer": "ai03",
+ "width": 22.5,
+ "height": 6.25,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":4.25, "y":0},
+ {"x":6.25, "y":0},
+ {"x":7.25, "y":0},
+ {"x":8.25, "y":0},
+ {"x":9.25, "y":0},
+ {"x":10.75, "y":0},
+ {"x":11.75, "y":0},
+ {"x":12.75, "y":0},
+ {"x":13.75, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":18.25, "y":0},
+ {"x":19.5, "y":0},
+ {"x":20.5, "y":0},
+ {"x":21.5, "y":0},
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4.25, "y":1.25},
+ {"x":5.25, "y":1.25},
+ {"x":6.25, "y":1.25},
+ {"x":7.25, "y":1.25},
+ {"x":8.25, "y":1.25},
+ {"x":9.25, "y":1.25},
+ {"x":10.25, "y":1.25},
+ {"x":11.25, "y":1.25},
+ {"x":12.25, "y":1.25},
+ {"x":13.25, "y":1.25},
+ {"x":14.25, "y":1.25},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+ {"x":18.25, "y":1.25},
+ {"x":19.5, "y":1.25},
+ {"x":20.5, "y":1.25},
+ {"x":21.5, "y":1.25},
+ {"x":0, "y":2.25},
+ {"x":1, "y":2.25},
+ {"x":2, "y":2.25},
+ {"x":3, "y":2.25},
+ {"x":4.25, "y":2.25, "w":1.5},
+ {"x":5.75, "y":2.25},
+ {"x":6.75, "y":2.25},
+ {"x":7.75, "y":2.25},
+ {"x":8.75, "y":2.25},
+ {"x":9.75, "y":2.25},
+ {"x":10.75, "y":2.25},
+ {"x":11.75, "y":2.25},
+ {"x":12.75, "y":2.25},
+ {"x":13.75, "y":2.25},
+ {"x":14.75, "y":2.25},
+ {"x":15.75, "y":2.25},
+ {"x":16.75, "y":2.25},
+ {"x":17.75, "y":2.25, "w":1.5},
+ {"x":19.5, "y":2.25},
+ {"x":20.5, "y":2.25},
+ {"x":21.5, "y":2.25},
+ {"x":0, "y":3.25},
+ {"x":1, "y":3.25},
+ {"x":2, "y":3.25},
+ {"x":3, "y":3.25},
+ {"x":4.25, "y":3.25, "w":1.75},
+ {"x":6, "y":3.25},
+ {"x":7, "y":3.25},
+ {"x":8, "y":3.25},
+ {"x":9, "y":3.25},
+ {"x":10, "y":3.25},
+ {"x":11, "y":3.25},
+ {"x":12, "y":3.25},
+ {"x":13, "y":3.25},
+ {"x":14, "y":3.25},
+ {"x":15, "y":3.25},
+ {"x":16, "y":3.25},
+ {"x":17, "y":3.25},
+ {"x":18, "y":3.25, "w":1.25},
+ {"x":0, "y":4.25},
+ {"x":1, "y":4.25},
+ {"x":2, "y":4.25},
+ {"x":3, "y":4.25},
+ {"x":4.25, "y":4.25, "w":1.25},
+ {"x":5.5, "y":4.25},
+ {"x":6.5, "y":4.25},
+ {"x":7.5, "y":4.25},
+ {"x":8.5, "y":4.25},
+ {"x":9.5, "y":4.25},
+ {"x":10.5, "y":4.25},
+ {"x":11.5, "y":4.25},
+ {"x":12.5, "y":4.25},
+ {"x":13.5, "y":4.25},
+ {"x":14.5, "y":4.25},
+ {"x":15.5, "y":4.25},
+ {"x":16.5, "y":4.25, "w":1.75},
+ {"x":18.25, "y":4.25},
+ {"x":20.5, "y":4.25},
+ {"x":0, "y":5.25},
+ {"x":1, "y":5.25},
+ {"x":2, "y":5.25},
+ {"x":3, "y":5.25},
+ {"x":4.25, "y":5.25, "w":1.25},
+ {"x":5.5, "y":5.25, "w":1.25},
+ {"x":6.75, "y":5.25, "w":1.25},
+ {"x":8, "y":5.25, "w":6.25},
+ {"x":14.25, "y":5.25, "w":1.25},
+ {"x":15.5, "y":5.25, "w":1.25},
+ {"x":16.75, "y":5.25, "w":1.25},
+ {"x":18, "y":5.25, "w":1.25},
+ {"x":19.5, "y":5.25},
+ {"x":20.5, "y":5.25},
+ {"x":21.5, "y":5.25}
+ ]
+ },
+ "LAYOUT_ansi_wkl": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":1, "y":0},
+ {"x":2, "y":0},
+ {"x":4.25, "y":0},
+ {"x":6.25, "y":0},
+ {"x":7.25, "y":0},
+ {"x":8.25, "y":0},
+ {"x":9.25, "y":0},
+ {"x":10.75, "y":0},
+ {"x":11.75, "y":0},
+ {"x":12.75, "y":0},
+ {"x":13.75, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":18.25, "y":0},
+ {"x":19.5, "y":0},
+ {"x":20.5, "y":0},
+ {"x":21.5, "y":0},
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4.25, "y":1.25},
+ {"x":5.25, "y":1.25},
+ {"x":6.25, "y":1.25},
+ {"x":7.25, "y":1.25},
+ {"x":8.25, "y":1.25},
+ {"x":9.25, "y":1.25},
+ {"x":10.25, "y":1.25},
+ {"x":11.25, "y":1.25},
+ {"x":12.25, "y":1.25},
+ {"x":13.25, "y":1.25},
+ {"x":14.25, "y":1.25},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+ {"x":18.25, "y":1.25},
+ {"x":19.5, "y":1.25},
+ {"x":20.5, "y":1.25},
+ {"x":21.5, "y":1.25},
+ {"x":0, "y":2.25},
+ {"x":1, "y":2.25},
+ {"x":2, "y":2.25},
+ {"x":3, "y":2.25},
+ {"x":4.25, "y":2.25, "w":1.5},
+ {"x":5.75, "y":2.25},
+ {"x":6.75, "y":2.25},
+ {"x":7.75, "y":2.25},
+ {"x":8.75, "y":2.25},
+ {"x":9.75, "y":2.25},
+ {"x":10.75, "y":2.25},
+ {"x":11.75, "y":2.25},
+ {"x":12.75, "y":2.25},
+ {"x":13.75, "y":2.25},
+ {"x":14.75, "y":2.25},
+ {"x":15.75, "y":2.25},
+ {"x":16.75, "y":2.25},
+ {"x":17.75, "y":2.25, "w":1.5},
+ {"x":19.5, "y":2.25},
+ {"x":20.5, "y":2.25},
+ {"x":21.5, "y":2.25},
+ {"x":0, "y":3.25},
+ {"x":1, "y":3.25},
+ {"x":2, "y":3.25},
+ {"x":3, "y":3.25},
+ {"x":4.25, "y":3.25, "w":1.75},
+ {"x":6, "y":3.25},
+ {"x":7, "y":3.25},
+ {"x":8, "y":3.25},
+ {"x":9, "y":3.25},
+ {"x":10, "y":3.25},
+ {"x":11, "y":3.25},
+ {"x":12, "y":3.25},
+ {"x":13, "y":3.25},
+ {"x":14, "y":3.25},
+ {"x":15, "y":3.25},
+ {"x":16, "y":3.25},
+ {"x":17, "y":3.25, "w":2.25},
+ {"x":0, "y":4.25},
+ {"x":1, "y":4.25},
+ {"x":2, "y":4.25},
+ {"x":3, "y":4.25},
+ {"x":4.25, "y":4.25, "w":2.25},
+ {"x":6.5, "y":4.25},
+ {"x":7.5, "y":4.25},
+ {"x":8.5, "y":4.25},
+ {"x":9.5, "y":4.25},
+ {"x":10.5, "y":4.25},
+ {"x":11.5, "y":4.25},
+ {"x":12.5, "y":4.25},
+ {"x":13.5, "y":4.25},
+ {"x":14.5, "y":4.25},
+ {"x":15.5, "y":4.25},
+ {"x":16.5, "y":4.25, "w":1.75},
+ {"x":18.25, "y":4.25},
+ {"x":20.5, "y":4.25},
+ {"x":0, "y":5.25},
+ {"x":1, "y":5.25},
+ {"x":2, "y":5.25},
+ {"x":3, "y":5.25},
+ {"x":4.25, "y":5.25, "w":1.5},
+ {"x":5.75, "y":5.25},
+ {"x":6.75, "y":5.25, "w":1.5},
+ {"x":8.25, "y":5.25, "w":7},
+ {"x":15.25, "y":5.25, "w":1.5},
+ {"x":16.75, "y":5.25},
+ {"x":17.75, "y":5.25, "w":1.5},
+ {"x":19.5, "y":5.25},
+ {"x":20.5, "y":5.25},
+ {"x":21.5, "y":5.25}
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/switchplate/southpaw_fullsize/keymaps/default/keymap.c b/keyboards/switchplate/southpaw_fullsize/keymaps/default/keymap.c
new file mode 100644
index 000000000..185c98516
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/keymaps/default/keymap.c
@@ -0,0 +1,42 @@
+/* Copyright 2020 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_all (
+ BL_STEP, BL_TOGG, MO(1) , KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_P4, KC_P5, KC_P6, KC_PPLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT,
+ KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP,
+ KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN] = LAYOUT_all (
+ _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+};
diff --git a/keyboards/switchplate/southpaw_fullsize/keymaps/default/readme.md b/keyboards/switchplate/southpaw_fullsize/keymaps/default/readme.md
new file mode 100644
index 000000000..aea00fdd6
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/keymaps/default/readme.md
@@ -0,0 +1,3 @@
+# The default keymap for southpaw fullsize
+
+Nothing special \ No newline at end of file
diff --git a/keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/keymap.c b/keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/keymap.c
new file mode 100644
index 000000000..e66da9832
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/keymap.c
@@ -0,0 +1,43 @@
+/* Copyright 2020 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_ansi_wkl (
+ BL_STEP, BL_TOGG, MO(1) , KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_P4, KC_P5, KC_P6, KC_PPLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP,
+ KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN] = LAYOUT_ansi_wkl (
+ _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+};
+
diff --git a/keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/readme.md b/keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/readme.md
new file mode 100644
index 000000000..39dc221a4
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/keymaps/default_wkl/readme.md
@@ -0,0 +1,3 @@
+# The default WKL keymap for southpaw fullsize
+
+Nothing special \ No newline at end of file
diff --git a/keyboards/switchplate/southpaw_fullsize/readme.md b/keyboards/switchplate/southpaw_fullsize/readme.md
new file mode 100644
index 000000000..f44d4d46a
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/readme.md
@@ -0,0 +1,15 @@
+# Southpaw Full Size
+
+![southpaw_fullsize](https://i.imgur.com/Kt8eN8L.jpg)
+
+A fullsize keyboard with southpaw numpad
+
+* Keyboard Maintainer: [Switchplate Peripherals](https://switchplate.co/)/[ai03](https://github.com/ai03-2725)
+* Hardware Supported: The Southpaw Full Size PCB
+* Hardware Availability: GB
+
+Make example for this keyboard (after setting up your build environment):
+
+ make switchplate/southpaw_fullsize:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/switchplate/southpaw_fullsize/rules.mk b/keyboards/switchplate/southpaw_fullsize/rules.mk
new file mode 100644
index 000000000..46d62bf5d
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = at90usb1286
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c b/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c
new file mode 100644
index 000000000..253a4fd67
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.c
@@ -0,0 +1,51 @@
+/* Copyright 2020 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "southpaw_fullsize.h"
+
+// Optional override functions below.
+// You can leave any or all of these undefined.
+// These are only required if you want to perform custom actions.
+
+#define INDICATOR_NUM D3
+#define INDICATOR_CAPS D4
+#define INDICATOR_SCR D5
+
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ // D3 Numlock, D4 Capslock, D5 Scrlock
+ setPinOutput(INDICATOR_NUM);
+ setPinOutput(INDICATOR_CAPS);
+ setPinOutput(INDICATOR_SCR);
+
+ matrix_init_user();
+}
+
+bool led_update_kb(led_t led_state) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ bool res = led_update_user(led_state);
+ if (res)
+ {
+ writePin(INDICATOR_NUM, !led_state.num_lock);
+ writePin(INDICATOR_CAPS, !led_state.caps_lock);
+ writePin(INDICATOR_SCR, !led_state.scroll_lock);
+ }
+ return res;
+}
+
diff --git a/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.h b/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.h
new file mode 100644
index 000000000..b8667f39f
--- /dev/null
+++ b/keyboards/switchplate/southpaw_fullsize/southpaw_fullsize.h
@@ -0,0 +1,70 @@
+/* Copyright 2020 Ryota Goto
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+
+#define LAYOUT_all( \
+ K000, K001, K002, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K019, K020, K021, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K219, K220, K221, \
+ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, \
+ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K418, K420, \
+ K500, K501, K502, K503, K504, K505, K506, K510, K513, K514, K515, K516, K519, K520, K521 \
+) \
+{ \
+ { K000, K001, K002, KC_NO, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, KC_NO, K019, K020, K021 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, KC_NO, K219, K220, K221 }, \
+ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, KC_NO, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, KC_NO, K418, KC_NO, K420, KC_NO }, \
+ { K500, K501, K502, K503, K504, K505, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, KC_NO, K513, K514, K515, K516, KC_NO, KC_NO, K519, K520, K521 } \
+}
+
+#define LAYOUT_ansi_wkl( \
+ K000, K001, K002, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K019, K020, K021, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K219, K220, K221, \
+ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K317, \
+ K400, K401, K402, K403, K404, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K418, K420, \
+ K500, K501, K502, K503, K504, K505, K506, K510, K514, K515, K516, K519, K520, K521 \
+) \
+{ \
+ { K000, K001, K002, KC_NO, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, KC_NO, K019, K020, K021 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, KC_NO, K219, K220, K221 }, \
+ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, KC_NO, K317, KC_NO, KC_NO, KC_NO, KC_NO }, \
+ { K400, K401, K402, K403, K404, KC_NO, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, KC_NO, K418, KC_NO, K420, KC_NO }, \
+ { K500, K501, K502, K503, K504, K505, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, KC_NO, KC_NO, K514, K515, K516, KC_NO, KC_NO, K519, K520, K521 } \
+}
+
+
+
+
+
+
+
+
diff --git a/keyboards/sx60/rules.mk b/keyboards/sx60/rules.mk
index 4c711dc88..64b2f2b2c 100755
--- a/keyboards/sx60/rules.mk
+++ b/keyboards/sx60/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/tada68/keymaps/iso-nor/rules.mk b/keyboards/tada68/keymaps/iso-nor/rules.mk
index 53644093d..5cbbc3453 100644
--- a/keyboards/tada68/keymaps/iso-nor/rules.mk
+++ b/keyboards/tada68/keymaps/iso-nor/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/tada68/keymaps/iso-uk/rules.mk b/keyboards/tada68/keymaps/iso-uk/rules.mk
index 53644093d..5cbbc3453 100644
--- a/keyboards/tada68/keymaps/iso-uk/rules.mk
+++ b/keyboards/tada68/keymaps/iso-uk/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/tada68/keymaps/rgb/rules.mk b/keyboards/tada68/keymaps/rgb/rules.mk
index e72478251..247c98616 100644
--- a/keyboards/tada68/keymaps/rgb/rules.mk
+++ b/keyboards/tada68/keymaps/rgb/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/tanuki/config.h b/keyboards/tanuki/config.h
index 1439ed43e..2dcd7b27d 100644
--- a/keyboards/tanuki/config.h
+++ b/keyboards/tanuki/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F7 , B1 , D4 , D0 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/tanuki/rules.mk b/keyboards/tanuki/rules.mk
index 516c3db5e..f8a4ecec3 100644
--- a/keyboards/tanuki/rules.mk
+++ b/keyboards/tanuki/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE =yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE =yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/tartan/config.h b/keyboards/tartan/config.h
new file mode 100644
index 000000000..4c49b7e09
--- /dev/null
+++ b/keyboards/tartan/config.h
@@ -0,0 +1,248 @@
+/*
+Copyright 2019 Takuya Urakawa (dm9records.com)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+/* VID & PID from vusb project, see tmk_core/protocol/vusb/USB-IDs-for-free.txt"*/
+#define VENDOR_ID 0x16c0
+#define PRODUCT_ID 0x27db
+#define DEVICE_VER 0x0001
+#define MANUFACTURER dm9records
+#define PRODUCT Tartan
+#define DESCRIPTION 60% keyboard with through hole components
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 13
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B4, B5, B3, B0, C0 }
+#define MATRIX_COL_PINS { D7, D6, D5, D4, B1, B2, C1, C2, C3, C5, D1, D0, C4 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define NO_UART 1
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/*
+ * HD44780 LCD Display Configuration
+ */
+/*
+#define LCD_LINES 2 //< number of visible lines of the display
+#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
+
+#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
+
+#if LCD_IO_MODE
+#define LCD_PORT PORTB //< port for the LCD lines
+#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
+#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
+#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
+#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
+#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
+#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
+#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
+#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
+#define LCD_RS_PORT LCD_PORT //< port for RS line
+#define LCD_RS_PIN 3 //< pin for RS line
+#define LCD_RW_PORT LCD_PORT //< port for RW line
+#define LCD_RW_PIN 2 //< pin for RW line
+#define LCD_E_PORT LCD_PORT //< port for Enable line
+#define LCD_E_PIN 1 //< pin for Enable line
+#endif
+*/
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/tartan/info.json b/keyboards/tartan/info.json
new file mode 100644
index 000000000..72da8bd9d
--- /dev/null
+++ b/keyboards/tartan/info.json
@@ -0,0 +1,34 @@
+{
+ "keyboard_name": "Tartan # Through Hole",
+ "keyboard_folder": "tartan",
+ "url": "https://github.com/hsgw/tartan",
+ "maintainer": "hsgw(Takuya Urakawa)",
+ "width": 13,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_ansi": {
+ "key_count": 61,
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_ansi_split_bs": {
+ "key_count": 62,
+ "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":1}, {"label":"", "x":14, "y":0, "w":1}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "key_count": 63,
+ "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"BS", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_iso": {
+ "key_count": 62,
+ "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_iso_split_bs": {
+ "key_count": 63,
+ "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"£", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ },
+ "LAYOUT_60_iso_split_bs_rshift": {
+ "key_count": 64,
+ "layout": [{"label":"¬", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"CapsLock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
+ }
+ }
+}
diff --git a/keyboards/tartan/keymaps/default/keymap.c b/keyboards/tartan/keymaps/default/keymap.c
new file mode 100644
index 000000000..6224b4e61
--- /dev/null
+++ b/keyboards/tartan/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
+/* Copyright 2019 Takuya Urakawa (dm9records.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_ansi(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
+ ),
+ [1] = LAYOUT_60_ansi(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_INS, _______,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/tartan/keymaps/default/readme.md b/keyboards/tartan/keymaps/default/readme.md
new file mode 100644
index 000000000..c829d5310
--- /dev/null
+++ b/keyboards/tartan/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for Tartan
diff --git a/keyboards/tartan/readme.md b/keyboards/tartan/readme.md
new file mode 100644
index 000000000..83a3aebae
--- /dev/null
+++ b/keyboards/tartan/readme.md
@@ -0,0 +1,25 @@
+# Tartan # Through Hole
+
+![tartan](https://i.imgur.com/1qSrVcs.jpg)
+
+A 60% keyboard with only through hole components.
+
+* Keyboard Maintainer: [hsgw](https://github.com/hsgw)
+* Hardware Supported: ATMEGA328p with vusb [PCB](https://github.com/hsgw/tartan)
+* Hardware Availability: https://5z6p.com/products/tartan/
+
+Make example for this keyboard (after setting up your build environment):
+
+ make tartan:default
+
+Flash firmware:
+
+ // In bootloader mode
+ make tartan:default:flash
+
+## Bootloader
+use usbasploader in my repository.
+https://github.com/hsgw/USBaspLoader/tree/plaid
+
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/tartan/rules.mk b/keyboards/tartan/rules.mk
new file mode 100644
index 000000000..92658e2d0
--- /dev/null
+++ b/keyboards/tartan/rules.mk
@@ -0,0 +1,41 @@
+# MCU name
+MCU = atmega328p
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = USBasp
+
+
+# disable debug code
+OPT_DEFS = -DDEBUG_LEVEL=0
+
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+
+LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_iso 60_iso_split_bs_rshift
+LAYOUTS_HAS_RGB = no
diff --git a/keyboards/tartan/tartan.c b/keyboards/tartan/tartan.c
new file mode 100644
index 000000000..b702633cc
--- /dev/null
+++ b/keyboards/tartan/tartan.c
@@ -0,0 +1,16 @@
+/* Copyright 2019 Takuya Urakawa (dm9records.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "tartan.h"
diff --git a/keyboards/tartan/tartan.h b/keyboards/tartan/tartan.h
new file mode 100644
index 000000000..e99008889
--- /dev/null
+++ b/keyboards/tartan/tartan.h
@@ -0,0 +1,111 @@
+/* Copyright 2019 Takuya Urakawa (dm9records.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT_60_ansi( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k4b, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k46, k47 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
+ { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, KC_NO, k4b, KC_NO } \
+}
+
+#define LAYOUT_60_ansi_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k4b, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k46, k47 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
+ { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, KC_NO } \
+}
+
+#define LAYOUT_60_ansi_split_bs_rshift( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k4b, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4c, \
+ k40, k41, k42, k43, k44, k45, k46, k47 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
+ { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, k4c } \
+}
+
+#define LAYOUT_60_iso( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k4b, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k46, k47 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, KC_NO, k4b, KC_NO } \
+}
+
+#define LAYOUT_60_iso_split_bs( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k4b, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
+ k40, k41, k42, k43, k44, k45, k46, k47 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, KC_NO } \
+}
+
+#define LAYOUT_60_iso_split_bs_rshift( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k49, k4a, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k4b, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4c, \
+ k40, k41, k42, k43, k44, k45, k46, k47 \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, KC_NO, k49, k4a, k4b, k4c } \
+}
+
+#define LAYOUT_all LAYOUT_60_iso_split_bs_rshift
diff --git a/keyboards/tartan/usbconfig.h b/keyboards/tartan/usbconfig.h
new file mode 100644
index 000000000..df896cfa9
--- /dev/null
+++ b/keyboards/tartan/usbconfig.h
@@ -0,0 +1,383 @@
+/* Name: usbconfig.h
+ * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
+ * Author: Christian Starkjohann
+ * Creation Date: 2005-04-01
+ * Tabsize: 4
+ * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
+ * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
+ * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
+ */
+
+#pragma once
+
+#include "config.h"
+
+/*
+General Description:
+This file is an example configuration (with inline documentation) for the USB
+driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
+also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
+wire the lines to any other port, as long as D+ is also wired to INT0 (or any
+other hardware interrupt, as long as it is the highest level interrupt, see
+section at the end of this file).
+*/
+
+/* ---------------------------- Hardware Config ---------------------------- */
+
+#define USB_CFG_IOPORTNAME D
+/* This is the port where the USB bus is connected. When you configure it to
+ * "B", the registers PORTB, PINB and DDRB will be used.
+ */
+#define USB_CFG_DMINUS_BIT 3
+/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
+ * This may be any bit in the port.
+ */
+#define USB_CFG_DPLUS_BIT 2
+/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
+ * This may be any bit in the port. Please note that D+ must also be connected
+ * to interrupt pin INT0! [You can also use other interrupts, see section
+ * "Optional MCU Description" below, or you can connect D- to the interrupt, as
+ * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
+ * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
+ * markers every millisecond.]
+ */
+#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
+/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
+ * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
+ * require no crystal, they tolerate +/- 1% deviation from the nominal
+ * frequency. All other rates require a precision of 2000 ppm and thus a
+ * crystal!
+ * Since F_CPU should be defined to your actual clock rate anyway, you should
+ * not need to modify this setting.
+ */
+#define USB_CFG_CHECK_CRC 0
+/* Define this to 1 if you want that the driver checks integrity of incoming
+ * data packets (CRC checks). CRC checks cost quite a bit of code size and are
+ * currently only available for 18 MHz crystal clock. You must choose
+ * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
+ */
+
+/* ----------------------- Optional Hardware Config ------------------------ */
+
+/* #define USB_CFG_PULLUP_IOPORTNAME D */
+/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
+ * V+, you can connect and disconnect the device from firmware by calling
+ * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
+ * This constant defines the port on which the pullup resistor is connected.
+ */
+/* #define USB_CFG_PULLUP_BIT 4 */
+/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
+ * above) where the 1.5k pullup resistor is connected. See description
+ * above for details.
+ */
+
+/* --------------------------- Functional Range ---------------------------- */
+
+#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
+/* Define this to 1 if you want to compile a version with two endpoints: The
+ * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
+ * number).
+ */
+#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
+/* Define this to 1 if you want to compile a version with three endpoints: The
+ * default control endpoint 0, an interrupt-in endpoint 3 (or the number
+ * configured below) and a catch-all default interrupt-in endpoint as above.
+ * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
+ */
+#define USB_CFG_EP3_NUMBER 3
+/* If the so-called endpoint 3 is used, it can now be configured to any other
+ * endpoint number (except 0) with this macro. Default if undefined is 3.
+ */
+/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
+/* The above macro defines the startup condition for data toggling on the
+ * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
+ * Since the token is toggled BEFORE sending any data, the first packet is
+ * sent with the oposite value of this configuration!
+ */
+#define USB_CFG_IMPLEMENT_HALT 0
+/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
+ * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
+ * it is required by the standard. We have made it a config option because it
+ * bloats the code considerably.
+ */
+#define USB_CFG_SUPPRESS_INTR_CODE 0
+/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
+ * want to send any data over them. If this macro is defined to 1, functions
+ * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
+ * you need the interrupt-in endpoints in order to comply to an interface
+ * (e.g. HID), but never want to send any data. This option saves a couple
+ * of bytes in flash memory and the transmit buffers in RAM.
+ */
+#define USB_CFG_IS_SELF_POWERED 0
+/* Define this to 1 if the device has its own power supply. Set it to 0 if the
+ * device is powered from the USB bus.
+ */
+#define USB_CFG_IMPLEMENT_FN_WRITE 1
+/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
+ * transfers. Set it to 0 if you don't need it and want to save a couple of
+ * bytes.
+ */
+#define USB_CFG_IMPLEMENT_FN_READ 0
+/* Set this to 1 if you need to send control replies which are generated
+ * "on the fly" when usbFunctionRead() is called. If you only want to send
+ * data from a static buffer, set it to 0 and return the data from
+ * usbFunctionSetup(). This saves a couple of bytes.
+ */
+#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
+/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
+ * You must implement the function usbFunctionWriteOut() which receives all
+ * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
+ * can be found in 'usbRxToken'.
+ */
+#define USB_CFG_HAVE_FLOWCONTROL 0
+/* Define this to 1 if you want flowcontrol over USB data. See the definition
+ * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
+ * usbdrv.h.
+ */
+#define USB_CFG_DRIVER_FLASH_PAGE 0
+/* If the device has more than 64 kBytes of flash, define this to the 64 k page
+ * where the driver's constants (descriptors) are located. Or in other words:
+ * Define this to 1 for boot loaders on the ATMega128.
+ */
+#define USB_CFG_LONG_TRANSFERS 0
+/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
+ * in a single control-in or control-out transfer. Note that the capability
+ * for long transfers increases the driver size.
+ */
+/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
+/* This macro is a hook if you want to do unconventional things. If it is
+ * defined, it's inserted at the beginning of received message processing.
+ * If you eat the received message and don't want default processing to
+ * proceed, do a return after doing your things. One possible application
+ * (besides debugging) is to flash a status LED on each packet.
+ */
+/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
+/* This macro is a hook if you need to know when an USB RESET occurs. It has
+ * one parameter which distinguishes between the start of RESET state and its
+ * end.
+ */
+/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
+/* This macro (if defined) is executed when a USB SET_ADDRESS request was
+ * received.
+ */
+#define USB_COUNT_SOF 0
+/* define this macro to 1 if you need the global variable "usbSofCount" which
+ * counts SOF packets. This feature requires that the hardware interrupt is
+ * connected to D- instead of D+.
+ */
+/* #ifdef __ASSEMBLER__
+ * macro myAssemblerMacro
+ * in YL, TCNT0
+ * sts timer0Snapshot, YL
+ * endm
+ * #endif
+ * #define USB_SOF_HOOK myAssemblerMacro
+ * This macro (if defined) is executed in the assembler module when a
+ * Start Of Frame condition is detected. It is recommended to define it to
+ * the name of an assembler macro which is defined here as well so that more
+ * than one assembler instruction can be used. The macro may use the register
+ * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
+ * immediately after an SOF pulse may be lost and must be retried by the host.
+ * What can you do with this hook? Since the SOF signal occurs exactly every
+ * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
+ * designs running on the internal RC oscillator.
+ * Please note that Start Of Frame detection works only if D- is wired to the
+ * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
+ */
+#define USB_CFG_CHECK_DATA_TOGGLING 0
+/* define this macro to 1 if you want to filter out duplicate data packets
+ * sent by the host. Duplicates occur only as a consequence of communication
+ * errors, when the host does not receive an ACK. Please note that you need to
+ * implement the filtering yourself in usbFunctionWriteOut() and
+ * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
+ * for each control- and out-endpoint to check for duplicate packets.
+ */
+#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
+/* define this macro to 1 if you want the function usbMeasureFrameLength()
+ * compiled in. This function can be used to calibrate the AVR's RC oscillator.
+ */
+#define USB_USE_FAST_CRC 0
+/* The assembler module has two implementations for the CRC algorithm. One is
+ * faster, the other is smaller. This CRC routine is only used for transmitted
+ * messages where timing is not critical. The faster routine needs 31 cycles
+ * per byte while the smaller one needs 61 to 69 cycles. The faster routine
+ * may be worth the 32 bytes bigger code size if you transmit lots of data and
+ * run the AVR close to its limit.
+ */
+
+/* -------------------------- Device Description --------------------------- */
+
+#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF)
+/* USB vendor ID for the device, low byte first. If you have registered your
+ * own Vendor ID, define it here. Otherwise you may use one of obdev's free
+ * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
+ * *** IMPORTANT NOTE ***
+ * This template uses obdev's shared VID/PID pair for Vendor Class devices
+ * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
+ * the implications!
+ */
+#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF)
+/* This is the ID of the product, low byte first. It is interpreted in the
+ * scope of the vendor ID. If you have registered your own VID with usb.org
+ * or if you have licensed a PID from somebody else, define it here. Otherwise
+ * you may use one of obdev's free shared VID/PID pairs. See the file
+ * USB-IDs-for-free.txt for details!
+ * *** IMPORTANT NOTE ***
+ * This template uses obdev's shared VID/PID pair for Vendor Class devices
+ * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
+ * the implications!
+ */
+#define USB_CFG_DEVICE_VERSION (DEVICE_VER & 0xFF), ((DEVICE_VER >> 8) & 0xFF)
+/* Version number of the device: Minor number first, then major number.
+ */
+#define USB_CFG_VENDOR_NAME 'd','m','9','r','e','c','o','r','d','s'
+#define USB_CFG_VENDOR_NAME_LEN 10
+/* These two values define the vendor name returned by the USB device. The name
+ * must be given as a list of characters under single quotes. The characters
+ * are interpreted as Unicode (UTF-16) entities.
+ * If you don't want a vendor name string, undefine these macros.
+ * ALWAYS define a vendor name containing your Internet domain name if you use
+ * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for
+ * details.
+ */
+#define USB_CFG_DEVICE_NAME 'T', 'a', 'r', 't', 'a', 'n'
+#define USB_CFG_DEVICE_NAME_LEN 6
+/* Same as above for the device name. If you don't want a device name, undefine
+ * the macros. See the file USB-IDs-for-free.txt before you assign a name if
+ * you use a shared VID/PID.
+ */
+#define USB_CFG_SERIAL_NUMBER 'd','m','9','r','e','c','o','r','d','s','.','c','o','m',':','t','1'
+#define USB_CFG_SERIAL_NUMBER_LEN 17
+/* Same as above for the serial number. If you don't want a serial number,
+ * undefine the macros.
+ * It may be useful to provide the serial number through other means than at
+ * compile time. See the section about descriptor properties below for how
+ * to fine tune control over USB descriptors such as the string descriptor
+ * for the serial number.
+ */
+#define USB_CFG_DEVICE_CLASS 0
+#define USB_CFG_DEVICE_SUBCLASS 0
+/* See USB specification if you want to conform to an existing device class.
+ * Class 0xff is "vendor specific".
+ */
+#define USB_CFG_INTERFACE_CLASS 3 /* HID */
+#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
+#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
+/* See USB specification if you want to conform to an existing device class or
+ * protocol. The following classes must be set at interface level:
+ * HID class is 3, no subclass and protocol required (but may be useful!)
+ * CDC class is 2, use subclass 2 and protocol 1 for ACM
+ */
+#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
+/* Define this to the length of the HID report descriptor, if you implement
+ * an HID device. Otherwise don't define it or define it to 0.
+ * If you use this define, you must add a PROGMEM character array named
+ * "usbHidReportDescriptor" to your code which contains the report descriptor.
+ * Don't forget to keep the array and this define in sync!
+ */
+
+/* #define USB_PUBLIC static */
+/* Use the define above if you #include usbdrv.c instead of linking against it.
+ * This technique saves a couple of bytes in flash memory.
+ */
+
+/* ------------------- Fine Control over USB Descriptors ------------------- */
+/* If you don't want to use the driver's default USB descriptors, you can
+ * provide our own. These can be provided as (1) fixed length static data in
+ * flash memory, (2) fixed length static data in RAM or (3) dynamically at
+ * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
+ * information about this function.
+ * Descriptor handling is configured through the descriptor's properties. If
+ * no properties are defined or if they are 0, the default descriptor is used.
+ * Possible properties are:
+ * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
+ * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
+ * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
+ * you want RAM pointers.
+ * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
+ * in static memory is in RAM, not in flash memory.
+ * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
+ * the driver must know the descriptor's length. The descriptor itself is
+ * found at the address of a well known identifier (see below).
+ * List of static descriptor names (must be declared PROGMEM if in flash):
+ * char usbDescriptorDevice[];
+ * char usbDescriptorConfiguration[];
+ * char usbDescriptorHidReport[];
+ * char usbDescriptorString0[];
+ * int usbDescriptorStringVendor[];
+ * int usbDescriptorStringDevice[];
+ * int usbDescriptorStringSerialNumber[];
+ * Other descriptors can't be provided statically, they must be provided
+ * dynamically at runtime.
+ *
+ * Descriptor properties are or-ed or added together, e.g.:
+ * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
+ *
+ * The following descriptors are defined:
+ * USB_CFG_DESCR_PROPS_DEVICE
+ * USB_CFG_DESCR_PROPS_CONFIGURATION
+ * USB_CFG_DESCR_PROPS_STRINGS
+ * USB_CFG_DESCR_PROPS_STRING_0
+ * USB_CFG_DESCR_PROPS_STRING_VENDOR
+ * USB_CFG_DESCR_PROPS_STRING_PRODUCT
+ * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
+ * USB_CFG_DESCR_PROPS_HID
+ * USB_CFG_DESCR_PROPS_HID_REPORT
+ * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
+ *
+ * Note about string descriptors: String descriptors are not just strings, they
+ * are Unicode strings prefixed with a 2 byte header. Example:
+ * int serialNumberDescriptor[] = {
+ * USB_STRING_DESCRIPTOR_HEADER(6),
+ * 'S', 'e', 'r', 'i', 'a', 'l'
+ * };
+ */
+
+#define USB_CFG_DESCR_PROPS_DEVICE 0
+#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0
+#define USB_CFG_DESCR_PROPS_STRINGS 0
+#define USB_CFG_DESCR_PROPS_STRING_0 0
+#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0
+#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0
+#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0
+#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_HID 0
+#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
+//#define USB_CFG_DESCR_PROPS_HID_REPORT 0
+#define USB_CFG_DESCR_PROPS_UNKNOWN 0
+
+#define usbMsgPtr_t unsigned short
+/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
+ * a scalar type here because gcc generates slightly shorter code for scalar
+ * arithmetics than for pointer arithmetics. Remove this define for backward
+ * type compatibility or define it to an 8 bit type if you use data in RAM only
+ * and all RAM is below 256 bytes (tiny memory model in IAR CC).
+ */
+
+/* ----------------------- Optional MCU Description ------------------------ */
+
+/* The following configurations have working defaults in usbdrv.h. You
+ * usually don't need to set them explicitly. Only if you want to run
+ * the driver on a device which is not yet supported or with a compiler
+ * which is not fully supported (such as IAR C) or if you use a differnt
+ * interrupt than INT0, you may have to define some of these.
+ */
+/* #define USB_INTR_CFG MCUCR */
+/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
+/* #define USB_INTR_CFG_CLR 0 */
+/* #define USB_INTR_ENABLE GIMSK */
+/* #define USB_INTR_ENABLE_BIT INT0 */
+/* #define USB_INTR_PENDING GIFR */
+/* #define USB_INTR_PENDING_BIT INTF0 */
+/* #define USB_INTR_VECTOR INT0_vect */
+
+/* Set INT1 for D- falling edge to count SOF */
+/* #define USB_INTR_CFG EICRA */
+// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
+// /* #define USB_INTR_CFG_CLR 0 */
+// /* #define USB_INTR_ENABLE EIMSK */
+// #define USB_INTR_ENABLE_BIT INT1
+// /* #define USB_INTR_PENDING EIFR */
+// #define USB_INTR_PENDING_BIT INTF1
+// #define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/telophase/rules.mk b/keyboards/telophase/rules.mk
index 2c8df3295..240a89e85 100644
--- a/keyboards/telophase/rules.mk
+++ b/keyboards/telophase/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = caterina
# Build Options
# comment out to disable the options.
#
-#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/tetris/rules.mk b/keyboards/tetris/rules.mk
index 15fcf5cf6..ca5a11333 100755
--- a/keyboards/tetris/rules.mk
+++ b/keyboards/tetris/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = qmk-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/tgr/alice/alice.c b/keyboards/tgr/alice/alice.c
index 39aed2cf5..a4a5c787c 100644
--- a/keyboards/tgr/alice/alice.c
+++ b/keyboards/tgr/alice/alice.c
@@ -16,3 +16,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "alice.h"
+
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
+ setPinOutput(D6);
+}
+
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
+ }
+ return true;
+}
diff --git a/keyboards/tgr/alice/config.h b/keyboards/tgr/alice/config.h
index 4c36896b7..1f1b32d4e 100644
--- a/keyboards/tgr/alice/config.h
+++ b/keyboards/tgr/alice/config.h
@@ -33,6 +33,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 }
#define DIODE_DIRECTION COL2ROW
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#define RGBLED_NUM 18
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/tgr/alice/rules.mk b/keyboards/tgr/alice/rules.mk
index 530e8ea32..a8fea7efa 100644
--- a/keyboards/tgr/alice/rules.mk
+++ b/keyboards/tgr/alice/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/tgr/jane/config.h b/keyboards/tgr/jane/config.h
index dd119d3b0..5fb9a9056 100644
--- a/keyboards/tgr/jane/config.h
+++ b/keyboards/tgr/jane/config.h
@@ -36,4 +36,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
diff --git a/keyboards/tgr/jane/jane.c b/keyboards/tgr/jane/jane.c
index 4ab0b3007..fabdc0e90 100644
--- a/keyboards/tgr/jane/jane.c
+++ b/keyboards/tgr/jane/jane.c
@@ -16,32 +16,20 @@
#include "jane.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
setPinOutput(D1);
- setPinOutput(D4);
setPinOutput(D6);
-
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
}
+ return true;
}
diff --git a/keyboards/thevankeyboards/bananasplit/rules.mk b/keyboards/thevankeyboards/bananasplit/rules.mk
index 19f0e81f5..4530a87f6 100644
--- a/keyboards/thevankeyboards/bananasplit/rules.mk
+++ b/keyboards/thevankeyboards/bananasplit/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
diff --git a/keyboards/thevankeyboards/caravan/rules.mk b/keyboards/thevankeyboards/caravan/rules.mk
index f21c31f6f..4bdaec4db 100644
--- a/keyboards/thevankeyboards/caravan/rules.mk
+++ b/keyboards/thevankeyboards/caravan/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
diff --git a/keyboards/thevankeyboards/minivan/rules.mk b/keyboards/thevankeyboards/minivan/rules.mk
index 3a2b8ae58..d9a34f38b 100644
--- a/keyboards/thevankeyboards/minivan/rules.mk
+++ b/keyboards/thevankeyboards/minivan/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/thevankeyboards/roadkit/rules.mk b/keyboards/thevankeyboards/roadkit/rules.mk
index 79cbec757..e8ab28cb5 100644
--- a/keyboards/thevankeyboards/roadkit/rules.mk
+++ b/keyboards/thevankeyboards/roadkit/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/tkc1800/rules.mk b/keyboards/tkc1800/rules.mk
index 21e3697dc..60140160c 100644
--- a/keyboards/tkc1800/rules.mk
+++ b/keyboards/tkc1800/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/tmo50/config.h b/keyboards/tmo50/config.h
index ee7f0e34a..cebd08bce 100644
--- a/keyboards/tmo50/config.h
+++ b/keyboards/tmo50/config.h
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x0000
+#define VENDOR_ID 0xFBFB
+#define PRODUCT_ID 0x0050
#define DEVICE_VER 0x0001
#define MANUFACTURER funderburker
#define PRODUCT TMO50
diff --git a/keyboards/tmo50/keymaps/via/keymap.c b/keyboards/tmo50/keymaps/via/keymap.c
new file mode 100644
index 000000000..a1d896b61
--- /dev/null
+++ b/keyboards/tmo50/keymaps/via/keymap.c
@@ -0,0 +1,52 @@
+/* Copyright 2019 funderburker
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define LT1_SPC LT(1, KC_SPC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // Default layer
+ [0] = LAYOUT_all(
+ KC_TRNS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_TRNS, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_TRNS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(2),
+ KC_TRNS, KC_LALT, KC_LGUI, LT1_SPC, LT1_SPC, KC_RALT, MO(3)
+ ),
+
+ // Fn1 layer
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
+ KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ // Fn2 layer
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL,
+ KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ // Fn3 layer
+ [3] = LAYOUT_all(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_CAPS, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, BL_TOGG, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, BL_STEP, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
diff --git a/keyboards/tmo50/keymaps/via/readme.md b/keyboards/tmo50/keymaps/via/readme.md
new file mode 100644
index 000000000..27cb965eb
--- /dev/null
+++ b/keyboards/tmo50/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA default layout
diff --git a/keyboards/tmo50/keymaps/via/rules.mk b/keyboards/tmo50/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/tmo50/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/tmo50/rules.mk b/keyboards/tmo50/rules.mk
index 84abd20e6..954dd2246 100644
--- a/keyboards/tmo50/rules.mk
+++ b/keyboards/tmo50/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/toad/rules.mk b/keyboards/toad/rules.mk
index df45fa5df..731b405c0 100644
--- a/keyboards/toad/rules.mk
+++ b/keyboards/toad/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= no # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/tokyo60/rules.mk b/keyboards/tokyo60/rules.mk
index 644e6a541..87714ec6c 100644
--- a/keyboards/tokyo60/rules.mk
+++ b/keyboards/tokyo60/rules.mk
@@ -14,9 +14,9 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
@@ -24,7 +24,7 @@ MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
-CONSOLE_ENABLE = no # Console for debug(+400)
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/touchpad/rules.mk b/keyboards/touchpad/rules.mk
index 21642c3d2..14aac23d4 100644
--- a/keyboards/touchpad/rules.mk
+++ b/keyboards/touchpad/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/treadstone32/config.h b/keyboards/treadstone32/config.h
index a7f991453..b9cd94d4b 100644
--- a/keyboards/treadstone32/config.h
+++ b/keyboards/treadstone32/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F4, F5, F6, F7, C7 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
diff --git a/keyboards/treadstone32/rules.mk b/keyboards/treadstone32/rules.mk
index dbc46b403..d779e7002 100644
--- a/keyboards/treadstone32/rules.mk
+++ b/keyboards/treadstone32/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/treadstone48/rev1/rules.mk b/keyboards/treadstone48/rev1/rules.mk
new file mode 100644
index 000000000..fff00a1b5
--- /dev/null
+++ b/keyboards/treadstone48/rev1/rules.mk
@@ -0,0 +1,3 @@
+# Revision Specific Build Options
+# change yes to no to disable
+#
diff --git a/keyboards/treasure/type9/rules.mk b/keyboards/treasure/type9/rules.mk
index 370c683a5..d4b1f6f99 100644
--- a/keyboards/treasure/type9/rules.mk
+++ b/keyboards/treasure/type9/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/uk78/rules.mk b/keyboards/uk78/rules.mk
index ddd799c08..40fc506aa 100644
--- a/keyboards/uk78/rules.mk
+++ b/keyboards/uk78/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= yes # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/unikorn/config.h b/keyboards/unikorn/config.h
index 1c4f3431a..e6bdbe7f2 100644
--- a/keyboards/unikorn/config.h
+++ b/keyboards/unikorn/config.h
@@ -36,7 +36,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
-#define BACKLIGHT_LEVELS 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
+
#ifdef RGBLIGHT_ENABLE
#define RGBLED_NUM 17
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/unikorn/unikorn.c b/keyboards/unikorn/unikorn.c
index 70bc5a988..c2c85eb98 100644
--- a/keyboards/unikorn/unikorn.c
+++ b/keyboards/unikorn/unikorn.c
@@ -16,32 +16,18 @@
#include "unikorn.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
- setPinOutput(D0);
- setPinOutput(D1);
- setPinOutput(D4);
- setPinOutput(D6);
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
}
+ return true;
}
diff --git a/keyboards/ut472/rules.mk b/keyboards/ut472/rules.mk
index 1dd477652..ef114faa1 100644
--- a/keyboards/ut472/rules.mk
+++ b/keyboards/ut472/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/uzu42/rev1/config.h b/keyboards/uzu42/rev1/config.h
index 8f86d22bf..13b278970 100644
--- a/keyboards/uzu42/rev1/config.h
+++ b/keyboards/uzu42/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/uzu42/rules.mk b/keyboards/uzu42/rules.mk
index aea23f3cd..600e0c94c 100644
--- a/keyboards/uzu42/rules.mk
+++ b/keyboards/uzu42/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/v60_type_r/rules.mk b/keyboards/v60_type_r/rules.mk
index 37acd03d1..94205df11 100644
--- a/keyboards/v60_type_r/rules.mk
+++ b/keyboards/v60_type_r/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -26,7 +26,7 @@ NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable the RGB Underglow
RGBLIGHT_CUSTOM_DRIVER = yes
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/vinta/chconf.h b/keyboards/vinta/chconf.h
index b836a3b99..e811705ba 100644
--- a/keyboards/vinta/chconf.h
+++ b/keyboards/vinta/chconf.h
@@ -102,10 +102,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
@@ -518,4 +514,4 @@
#endif /* CHCONF_H */
-/** @} */ \ No newline at end of file
+/** @} */
diff --git a/keyboards/vinta/rules.mk b/keyboards/vinta/rules.mk
index 6d9fc0da1..736509689 100644
--- a/keyboards/vinta/rules.mk
+++ b/keyboards/vinta/rules.mk
@@ -13,4 +13,8 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
-LAYOUTS = 65_ansi_blocker \ No newline at end of file
+LAYOUTS = 65_ansi_blocker
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/vision_division/rules.mk b/keyboards/vision_division/rules.mk
index 960210046..5d9d515f7 100644
--- a/keyboards/vision_division/rules.mk
+++ b/keyboards/vision_division/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/vitamins_included/rev1/config.h b/keyboards/vitamins_included/rev1/config.h
index c4881db01..88b43ffc3 100644
--- a/keyboards/vitamins_included/rev1/config.h
+++ b/keyboards/vitamins_included/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F5, F6, C7, F7 }
#define MATRIX_COL_PINS { F1, F4, E2, B6, D7, D6}
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/vitamins_included/rev2/config.h b/keyboards/vitamins_included/rev2/config.h
index 0aa0e7063..d0f9e6400 100644
--- a/keyboards/vitamins_included/rev2/config.h
+++ b/keyboards/vitamins_included/rev2/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { F5, F6, C7, F7 }
#define MATRIX_COL_PINS { F1, F4, E2, B6, D7, D6}
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/vitamins_included/rules.mk b/keyboards/vitamins_included/rules.mk
index d81b4a914..0d615b41f 100644
--- a/keyboards/vitamins_included/rules.mk
+++ b/keyboards/vitamins_included/rules.mk
@@ -8,13 +8,13 @@ MCU = atmega32u4
AUDIO_ENABLE = yes # Audio output on port C6
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no # Console for debug(+400)
+CONSOLE_ENABLE = no # Console for debug
DEBUG_ENABLE = no # Enable more debug info
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+EXTRAKEY_ENABLE = yes # Audio control and System control
MIDI_ENABLE = no # MIDI controls
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+MOUSEKEY_ENABLE = no # Mouse keys
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/vn66/rules.mk b/keyboards/vn66/rules.mk
index 37005c127..6575b3fd6 100644
--- a/keyboards/vn66/rules.mk
+++ b/keyboards/vn66/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,10 +25,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes
diff --git a/keyboards/waldo/rules.mk b/keyboards/waldo/rules.mk
index c174a9eb9..db9db239d 100644
--- a/keyboards/waldo/rules.mk
+++ b/keyboards/waldo/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/westfoxtrot/aanzee/rules.mk b/keyboards/westfoxtrot/aanzee/rules.mk
index 5032b0d29..b1f66767d 100644
--- a/keyboards/westfoxtrot/aanzee/rules.mk
+++ b/keyboards/westfoxtrot/aanzee/rules.mk
@@ -14,14 +14,14 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
+RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
diff --git a/keyboards/westfoxtrot/cyclops/rules.mk b/keyboards/westfoxtrot/cyclops/rules.mk
index 04b2bc82f..03b28cbef 100644
--- a/keyboards/westfoxtrot/cyclops/rules.mk
+++ b/keyboards/westfoxtrot/cyclops/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/westfoxtrot/cypher/cypher.c b/keyboards/westfoxtrot/cypher/cypher.c
deleted file mode 100644
index d2407525e..000000000
--- a/keyboards/westfoxtrot/cypher/cypher.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2019 westfoxtrot
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "cypher.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- matrix_init_user();
-}
-
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
-
- matrix_scan_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_record_user(keycode, record);
-}
-
-void led_set_kb(uint8_t usb_led) {
- if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
- writePinHigh(F4);
- } else {
- writePinLow(F4);
- }
- if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
- writePinHigh(F1);
- } else {
- writePinLow(F1);
- }
- if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
- writePinHigh(F5);
- } else {
- writePinLow(F5);
- }
- led_set_user(usb_led);
-}
diff --git a/keyboards/westfoxtrot/cypher/config.h b/keyboards/westfoxtrot/cypher/rev1/config.h
index 137883703..33bdaa204 100644
--- a/keyboards/westfoxtrot/cypher/config.h
+++ b/keyboards/westfoxtrot/cypher/rev1/config.h
@@ -45,7 +45,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, D7, E6, F0 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN B5
diff --git a/keyboards/westfoxtrot/cypher/info.json b/keyboards/westfoxtrot/cypher/rev1/info.json
index ddf4e9d5a..ddf4e9d5a 100644
--- a/keyboards/westfoxtrot/cypher/info.json
+++ b/keyboards/westfoxtrot/cypher/rev1/info.json
diff --git a/keyboards/westfoxtrot/cypher/keymaps/default/keymap.c b/keyboards/westfoxtrot/cypher/rev1/keymaps/default/keymap.c
index 1906f9396..54eae8e38 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/default/keymap.c
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/default/keymap.c
@@ -21,29 +21,17 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MA] = LAYOUT_ansi( /* Base */
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,\
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,\
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,\
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTRL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,MO(_F1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT, KC_BSPC),
[_F1] = LAYOUT_ansi( /* Function Layer */
- RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,\
- _______, BL_TOGG,BL_STEP,BL_ON,BL_OFF,BL_INC,BL_DEC,BL_BRTG,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______,\
- _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______,\
- _______, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,\
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
+ _______, BL_TOGG,BL_STEP,BL_ON,BL_OFF,BL_INC,BL_DEC,BL_BRTG,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______, _______, _______),
};
-
-void matrix_init_user(void) {
- //user initialization
-}
-
-void matrix_scan_user(void) {
- //user matrix
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/keyboards/westfoxtrot/cypher/keymaps/default/readme.md b/keyboards/westfoxtrot/cypher/rev1/keymaps/default/readme.md
index 05c370026..05c370026 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/default/readme.md
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/default/readme.md
diff --git a/keyboards/westfoxtrot/cypher/keymaps/default-iso/keymap.c b/keyboards/westfoxtrot/cypher/rev1/keymaps/default_iso/keymap.c
index 2a08ae853..df93c5399 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/default-iso/keymap.c
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/default_iso/keymap.c
@@ -21,29 +21,17 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MA] = LAYOUT_iso( /* Base */
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PPLS,\
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,\
- KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,\
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTRL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI,MO(_F1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT, KC_BSPC),
[_F1] = LAYOUT_iso( /* Function Layer */
- RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,\
- _______, BL_TOGG,BL_STEP,BL_ON,BL_OFF,BL_INC,BL_DEC,BL_BRTG,_______,_______,_______,_______, _______, _______, _______, _______, _______,\
- _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______, _______, _______, _______,\
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,\
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
+ _______, BL_TOGG,BL_STEP,BL_ON,BL_OFF,BL_INC,BL_DEC,BL_BRTG,_______,_______,_______,_______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______, _______, _______, _______,
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______,_______, _______, _______,_______,_______, _______,_______,_______, _______, _______, _______),
};
-
-void matrix_init_user(void) {
- //user initialization
-}
-
-void matrix_scan_user(void) {
- //user matrix
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/keyboards/westfoxtrot/cypher/keymaps/default-iso/readme.md b/keyboards/westfoxtrot/cypher/rev1/keymaps/default_iso/readme.md
index 81a4a677f..81a4a677f 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/default-iso/readme.md
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/default_iso/readme.md
diff --git a/keyboards/westfoxtrot/cypher/keymaps/kwer/config.h b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/config.h
index 947e340c3..947e340c3 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/kwer/config.h
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/config.h
diff --git a/keyboards/westfoxtrot/cypher/keymaps/kwer/keymap.c b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/keymap.c
index 2d7bf2a5e..2d7bf2a5e 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/kwer/keymap.c
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/keymap.c
diff --git a/keyboards/westfoxtrot/cypher/keymaps/kwer/readme.md b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/readme.md
index c1a132e71..c1a132e71 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/kwer/readme.md
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/readme.md
diff --git a/keyboards/westfoxtrot/cypher/keymaps/kwer/rules.mk b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/rules.mk
index df87c59a2..df87c59a2 100644
--- a/keyboards/westfoxtrot/cypher/keymaps/kwer/rules.mk
+++ b/keyboards/westfoxtrot/cypher/rev1/keymaps/kwer/rules.mk
diff --git a/keyboards/westfoxtrot/cypher/readme.md b/keyboards/westfoxtrot/cypher/rev1/readme.md
index 6db417fae..5e57fd8a4 100644
--- a/keyboards/westfoxtrot/cypher/readme.md
+++ b/keyboards/westfoxtrot/cypher/rev1/readme.md
@@ -1,15 +1,13 @@
# cypher
-![cypher](https://github.com/westfoxtrot/Cypher_PCB)
-
PCB for the cypher keyboard
-Keyboard Maintainer: [westfoxtrot](https://github.com/westfoxtrot)
-Hardware Supported: Cypher PCB
-Hardware Availability: with group buy + Files released here (https://github.com/westfoxtrot/Cypher_PCB)
+* Keyboard Maintainer: [westfoxtrot](https://github.com/westfoxtrot)
+* Hardware Supported: Cypher PCB revisions 1-4 (Rev # is printed on PCB)
+* Hardware Availability: with group buy + [Files released here](https://github.com/westfoxtrot/Cypher_PCB)
Make example for this keyboard (after setting up your build environment):
- make westfoxtrot/cypher:default
+ make westfoxtrot/cypher/rev1:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/westfoxtrot/cypher/rev1/rev1.c b/keyboards/westfoxtrot/cypher/rev1/rev1.c
new file mode 100644
index 000000000..78b4b6b46
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev1/rev1.c
@@ -0,0 +1,31 @@
+/* Copyright 2019 westfoxtrot
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "rev1.h"
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
+ // writePin sets the pin high for 1 and low for 0.
+ // In this example the pins are inverted, setting
+ // it low/0 turns it on, and high/1 turns the LED off.
+ // This behavior depends on whether the LED is between the pin
+ // and VCC or the pin and GND.
+ writePin(F4, led_state.num_lock);
+ writePin(F1, led_state.caps_lock);
+ writePin(F5, led_state.scroll_lock);
+ }
+ return res;
+}
diff --git a/keyboards/westfoxtrot/cypher/cypher.h b/keyboards/westfoxtrot/cypher/rev1/rev1.h
index fdff12e9b..fdff12e9b 100644
--- a/keyboards/westfoxtrot/cypher/cypher.h
+++ b/keyboards/westfoxtrot/cypher/rev1/rev1.h
diff --git a/keyboards/westfoxtrot/cypher/rules.mk b/keyboards/westfoxtrot/cypher/rev1/rules.mk
index 4703282ff..ccf5ec1ea 100644
--- a/keyboards/westfoxtrot/cypher/rules.mk
+++ b/keyboards/westfoxtrot/cypher/rev1/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/westfoxtrot/cypher/rev5/config.h b/keyboards/westfoxtrot/cypher/rev5/config.h
new file mode 100644
index 000000000..111771ae8
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/config.h
@@ -0,0 +1,81 @@
+/*
+Copyright 2019 westfoxtrot
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x21FF
+#define PRODUCT_ID 0xAA97
+#define DEVICE_VER 0x0002
+#define MANUFACTURER westfoxtrot
+#define PRODUCT cypher
+#define DESCRIPTION Cypher
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { B0, F1, F5, F6, F7, D1, F4, D4, C6, C7 }
+#define MATRIX_COL_PINS { D6, D7, B4, B5, B6, B7, B3, B2, B1, F0 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 5
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+#define GRAVE_ESC_CTRL_OVERRIDE
+
+
+
+
+#define BACKLIGHT_PIN D0
+
+#define RGB_DI_PIN E6
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 10
+ #define RGBLIGHT_HUE_STEP 12
+ #define RGBLIGHT_SAT_STEP 25
+ #define RGBLIGHT_VAL_STEP 12
+ #define RGBLIGHT_LIMIT_VAL 255
+ #define RGBLIGHT_SLEEP
+ #define RGBLIGHT_ANIMATIONS
+#endif
diff --git a/keyboards/westfoxtrot/cypher/rev5/info.json b/keyboards/westfoxtrot/cypher/rev5/info.json
new file mode 100644
index 000000000..50f51651c
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/info.json
@@ -0,0 +1,110 @@
+{
+ "keyboard_name": "Cypher",
+ "width": 19.5,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"~","x":0,"y":0},
+ {"label":"!","x":1,"y":0},
+ {"label":"@","x":2,"y":0},
+ {"label":"#","x":3,"y":0},
+ {"label":"$","x":4,"y":0},
+ {"label":"%","x":5,"y":0},
+ {"label":"^","x":6,"y":0},
+ {"label":"&","x":7,"y":0},
+ {"label":"*","x":8,"y":0},
+ {"label":"(","x":9,"y":0},
+ {"label":")","x":10,"y":0},
+ {"label":"_","x":11,"y":0},
+ {"label":"+","x":12,"y":0},
+ {"label":"Backspace","x":13,"y":0},
+ {"label":"~","x":14,"y":0},
+
+ {"label":"Num Lock","x":15.5,"y":0},
+ {"label":"/","x":16.5,"y":0},
+ {"label":"*","x":17.5,"y":0},
+ {"label":"-","x":18.5,"y":0},
+
+ {"label":"Tab","x":0,"y":1,"w":1.5},
+ {"label":"Q","x":1.5,"y":1},
+ {"label":"W","x":2.5,"y":1},
+ {"label":"E","x":3.5,"y":1},
+ {"label":"R","x":4.5,"y":1},
+ {"label":"T","x":5.5,"y":1},
+ {"label":"Y","x":6.5,"y":1},
+ {"label":"U","x":7.5,"y":1},
+ {"label":"I","x":8.5,"y":1},
+ {"label":"O","x":9.5,"y":1},
+ {"label":"P","x":10.5,"y":1},
+ {"label":"{","x":11.5,"y":1},
+ {"label":"}","x":12.5,"y":1},
+ {"label":"|","x":13.5,"y":1,"w":1.5},
+
+ {"label":"7","x":15.5,"y":1},
+ {"label":"8","x":16.5,"y":1},
+ {"label":"9","x":17.5,"y":1},
+ {"label":"+","x":18.5,"y":1},
+
+ {"label":"Caps Lock","x":0,"y":2,"w":1.75},
+ {"label":"A","x":1.75,"y":2},
+ {"label":"S","x":2.75,"y":2},
+ {"label":"D","x":3.75,"y":2},
+ {"label":"F","x":4.75,"y":2},
+ {"label":"G","x":5.75,"y":2},
+ {"label":"H","x":6.75,"y":2},
+ {"label":"J","x":7.75,"y":2},
+ {"label":"K","x":8.75,"y":2},
+ {"label":"L","x":9.75,"y":2},
+ {"label":":","x":10.75,"y":2},
+ {"label":"\"","x":11.75,"y":2},
+ {"label":"NUHS","x":12.75,"y":2},
+ {"label":"Enter","x":13.75,"y":2,"w":1.25},
+
+ {"label":"4","x":15.5,"y":2},
+ {"label":"5","x":16.5,"y":2},
+ {"label":"6","x":17.5,"y":2},
+ {"label":"=","x":18.5,"y":2},
+
+ {"label":"Shift","x":0,"y":3,"w":1.25},
+ {"label":"Shift","x":1.25,"y":3},
+ {"label":"Z","x":2.25,"y":3},
+ {"label":"X","x":3.25,"y":3},
+ {"label":"C","x":4.25,"y":3},
+ {"label":"V","x":5.25,"y":3},
+ {"label":"B","x":6.25,"y":3},
+ {"label":"N","x":7.25,"y":3},
+ {"label":"M","x":8.25,"y":3},
+ {"label":"<","x":9.25,"y":3},
+ {"label":">","x":10.25,"y":3},
+ {"label":"?","x":11.25,"y":3},
+ {"label":"Shift","x":12.25,"y":3,"w":1.75},
+
+ {"label":"Up","x":14.25,"y":3.25},
+
+ {"label":"1","x":15.5,"y":3},
+ {"label":"2","x":16.5,"y":3},
+ {"label":"3","x":17.5,"y":3},
+ {"label":"Enter","x":18.5,"y":3},
+
+ {"label":"Ctrl","x":0,"y":4,"w":1.25},
+ {"label":"Win","x":1.25,"y":4},
+ {"label":"Alt","x":2.25,"y":4,"w":1.25},
+ {"label":"Space","x":3.5,"y":4,"w":1.5},
+ {"label":"Space","x":5,"y":4,"w":3},
+ {"label":"Space","x":8,"y":4,"w":1.5},
+ {"label":"Alt","x":9.5,"y":4,"w":1.25},
+ {"label":"Win","x":10.75,"y":4},
+ {"label":"Ctrl","x":11.75,"y":4,"w":1.25},
+
+ {"label":"Left","x":13.25,"y":4.25},
+ {"label":"Down","x":14.25,"y":4.25},
+ {"label":"Right","x":15.25,"y":4.25},
+
+ {"label":"0","x":16.5,"y":4},
+ {"label":".","x":17.5,"y":4},
+ {"label":"Backspace","x":18.5,"y":4}
+ ]
+ }
+ }
+ }
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/default/keymap.c b/keyboards/westfoxtrot/cypher/rev5/keymaps/default/keymap.c
new file mode 100644
index 000000000..f9d6bc8e5
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/default/keymap.c
@@ -0,0 +1,37 @@
+/* Copyright 2019 westfoxtrot
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define _MA 0
+#define _F1 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_MA] = LAYOUT_all( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NO, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT,KC_NO ,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI,KC_LALT, KC_SPC,KC_SPC,KC_SPC, KC_RALT,KC_RALT,MO(_F1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT, KC_BSPC),
+
+[_F1] = LAYOUT_all( /* Function Layer */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL , _______, _______, _______, _______, _______,
+ _______, BL_TOGG,BL_STEP,BL_ON,BL_OFF,BL_INC,BL_DEC,BL_BRTG,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, _______, _______, _______, _______, _______,
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______, _______,_______,_______, _______,_______,_______, _______,_______,_______, _______, _______, _______),
+
+};
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/default/readme.md b/keyboards/westfoxtrot/cypher/rev5/keymaps/default/readme.md
new file mode 100644
index 000000000..05c370026
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for cypher \ No newline at end of file
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/keymap.c b/keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/keymap.c
new file mode 100644
index 000000000..e3bda0c00
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/keymap.c
@@ -0,0 +1,37 @@
+/* Copyright 2019 westfoxtrot
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define _MA 0
+#define _F1 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_MA] = LAYOUT_all( /* Base */
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTRL, KC_LGUI,KC_LALT, KC_NO,KC_SPC,KC_NO, KC_RALT,KC_RGUI,MO(_F1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT, KC_BSPC),
+
+[_F1] = LAYOUT_all( /* Function Layer */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
+ _______, BL_TOGG,BL_STEP,BL_ON,BL_OFF,BL_INC,BL_DEC,BL_BRTG,_______,_______,_______,_______, _______,_______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, _______, _______, _______, _______,
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______, _______,_______,_______, _______,_______,_______, _______,_______,_______, _______, _______, _______),
+
+};
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/readme.md b/keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/readme.md
new file mode 100644
index 000000000..81a4a677f
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/default_iso/readme.md
@@ -0,0 +1 @@
+# The default iso keymap for cypher
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/max/keymap.c b/keyboards/westfoxtrot/cypher/rev5/keymaps/max/keymap.c
new file mode 100644
index 000000000..e23b83e14
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/max/keymap.c
@@ -0,0 +1,49 @@
+/* Copyright 2019 westfoxtrot
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+#define _MA 0
+#define _F1 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_MA] = LAYOUT_all( /* Base */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,KC_NO, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT,KC_BSLS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_CAPS, KC_LGUI,KC_LALT, KC_NO,KC_SPC,KC_NO, KC_RALT,KC_RALT,MO(_F1), KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT, KC_BSPC),
+
+[_F1] = LAYOUT_all( /* Function Layer */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
+ _______, BL_TOGG,BL_STEP,BL_ON,BL_OFF,BL_INC,BL_DEC,BL_BRTG,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, _______, _______, _______, _______, _______,
+ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,_______, _______,_______,_______, _______,_______,_______, _______,_______,_______, _______, _______, _______),
+
+};
+
+void matrix_init_user(void) {
+ //user initialization
+}
+
+void matrix_scan_user(void) {
+ //user matrix
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
diff --git a/keyboards/westfoxtrot/cypher/rev5/keymaps/max/readme.md b/keyboards/westfoxtrot/cypher/rev5/keymaps/max/readme.md
new file mode 100644
index 000000000..05c370026
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/keymaps/max/readme.md
@@ -0,0 +1 @@
+# The default keymap for cypher \ No newline at end of file
diff --git a/keyboards/westfoxtrot/cypher/rev5/readme.md b/keyboards/westfoxtrot/cypher/rev5/readme.md
new file mode 100644
index 000000000..d7b78d594
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/readme.md
@@ -0,0 +1,13 @@
+# cypher
+
+PCB for the cypher keyboard
+
+* Keyboard Maintainer: [westfoxtrot](https://github.com/westfoxtrot)
+* Hardware Supported: Cypher PCB revisions 5 (Rev # is printed on PCB)
+* Hardware Availability: with group buy + [Files released here](https://github.com/westfoxtrot/Cypher_PCB)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make westfoxtrot/cypher/rev5:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/westfoxtrot/cypher/rev5/rev5.c b/keyboards/westfoxtrot/cypher/rev5/rev5.c
new file mode 100644
index 000000000..b75fd650e
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/rev5.c
@@ -0,0 +1,31 @@
+/* Copyright 2019 westfoxtrot
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "rev5.h"
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
+ // writePin sets the pin high for 1 and low for 0.
+ // In this example the pins are inverted, setting
+ // it low/0 turns it on, and high/1 turns the LED off.
+ // This behavior depends on whether the LED is between the pin
+ // and VCC or the pin and GND.
+ writePin(D3, led_state.num_lock);
+ writePin(D5, led_state.caps_lock);
+ writePin(D2, led_state.scroll_lock);
+ }
+ return res;
+}
diff --git a/keyboards/westfoxtrot/cypher/rev5/rev5.h b/keyboards/westfoxtrot/cypher/rev5/rev5.h
new file mode 100644
index 000000000..d005ebc97
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/rev5.h
@@ -0,0 +1,48 @@
+/* Copyright 2019 westfoxtrot
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#define ___ KC_NO
+
+#include "quantum.h"
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K50, K51, K52, K53, K54, K55, K56, K57, K58,\
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K60, K61, K62, K63, K65, K66, K67, K68, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K70, K71, K72, K73, K75, K76, K77, K78, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K80, K81, K82, K83, K85, K86, K87, K88, \
+ K40, K41, K42, K44, K46, K47, K49, K90, K91, K92, K93, K95, K96, K97, K98 \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39 }, \
+ { K40, K41, K42, ___, K44, ___, K46, K47, ___, K49 }, \
+ { K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \
+ { K60, K61, K62, K63, ___, K65, K66, K67, K68 }, \
+ { K70, K71, K72, K73, ___, K75, K76, K77, K78 }, \
+ { K80, K81, K82, K83, ___, K85, K86, K87, K88 }, \
+ { K90, K91, K92, K93, ___, K95, K96, K97, K98 } \
+}
diff --git a/keyboards/westfoxtrot/cypher/rev5/rules.mk b/keyboards/westfoxtrot/cypher/rev5/rules.mk
new file mode 100644
index 000000000..a41c12af5
--- /dev/null
+++ b/keyboards/westfoxtrot/cypher/rev5/rules.mk
@@ -0,0 +1,33 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/whitefox/chconf.h b/keyboards/whitefox/chconf.h
index d9114ec85..513ae821d 100644
--- a/keyboards/whitefox/chconf.h
+++ b/keyboards/whitefox/chconf.h
@@ -105,10 +105,6 @@
*/
#define CH_CFG_NO_IDLE_THREAD FALSE
-/* Use __WFI in the idle thread for waiting. Does lower the power
- * consumption. */
-#define CORTEX_ENABLE_WFI_IDLE TRUE
-
/** @} */
/*===========================================================================*/
diff --git a/keyboards/whitefox/info.json b/keyboards/whitefox/info.json
index 5efe2910f..fc2ffea12 100644
--- a/keyboards/whitefox/info.json
+++ b/keyboards/whitefox/info.json
@@ -14,6 +14,78 @@
"LAYOUT_aria": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"x":13, "y":4}, {"x":14, "y":4}, {"x":15, "y":4}]
- }
+ },
+ "LAYOUT_vanilla": {
+ "layout": [
+ {"label": "~","x": 0,"y": 0},
+ {"label": "!","x": 1,"y": 0},
+ {"label": "@","x": 2,"y": 0},
+ {"label": "#","x": 3,"y": 0},
+ {"label": "$","x": 4,"y": 0},
+ {"label": "%","x": 5,"y": 0},
+ {"label": "^","x": 6,"y": 0},
+ {"label": "&","x": 7,"y": 0},
+ {"label": "*","x": 8,"y": 0},
+ {"label": "(","x": 9,"y": 0},
+ {"label": ")","x": 10,"y": 0},
+ {"label": "_","x": 11,"y": 0},
+ {"label": "+","x": 12,"y": 0},
+ {"label": "Backspace","x": 13,"y": 0,"w": 2},
+ {"x": 15,"y": 0},
+ {"label": "Tab","x": 0,"y": 1,"w": 1.5},
+ {"label": "Q","x": 1.5,"y": 1},
+ {"label": "W","x": 2.5,"y": 1},
+ {"label": "E","x": 3.5,"y": 1},
+ {"label": "R","x": 4.5,"y": 1},
+ {"label": "T","x": 5.5,"y": 1},
+ {"label": "Y","x": 6.5,"y": 1},
+ {"label": "U","x": 7.5,"y": 1},
+ {"label": "I","x": 8.5,"y": 1},
+ {"label": "O","x": 9.5,"y": 1},
+ {"label": "P","x": 10.5,"y": 1},
+ {"label": "{","x": 11.5,"y": 1},
+ {"label": "}","x": 12.5,"y": 1},
+ {"label": "|","x": 13.5,"y": 1,"w": 1.5},
+ {"x": 15,"y": 1},
+ {"label": "Caps Lock","x": 0,"y": 2,"w": 1.75},
+ {"label": "A","x": 1.75,"y": 2},
+ {"label": "S","x": 2.75,"y": 2},
+ {"label": "D","x": 3.75,"y": 2},
+ {"label": "F","x": 4.75,"y": 2},
+ {"label": "G","x": 5.75,"y": 2},
+ {"label": "H","x": 6.75,"y": 2},
+ {"label": "J","x": 7.75,"y": 2},
+ {"label": "K","x": 8.75,"y": 2},
+ {"label": "L","x": 9.75,"y": 2},
+ {"label": ":","x": 10.75,"y": 2},
+ {"label": "\"","x": 11.75,"y": 2},
+ {"label": "Enter","x": 12.75,"y": 2,"w": 2.25},
+ {"x": 15,"y": 2},
+ {"label": "Shift","x": 0,"y": 3,"w": 2.25},
+ {"label": "Z","x": 2.25,"y": 3},
+ {"label": "X","x": 3.25,"y": 3},
+ {"label": "C","x": 4.25,"y": 3},
+ {"label": "V","x": 5.25,"y": 3},
+ {"label": "B","x": 6.25,"y": 3},
+ {"label": "N","x": 7.25,"y": 3},
+ {"label": "M","x": 8.25,"y": 3},
+ {"label": "<","x": 9.25,"y": 3},
+ {"label": ">","x": 10.25,"y": 3},
+ {"label": "?","x": 11.25,"y": 3},
+ {"label": "Shift","x": 12.25,"y": 3,"w": 1.75},
+ {"x": 14,"y": 3},
+ {"x": 15,"y": 3},
+ {"label": "Ctrl","x": 0,"y": 4,"w": 1.25},
+ {"label": "Win","x": 1.25,"y": 4,"w": 1.25},
+ {"label": "Alt","x": 2.5,"y": 4,"w": 1.25},
+ {"x": 3.75,"y": 4,"w": 6.25},
+ {"label": "Alt","x": 10,"y": 4,"w": 1},
+ {"label": "Win","x": 11,"y": 4,"w": 1},
+ {"label": "Ctrl","x": 12,"y": 4,"w": 1},
+ {"x": 13,"y": 4},
+ {"x": 14,"y": 4},
+ {"x": 15,"y": 4}
+ ]
+ }
}
}
diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk
index 59332d1d5..27c3c3141 100644
--- a/keyboards/whitefox/rules.mk
+++ b/keyboards/whitefox/rules.mk
@@ -72,8 +72,13 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
BACKLIGHT_ENABLE = yes
+BACKLIGHT_DRIVER = custom
VISUALIZER_ENABLE = yes
LED_DRIVER = is31fl3731c
LED_WIDTH = 16
LED_HEIGHT = 5
+
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/whitefox/whitefox.h b/keyboards/whitefox/whitefox.h
index 7791dac67..0c19e2daa 100644
--- a/keyboards/whitefox/whitefox.h
+++ b/keyboards/whitefox/whitefox.h
@@ -134,4 +134,36 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
{ K80, K81, K82, K83, K84, K85, K86, KC_NO } \
}
+/* Vanilla WhiteFox
+ * ,---------------------------------------------------------------.
+ * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp| `|
+ * |---------------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|
+ * |---------------------------------------------------------------|
+ * |CapsL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU|
+ * |---------------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
+ * |---------------------------------------------------------------|
+ * |Ctrl|GUI |Alt | Space |Alt|GUI|Ctl|Lef|Dow|Rig|
+ * `---------------------------------------------------------------'
+ */
+
+#define LAYOUT_vanilla( \
+ K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K51, K61, \
+ K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, K23, K33, \
+ K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, K64, K84, K05, \
+ K15, K35, K45, K55, K65, K75, K85, K06, K16, K26, K36, K46, K56, K66, \
+ K76, K86, K07, K17, K27, K37, K47, K57, K67, K77 \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07 }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17 }, \
+ { K20, K21, K22, K23, K24, KC_NO, K26, K27 }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37 }, \
+ { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \
+ { K50, K51, K52, K53, K54, K55, K56, K57 }, \
+ { K60, K61, K62, K63, K64, K65, K66, K67 }, \
+ { K70, K71, K72, K73, KC_NO, K75, K76, K77 }, \
+ { K80, K81, K82, K83, K84, K85, K86, KC_NO } \
+}
+
#endif
diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h
index 9cbbd6620..7f945b4a4 100644
--- a/keyboards/wilba_tech/rama_works_koyu/config.h
+++ b/keyboards/wilba_tech/rama_works_koyu/config.h
@@ -121,4 +121,7 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31 \ No newline at end of file
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_koyu/info.json b/keyboards/wilba_tech/rama_works_koyu/info.json
index 430bc6fed..377ee0333 100644
--- a/keyboards/wilba_tech/rama_works_koyu/info.json
+++ b/keyboards/wilba_tech/rama_works_koyu/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "RAMA WORKS KOYU",
"url": "http://rama.works",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 16,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/rama_works_koyu/rules.mk b/keyboards/wilba_tech/rama_works_koyu/rules.mk
index 80a3b32b2..809ab26d0 100644
--- a/keyboards/wilba_tech/rama_works_koyu/rules.mk
+++ b/keyboards/wilba_tech/rama_works_koyu/rules.mk
@@ -20,10 +20,10 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/wilba_tech/rama_works_m10_b/rules.mk b/keyboards/wilba_tech/rama_works_m10_b/rules.mk
index e970f6c7a..5ccb9456a 100644
--- a/keyboards/wilba_tech/rama_works_m10_b/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m10_b/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h
index 8381a4db0..849d1a461 100644
--- a/keyboards/wilba_tech/rama_works_m60_a/config.h
+++ b/keyboards/wilba_tech/rama_works_m60_a/config.h
@@ -119,3 +119,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_m60_a/info.json b/keyboards/wilba_tech/rama_works_m60_a/info.json
index e2061b73f..cc8918556 100644
--- a/keyboards/wilba_tech/rama_works_m60_a/info.json
+++ b/keyboards/wilba_tech/rama_works_m60_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "RAMA WORKS M60-A",
"url": "http://rama.works",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/rama_works_m60_a/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/rules.mk
index e4e934bdb..7e76a962a 100644
--- a/keyboards/wilba_tech/rama_works_m60_a/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m60_a/rules.mk
@@ -20,10 +20,10 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/wilba_tech/rama_works_m6_a/config.h b/keyboards/wilba_tech/rama_works_m6_a/config.h
index 1a61604bb..cbb75e289 100644
--- a/keyboards/wilba_tech/rama_works_m6_a/config.h
+++ b/keyboards/wilba_tech/rama_works_m6_a/config.h
@@ -109,3 +109,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 43
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_m6_a/rules.mk b/keyboards/wilba_tech/rama_works_m6_a/rules.mk
index 26185cb38..6a60c5423 100644
--- a/keyboards/wilba_tech/rama_works_m6_a/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m6_a/rules.mk
@@ -19,10 +19,10 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/wilba_tech/rama_works_m6_b/config.h b/keyboards/wilba_tech/rama_works_m6_b/config.h
index 3ebfd80da..1af1cf694 100644
--- a/keyboards/wilba_tech/rama_works_m6_b/config.h
+++ b/keyboards/wilba_tech/rama_works_m6_b/config.h
@@ -152,3 +152,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 43
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_m6_b/rules.mk b/keyboards/wilba_tech/rama_works_m6_b/rules.mk
index 05212a3be..51d1a0c80 100644
--- a/keyboards/wilba_tech/rama_works_m6_b/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m6_b/rules.mk
@@ -19,10 +19,10 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h
index 748b2cb29..2523b962e 100644
--- a/keyboards/wilba_tech/rama_works_u80_a/config.h
+++ b/keyboards/wilba_tech/rama_works_u80_a/config.h
@@ -235,3 +235,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_u80_a/info.json b/keyboards/wilba_tech/rama_works_u80_a/info.json
index 7febde5c5..3652b4e51 100644
--- a/keyboards/wilba_tech/rama_works_u80_a/info.json
+++ b/keyboards/wilba_tech/rama_works_u80_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "RAMA WORKS U80-A",
"url": "http://rama.works",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 18.25,
"height": 6.5,
"layouts": {
diff --git a/keyboards/wilba_tech/rama_works_u80_a/rules.mk b/keyboards/wilba_tech/rama_works_u80_a/rules.mk
index 443776d4a..5bda0f51a 100644
--- a/keyboards/wilba_tech/rama_works_u80_a/rules.mk
+++ b/keyboards/wilba_tech/rama_works_u80_a/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h
index 269afbcb8..e07b91166 100644
--- a/keyboards/wilba_tech/wt60_a/config.h
+++ b/keyboards/wilba_tech/wt60_a/config.h
@@ -204,3 +204,5 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt60_a/info.json b/keyboards/wilba_tech/wt60_a/info.json
index 3b3614a8b..09bdcaf05 100644
--- a/keyboards/wilba_tech/wt60_a/info.json
+++ b/keyboards/wilba_tech/wt60_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT60-A",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/wt60_a/rules.mk b/keyboards/wilba_tech/wt60_a/rules.mk
index c59e94e83..53177bf16 100644
--- a/keyboards/wilba_tech/wt60_a/rules.mk
+++ b/keyboards/wilba_tech/wt60_a/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt60_b/config.h b/keyboards/wilba_tech/wt60_b/config.h
new file mode 100644
index 000000000..e80a6715d
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/config.h
@@ -0,0 +1,118 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6582 // wilba.tech
+#define PRODUCT_ID 0x60B0 // 60-B
+#define DEVICE_VER 0x0001
+#define MANUFACTURER wilba.tech
+#define PRODUCT wilba.tech WT60-B
+#define DESCRIPTION wilba.tech WT60-B
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F0, F1, F4, F6, F7 }
+#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+
+// IS31FL3731 driver
+#define DRIVER_COUNT 2
+#define DRIVER_LED_TOTAL 72
+
+#define RGB_BACKLIGHT_ENABLED 1
+
+// This conditionally compiles the backlight code for wT60-B specifics
+#define RGB_BACKLIGHT_WT60_B
+
+// enable/disable LEDs based on layout
+// they aren't really used if RGB_BACKLIGHT_WT60_B defined
+#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
+#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
+#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
+#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
+#define RGB_BACKLIGHT_USE_ISO_ENTER 0
+#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
+
+// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
+#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
+
+// disable backlight after timeout in minutes, 0 = no timeout
+#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
+
+// the default brightness
+#define RGB_BACKLIGHT_BRIGHTNESS 255
+
+// the default effect (RGB test)
+#define RGB_BACKLIGHT_EFFECT 255
+
+// the default effect speed (0-3)
+#define RGB_BACKLIGHT_EFFECT_SPEED 0
+
+// the default color1 and color2
+#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
+#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
+
+// These define which keys in the matrix are alphas/mods
+// Used for backlight effects so colors are different for
+// alphas vs. mods
+// Each value is for a row, bit 0 is column 0
+// Alpha=0 Mod=1
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111
+
+#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+
+// Backlight config starts after VIA's EEPROM usage,
+// dynamic keymaps start after this.
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt60_b/info.json b/keyboards/wilba_tech/wt60_b/info.json
new file mode 100644
index 000000000..5d01aaa53
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "wilba.tech WT60-B",
+ "url": "https://wilba.tech",
+ "maintainer": "Wilba",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c
new file mode 100644
index 000000000..710fa4da1
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/keymaps/default/keymap.c
@@ -0,0 +1,38 @@
+// Default layout for WT60-B
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+// Default layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_MO13,
+ KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_NO),
+
+// Fn1 Layer
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn2 Layer
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn3 Layer (zeal60 Configuration)
+[3] = LAYOUT_all(
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt60_b/keymaps/via/keymap.c b/keyboards/wilba_tech/wt60_b/keymaps/via/keymap.c
new file mode 100644
index 000000000..710fa4da1
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/keymaps/via/keymap.c
@@ -0,0 +1,38 @@
+// Default layout for WT60-B
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+// Default layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_MO13,
+ KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_NO),
+
+// Fn1 Layer
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn2 Layer
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn3 Layer (zeal60 Configuration)
+[3] = LAYOUT_all(
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt60_b/keymaps/via/rules.mk b/keyboards/wilba_tech/wt60_b/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/wilba_tech/wt60_b/readme.md b/keyboards/wilba_tech/wt60_b/readme.md
new file mode 100644
index 000000000..f365bf325
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/readme.md
@@ -0,0 +1,18 @@
+# wilba.tech WT60-B
+
+WT60-B is a keyboard PCB supporting 60% layout. [More info at wilba.tech](https://wilba.tech/)
+
+First produced as WT60-B THERMAL for wilba.tech Thermal.
+
+WT60-B is the hotswap variant PCB.
+WT60-BX is the solderable variant PCB with split backspace and stepped Caps Lock support.
+
+* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
+* Hardware Supported: wilba.tech WT60-B
+* Hardware Availability: Custom keyboard group buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make wilba_tech/wt60_b:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt60_b/rules.mk b/keyboards/wilba_tech/wt60_b/rules.mk
new file mode 100644
index 000000000..50faab968
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/rules.mk
@@ -0,0 +1,46 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Do not put the microcontroller into power saving mode
+# when we get USB suspend event. We want it to keep updating
+# backlight effects.
+OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+CIE1931_CURVE = yes
+
+# project specific files
+SRC = keyboards/wilba_tech/wt_main.c \
+ keyboards/wilba_tech/wt_rgb_backlight.c \
+ quantum/color.c \
+ drivers/issi/is31fl3731.c \
+ drivers/avr/i2c_master.c
diff --git a/keyboards/wilba_tech/wt60_b/wt60_b.c b/keyboards/wilba_tech/wt60_b/wt60_b.c
new file mode 100644
index 000000000..051cbc6d4
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/wt60_b.c
@@ -0,0 +1 @@
+#include "wt60_b.h"
diff --git a/keyboards/wilba_tech/wt60_b/wt60_b.h b/keyboards/wilba_tech/wt60_b/wt60_b.h
new file mode 100644
index 000000000..2b5fe7fe1
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/wt60_b.h
@@ -0,0 +1,37 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
+#include "via.h"
+
+#define ____ KC_NO
+
+#define LAYOUT_all( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
+ K400, K401, K402, K407, K411, K412, K413 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \
+ { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \
+ { K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413 } \
+}
diff --git a/keyboards/wilba_tech/wt60_bx/config.h b/keyboards/wilba_tech/wt60_bx/config.h
new file mode 100644
index 000000000..0fba586d8
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/config.h
@@ -0,0 +1,118 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6582 // wilba.tech
+#define PRODUCT_ID 0x60B1 // 60-BX
+#define DEVICE_VER 0x0001
+#define MANUFACTURER wilba.tech
+#define PRODUCT wilba.tech WT60-BX
+#define DESCRIPTION wilba.tech WT60-BX
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F0, F1, F4, F6, F7 }
+#define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+
+// IS31FL3731 driver
+#define DRIVER_COUNT 2
+#define DRIVER_LED_TOTAL 72
+
+#define RGB_BACKLIGHT_ENABLED 1
+
+// This conditionally compiles the backlight code for wT60-BX specifics
+#define RGB_BACKLIGHT_WT60_BX
+
+// enable/disable LEDs based on layout
+// they aren't really used if RGB_BACKLIGHT_WT60_BX defined
+#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
+#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
+#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0
+#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
+#define RGB_BACKLIGHT_USE_ISO_ENTER 0
+#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
+
+// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
+#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
+
+// disable backlight after timeout in minutes, 0 = no timeout
+#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
+
+// the default brightness
+#define RGB_BACKLIGHT_BRIGHTNESS 255
+
+// the default effect (RGB test)
+#define RGB_BACKLIGHT_EFFECT 255
+
+// the default effect speed (0-3)
+#define RGB_BACKLIGHT_EFFECT_SPEED 0
+
+// the default color1 and color2
+#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
+#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
+
+// These define which keys in the matrix are alphas/mods
+// Used for backlight effects so colors are different for
+// alphas vs. mods
+// Each value is for a row, bit 0 is column 0
+// Alpha=0 Mod=1
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011100000000111
+
+#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+
+// Backlight config starts after VIA's EEPROM usage,
+// dynamic keymaps start after this.
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt60_bx/info.json b/keyboards/wilba_tech/wt60_bx/info.json
new file mode 100644
index 000000000..3d85f0d57
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "wilba.tech WT60-BX",
+ "url": "https://wilba.tech",
+ "maintainer": "Wilba",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c
new file mode 100644
index 000000000..3e08d4eda
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/keymaps/default/keymap.c
@@ -0,0 +1,38 @@
+// Default layout for WT60-BX
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+// Default layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_MO13,
+ KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_NO),
+
+// Fn1 Layer
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn2 Layer
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn3 Layer (zeal60 Configuration)
+[3] = LAYOUT_all(
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt60_bx/keymaps/via/keymap.c b/keyboards/wilba_tech/wt60_bx/keymaps/via/keymap.c
new file mode 100644
index 000000000..3e08d4eda
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/keymaps/via/keymap.c
@@ -0,0 +1,38 @@
+// Default layout for WT60-BX
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+// Default layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_MO13,
+ KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_MO23, KC_NO),
+
+// Fn1 Layer
+[1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn2 Layer
+[2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+// Fn3 Layer (zeal60 Configuration)
+[3] = LAYOUT_all(
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+};
diff --git a/keyboards/wilba_tech/wt60_bx/keymaps/via/rules.mk b/keyboards/wilba_tech/wt60_bx/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/wilba_tech/wt60_bx/readme.md b/keyboards/wilba_tech/wt60_bx/readme.md
new file mode 100644
index 000000000..19a5a54bb
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/readme.md
@@ -0,0 +1,18 @@
+# wilba.tech WT60-BX
+
+WT60-BX is a keyboard PCB supporting 60% layout. [More info at wilba.tech](https://wilba.tech/)
+
+First produced as WT60-BX THERMAL for wilba.tech Thermal.
+
+WT60-B is the hotswap variant PCB.
+WT60-BX is the solderable variant PCB with split backspace and stepped Caps Lock support.
+
+* Keyboard Maintainer: [Wilba6582](https://github.com/Wilba6582)
+* Hardware Supported: wilba.tech WT60-BX
+* Hardware Availability: Custom keyboard group buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make wilba_tech/wt60_bx:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt60_bx/rules.mk b/keyboards/wilba_tech/wt60_bx/rules.mk
new file mode 100644
index 000000000..50faab968
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/rules.mk
@@ -0,0 +1,46 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Do not put the microcontroller into power saving mode
+# when we get USB suspend event. We want it to keep updating
+# backlight effects.
+OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
+
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+CIE1931_CURVE = yes
+
+# project specific files
+SRC = keyboards/wilba_tech/wt_main.c \
+ keyboards/wilba_tech/wt_rgb_backlight.c \
+ quantum/color.c \
+ drivers/issi/is31fl3731.c \
+ drivers/avr/i2c_master.c
diff --git a/keyboards/wilba_tech/wt60_bx/wt60_bx.c b/keyboards/wilba_tech/wt60_bx/wt60_bx.c
new file mode 100644
index 000000000..2a52888ca
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/wt60_bx.c
@@ -0,0 +1 @@
+#include "wt60_bx.h"
diff --git a/keyboards/wilba_tech/wt60_bx/wt60_bx.h b/keyboards/wilba_tech/wt60_bx/wt60_bx.h
new file mode 100644
index 000000000..2b5fe7fe1
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/wt60_bx.h
@@ -0,0 +1,37 @@
+/* Copyright 2020 Jason Williams (Wilba)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
+#include "via.h"
+
+#define ____ KC_NO
+
+#define LAYOUT_all( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
+ K400, K401, K402, K407, K411, K412, K413 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \
+ { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \
+ { K400, K401, K402, ____, ____, ____, ____, K407, ____, ____, ____, K411, K412, K413 } \
+}
diff --git a/keyboards/wilba_tech/wt60_d/info.json b/keyboards/wilba_tech/wt60_d/info.json
index adb19a15b..bdd9c60a7 100644
--- a/keyboards/wilba_tech/wt60_d/info.json
+++ b/keyboards/wilba_tech/wt60_d/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT60-D",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/wt60_d/rules.mk b/keyboards/wilba_tech/wt60_d/rules.mk
index a5c98a1c6..6e5ad12f8 100644
--- a/keyboards/wilba_tech/wt60_d/rules.mk
+++ b/keyboards/wilba_tech/wt60_d/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h
index ad4c120f4..bf19fe38c 100644
--- a/keyboards/wilba_tech/wt65_a/config.h
+++ b/keyboards/wilba_tech/wt65_a/config.h
@@ -201,3 +201,5 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt65_a/info.json b/keyboards/wilba_tech/wt65_a/info.json
index f2b18dadd..dc474f9d4 100644
--- a/keyboards/wilba_tech/wt65_a/info.json
+++ b/keyboards/wilba_tech/wt65_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT65-A",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 16,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/wt65_a/rules.mk b/keyboards/wilba_tech/wt65_a/rules.mk
index c59e94e83..53177bf16 100644
--- a/keyboards/wilba_tech/wt65_a/rules.mk
+++ b/keyboards/wilba_tech/wt65_a/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h
index f98fa4e72..d74275a28 100644
--- a/keyboards/wilba_tech/wt65_b/config.h
+++ b/keyboards/wilba_tech/wt65_b/config.h
@@ -201,3 +201,5 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt65_b/info.json b/keyboards/wilba_tech/wt65_b/info.json
index dd6fe1af3..618210ad1 100644
--- a/keyboards/wilba_tech/wt65_b/info.json
+++ b/keyboards/wilba_tech/wt65_b/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT65-B",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 16,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/wt65_b/rules.mk b/keyboards/wilba_tech/wt65_b/rules.mk
index c59e94e83..53177bf16 100644
--- a/keyboards/wilba_tech/wt65_b/rules.mk
+++ b/keyboards/wilba_tech/wt65_b/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt69_a/info.json b/keyboards/wilba_tech/wt69_a/info.json
index df7af63c2..8bf5acfc2 100644
--- a/keyboards/wilba_tech/wt69_a/info.json
+++ b/keyboards/wilba_tech/wt69_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT69-A",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 18.25,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/wt69_a/rules.mk b/keyboards/wilba_tech/wt69_a/rules.mk
index 25f3ecbf1..a9ce761ca 100644
--- a/keyboards/wilba_tech/wt69_a/rules.mk
+++ b/keyboards/wilba_tech/wt69_a/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h
index 0c0a2ff08..9b058eec4 100644
--- a/keyboards/wilba_tech/wt75_a/config.h
+++ b/keyboards/wilba_tech/wt75_a/config.h
@@ -204,3 +204,5 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt75_a/info.json b/keyboards/wilba_tech/wt75_a/info.json
index b52d96852..a7386a830 100644
--- a/keyboards/wilba_tech/wt75_a/info.json
+++ b/keyboards/wilba_tech/wt75_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT75-A",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 16,
"height": 6,
"layouts": {
diff --git a/keyboards/wilba_tech/wt75_a/rules.mk b/keyboards/wilba_tech/wt75_a/rules.mk
index c59e94e83..53177bf16 100644
--- a/keyboards/wilba_tech/wt75_a/rules.mk
+++ b/keyboards/wilba_tech/wt75_a/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h
index 0c7b3dbfa..d22ac97e0 100644
--- a/keyboards/wilba_tech/wt75_b/config.h
+++ b/keyboards/wilba_tech/wt75_b/config.h
@@ -204,3 +204,5 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt75_b/info.json b/keyboards/wilba_tech/wt75_b/info.json
index e35518aa0..3aa604b34 100644
--- a/keyboards/wilba_tech/wt75_b/info.json
+++ b/keyboards/wilba_tech/wt75_b/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT75-B",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 16,
"height": 6,
"layouts": {
diff --git a/keyboards/wilba_tech/wt75_b/rules.mk b/keyboards/wilba_tech/wt75_b/rules.mk
index c59e94e83..53177bf16 100644
--- a/keyboards/wilba_tech/wt75_b/rules.mk
+++ b/keyboards/wilba_tech/wt75_b/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h
index b84f2444d..08b3c2ec4 100644
--- a/keyboards/wilba_tech/wt75_c/config.h
+++ b/keyboards/wilba_tech/wt75_c/config.h
@@ -204,3 +204,5 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt75_c/rules.mk b/keyboards/wilba_tech/wt75_c/rules.mk
index c59e94e83..53177bf16 100644
--- a/keyboards/wilba_tech/wt75_c/rules.mk
+++ b/keyboards/wilba_tech/wt75_c/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h
index b706956ef..591697015 100644
--- a/keyboards/wilba_tech/wt80_a/config.h
+++ b/keyboards/wilba_tech/wt80_a/config.h
@@ -200,3 +200,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/wt80_a/info.json b/keyboards/wilba_tech/wt80_a/info.json
index a43acb2f5..6c3ec9e31 100644
--- a/keyboards/wilba_tech/wt80_a/info.json
+++ b/keyboards/wilba_tech/wt80_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT80-A",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 18.25,
"height": 6.5,
"layouts": {
diff --git a/keyboards/wilba_tech/wt80_a/rules.mk b/keyboards/wilba_tech/wt80_a/rules.mk
index c59e94e83..53177bf16 100644
--- a/keyboards/wilba_tech/wt80_a/rules.mk
+++ b/keyboards/wilba_tech/wt80_a/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt8_a/info.json b/keyboards/wilba_tech/wt8_a/info.json
index c40d44db7..d33663c71 100644
--- a/keyboards/wilba_tech/wt8_a/info.json
+++ b/keyboards/wilba_tech/wt8_a/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "wilba.tech WT8-A",
"url": "https://wilba.tech",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 4,
"height": 2,
"layouts": {
diff --git a/keyboards/wilba_tech/wt8_a/rules.mk b/keyboards/wilba_tech/wt8_a/rules.mk
index 25f3ecbf1..a9ce761ca 100644
--- a/keyboards/wilba_tech/wt8_a/rules.mk
+++ b/keyboards/wilba_tech/wt8_a/rules.mk
@@ -14,17 +14,17 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/wilba_tech/wt_main.c b/keyboards/wilba_tech/wt_main.c
index 1ad12ee4a..32721b654 100644
--- a/keyboards/wilba_tech/wt_main.c
+++ b/keyboards/wilba_tech/wt_main.c
@@ -123,17 +123,17 @@ void raw_hid_receive_kb(uint8_t *data, uint8_t length) {
switch ( *command_id )
{
#if RGB_BACKLIGHT_ENABLED || MONO_BACKLIGHT_ENABLED
- case id_backlight_config_set_value:
+ case id_lighting_set_value:
{
backlight_config_set_value(command_data);
break;
}
- case id_backlight_config_get_value:
+ case id_lighting_get_value:
{
backlight_config_get_value(command_data);
break;
}
- case id_backlight_config_save:
+ case id_lighting_save:
{
backlight_config_save();
break;
diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c
index daf738da2..fbc3102e8 100644
--- a/keyboards/wilba_tech/wt_mono_backlight.c
+++ b/keyboards/wilba_tech/wt_mono_backlight.c
@@ -26,9 +26,13 @@
#include "quantum/color.h"
#include "tmk_core/common/eeprom.h"
-#include "via.h" // uses only the EEPROM address
+#include "via.h" // uses EEPROM address, lighting value IDs
#define MONO_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR)
+#if VIA_EEPROM_CUSTOM_CONFIG_SIZE == 0
+#error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct
+#endif
+
#include "drivers/issi/is31fl3736.h"
#define ISSI_ADDR_DEFAULT 0x50
diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c
index babb844d2..9db4478ef 100644
--- a/keyboards/wilba_tech/wt_rgb_backlight.c
+++ b/keyboards/wilba_tech/wt_rgb_backlight.c
@@ -14,9 +14,20 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#if defined(RGB_BACKLIGHT_ZEAL60) || defined(RGB_BACKLIGHT_ZEAL65) || defined(RGB_BACKLIGHT_M60_A) || defined(RGB_BACKLIGHT_M6_B) || defined(RGB_BACKLIGHT_KOYU) || defined(RGB_BACKLIGHT_HS60) || defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_U80_A) || defined(RGB_BACKLIGHT_DAWN60)
+#if defined(RGB_BACKLIGHT_ZEAL60) || \
+ defined(RGB_BACKLIGHT_ZEAL65) || \
+ defined(RGB_BACKLIGHT_M60_A) || \
+ defined(RGB_BACKLIGHT_M6_B) || \
+ defined(RGB_BACKLIGHT_KOYU) || \
+ defined(RGB_BACKLIGHT_HS60) || \
+ defined(RGB_BACKLIGHT_NK65) || \
+ defined(RGB_BACKLIGHT_U80_A) || \
+ defined(RGB_BACKLIGHT_DAWN60) || \
+ defined(RGB_BACKLIGHT_WT60_B) || \
+ defined(RGB_BACKLIGHT_WT60_BX) || \
+ defined(RGB_BACKLIGHT_WT60_C)
#else
-#error None of the following was defined: RGB_BACKLIGHT_ZEAL60, RGB_BACKLIGHT_ZEAL65, RGB_BACKLIGHT_M60_A, RGB_BACKLIGHT_M6_B, RGB_BACKLIGHT_KOYU, RGB_BACKLIGHT_HS60, RGB_BACKLIGHT_NK65, RGB_BACKLIGHT_U80_A, RGB_BACKLIGHT_DAWN60
+#error wt_rgb_backlight.c compiled without setting configuration symbol
#endif
#ifndef MAX
@@ -50,9 +61,13 @@ LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL];
#include "quantum/color.h"
#include "tmk_core/common/eeprom.h"
-#include "via.h" // uses only the EEPROM address
+#include "via.h" // uses EEPROM address, lighting value IDs
#define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR)
+#if VIA_EEPROM_CUSTOM_CONFIG_SIZE == 0
+#error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct
+#endif
+
#if defined(RGB_BACKLIGHT_M6_B)
#include "drivers/issi/is31fl3218.h"
#define BACKLIGHT_LED_COUNT 6
@@ -739,6 +754,35 @@ const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
{0,27}, {0,64}, {0,101}, {0,137}, {0,174}, {255,233}, {228,201}, {235,255}, {237,255},
{195,128}, {206,136}, {215,152}, {222,175}, {205,234}, {209,255}, {214,255}, {219,255}, {223,255}
};
+#elif defined(RGB_BACKLIGHT_WT60_B) || defined(RGB_BACKLIGHT_WT60_BX) || defined(RGB_BACKLIGHT_WT60_C)
+const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
+ // LA0..LA17
+ {120,16}, {104,16}, {88,16}, {72,16}, {56,16}, {40,16}, {24,16}, {4,16}, {4,32},
+ {128,0}, {112,0}, {96,0}, {80,0}, {64,0}, {48,0}, {32,0}, {16,0}, {0,0},
+ // LB0..LB17
+ {144,0}, {160,0}, {176,0}, {192,0}, {208,0}, {224,0}, {216,0}, {255,255}, {255,255},
+ {136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {220,16}, {255,255}, {255,255}, {255,255},
+ // LC0..LC17
+ {112,64}, {100,48}, {84,48}, {68,48}, {52,48}, {36,48}, {64,60}, {44,64}, {24,64},
+ {108,32}, {92,32}, {76,32}, {60,32}, {44,32}, {28,32}, {255,255}, {10,48}, {4,64},
+ // LD0..LD17
+ {124,32}, {140,32}, {156,32}, {172,32}, {188,32}, {214,32}, {180,48}, {202,48}, {224,48},
+ {116,48}, {132,48}, {148,48}, {164,48}, {255,255}, {160,60}, {180,64}, {200,64}, {220,64}
+};
+const Point g_map_led_to_point_polar[BACKLIGHT_LED_COUNT] PROGMEM = {
+ // LA0..LA17
+ {58,129}, {70,129}, {80,139}, {89,157}, {96,181}, {101,208}, {105,238}, {109,255}, {128,247},
+ {58,255}, {64,255}, {70,255}, {75,255}, {80,255}, {85,255}, {89,255}, {93,255}, {96,255},
+ // LB0..LB17
+ {53,255}, {48,255}, {43,255}, {39,255}, {35,255}, {32,255}, {34,255}, {255,255}, {255,255},
+ {48,139}, {39,157}, {32,181}, {27,208}, {23,238}, {19,255}, {255,255}, {255,255}, {255,255},
+ // LC0..LC17
+ {192,255}, {183,131}, {173,143}, {165,163}, {159,188}, {154,216}, {173,248}, {170,255}, {165,255},
+ {128,9}, {128,46}, {128,82}, {128,119}, {128,155}, {128,192}, {255,255}, {148,255}, {161,255},
+ // LD0..LD17
+ {0,27}, {0,64}, {0,101}, {0,137}, {0,174}, {0,233}, {228,201}, {235,242}, {237,255},
+ {195,128}, {206,136}, {215,152}, {222,175}, {255,255}, {211,248}, {214,255}, {219,255}, {223,255}
+};
#elif defined(RGB_BACKLIGHT_U80_A)
const Point g_map_led_to_point[BACKLIGHT_LED_COUNT] PROGMEM = {
// Thse are scaled by 14.5 per U
@@ -1076,6 +1120,14 @@ const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
{ 36+16, 36+15, 36+5, 36+4, 36+3, 36+2, 36+1, 54+9, 54+10, 54+11, 54+12, 54+6, 54+7, 54+8 },
{ 36+17, 36+8, 36+7, 36+6, 255, 255, 255, 36+0, 255, 54+13, 54+14, 54+15, 54+16, 54+17 }
};
+#elif defined(RGB_BACKLIGHT_WT60_B) || defined(RGB_BACKLIGHT_WT60_BX) || defined(RGB_BACKLIGHT_WT60_C)
+const uint8_t g_map_row_column_to_led[MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
+ { 0+17, 0+16, 0+15, 0+14, 0+13, 0+12, 0+11, 0+10, 0+9, 18+0, 18+1, 18+2, 18+3, 18+4 },
+ { 0+7, 0+6, 0+5, 0+4, 0+3, 0+2, 0+1, 0+0, 18+9, 18+10, 18+11, 18+12, 18+13, 18+14 },
+ { 0+8, 36+14, 36+13, 36+12, 36+11, 36+10, 36+9, 54+0, 54+1, 54+2, 54+3, 54+4, 54+5, 18+5 },
+ { 36+16, 255, 36+5, 36+4, 36+3, 36+2, 36+1, 54+9, 54+10, 54+11, 54+12, 54+6, 54+7, 54+8 },
+ { 36+17, 36+8, 36+7, 36+6, 255, 255, 255, 36+0, 255, 255, 54+14, 54+15, 54+16, 54+17 }
+};
#elif defined(RGB_BACKLIGHT_U80_A)
// Note: Left spacebar stab is at 5,3 (LC6)
// Right spacebar stab is at 5,10 (LD14)
@@ -2321,6 +2373,20 @@ void backlight_init_drivers(void)
( index == 54+17 ) || // LD17
( index == 36+15 ) || // LC15
( index == 54+13 ) ); // LD13
+#elif defined(RGB_BACKLIGHT_WT60_B) || defined(RGB_BACKLIGHT_WT60_BX) || defined(RGB_BACKLIGHT_WT60_C)
+ bool enabled = !(
+ // LB6 not present on WT60-B
+#if defined(RGB_BACKLIGHT_WT60_B)
+ ( index == 18+6 ) || // LB6
+#endif
+ // LB7 LB8 LB15 LB16 LB17 LC15 LD13 not present on WT60-B, WT60-BX, WT60-C
+ ( index == 18+7 ) || // LB7
+ ( index == 18+8 ) || // LB8
+ ( index == 18+15 ) || // LB15
+ ( index == 18+16 ) || // LB16
+ ( index == 18+17 ) || // LB17
+ ( index == 36+15 ) || // LC15
+ ( index == 54+13 ) ); // LD13
#elif defined(RGB_BACKLIGHT_ZEAL60)
// LB6 LB7 LB8 LB15 LB16 LB17 not present on Zeal60
bool enabled = !( ( index == 18+5 && !g_config.use_split_backspace ) || // LB5
diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h
index cb2f6a96b..9e2badd2a 100644
--- a/keyboards/wilba_tech/zeal60/config.h
+++ b/keyboards/wilba_tech/zeal60/config.h
@@ -117,4 +117,7 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31 \ No newline at end of file
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/wilba_tech/zeal60/info.json b/keyboards/wilba_tech/zeal60/info.json
index 802f1f0cb..dac59e64f 100644
--- a/keyboards/wilba_tech/zeal60/info.json
+++ b/keyboards/wilba_tech/zeal60/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "Zeal60",
"url": "https://zealpc.net",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 15,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/zeal60/rules.mk b/keyboards/wilba_tech/zeal60/rules.mk
index 3067be73d..31c960c22 100644
--- a/keyboards/wilba_tech/zeal60/rules.mk
+++ b/keyboards/wilba_tech/zeal60/rules.mk
@@ -20,10 +20,10 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h
index 01649d76f..df32aff77 100644
--- a/keyboards/wilba_tech/zeal65/config.h
+++ b/keyboards/wilba_tech/zeal65/config.h
@@ -118,3 +118,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE \ No newline at end of file
diff --git a/keyboards/wilba_tech/zeal65/info.json b/keyboards/wilba_tech/zeal65/info.json
index 709f7cefe..7d037598f 100644
--- a/keyboards/wilba_tech/zeal65/info.json
+++ b/keyboards/wilba_tech/zeal65/info.json
@@ -2,7 +2,6 @@
"keyboard_name": "Zeal65",
"url": "https://zealpc.net",
"maintainer": "Wilba",
- "bootloader": "atmel-dfu",
"width": 16,
"height": 5,
"layouts": {
diff --git a/keyboards/wilba_tech/zeal65/rules.mk b/keyboards/wilba_tech/zeal65/rules.mk
index 94d487cbb..fcf3d0763 100644
--- a/keyboards/wilba_tech/zeal65/rules.mk
+++ b/keyboards/wilba_tech/zeal65/rules.mk
@@ -20,10 +20,10 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/winkeyless/bface/bface.c b/keyboards/winkeyless/bface/bface.c
index 8cb5b600c..7d27096ba 100644
--- a/keyboards/winkeyless/bface/bface.c
+++ b/keyboards/winkeyless/bface/bface.c
@@ -16,32 +16,22 @@
#include "bface.h"
-void backlight_init_ports(void) {
- // initialize pins D0, D1, D4 and D6 as output
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
setPinOutput(D0);
setPinOutput(D1);
- setPinOutput(D4);
setPinOutput(D6);
-
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
}
-void backlight_set(uint8_t level) {
- if (level == 0) {
- // turn backlight LEDs off
- writePinLow(D0);
- writePinLow(D1);
- writePinLow(D4);
- writePinLow(D6);
- } else {
- // turn backlight LEDs on
- writePinHigh(D0);
- writePinHigh(D1);
- writePinHigh(D4);
- writePinHigh(D6);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
}
+ return true;
}
diff --git a/keyboards/winkeyless/bface/config.h b/keyboards/winkeyless/bface/config.h
index 95d44557a..7ada9a49a 100644
--- a/keyboards/winkeyless/bface/config.h
+++ b/keyboards/winkeyless/bface/config.h
@@ -42,10 +42,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define NO_UART 1
-#ifdef BACKLIGHT_ENABLE
- // the backlight PWM does not work (yet). Therefore, we only have two backlight levels (on/off)
- #define BACKLIGHT_LEVELS 1
- #define LED_PIN PORTD
- #define BACKLIGHT_PORT_NUM (1 << 4)
-#endif
-
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
diff --git a/keyboards/winkeyless/bface/rules.mk b/keyboards/winkeyless/bface/rules.mk
index 506e37ac9..84eace5ed 100644
--- a/keyboards/winkeyless/bface/rules.mk
+++ b/keyboards/winkeyless/bface/rules.mk
@@ -18,8 +18,6 @@ EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
-BACKLIGHT_CUSTOM_DRIVER = yes
-BACKLIGHT_BREATHING = no
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/winkeyless/bmini/bmini.c b/keyboards/winkeyless/bmini/bmini.c
index f44fd36a8..6529d4403 100644
--- a/keyboards/winkeyless/bmini/bmini.c
+++ b/keyboards/winkeyless/bmini/bmini.c
@@ -16,3 +16,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "bmini.h"
+
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
+
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
+ setPinOutput(D6);
+}
+
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
+ }
+ return true;
+}
diff --git a/keyboards/winkeyless/bmini/config.h b/keyboards/winkeyless/bmini/config.h
index f8a26e4f0..95c44be9a 100644
--- a/keyboards/winkeyless/bmini/config.h
+++ b/keyboards/winkeyless/bmini/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef BMINI_CONFIG_H
-#define BMINI_CONFIG_H
+#pragma once
#include "config_common.h"
@@ -37,6 +36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_ANIMATIONS
-#define NO_UART 1
+#define BACKLIGHT_PIN D4
+#define BACKLIGHT_LEVELS 3
-#endif
+#define NO_UART 1
diff --git a/keyboards/winkeyless/bmini/readme.md b/keyboards/winkeyless/bmini/readme.md
index b8cc85495..0512ed7be 100644
--- a/keyboards/winkeyless/bmini/readme.md
+++ b/keyboards/winkeyless/bmini/readme.md
@@ -1,6 +1,8 @@
# B.mini
-A 75% keyboard with RGB
+A 75% keyboard with RGB underglow.
+
+QMK Firmware is not the official firmware for the B.mini.
* Keyboard Maintainer: QMK Community
* Hardware Supported: B.mini PCB
@@ -14,6 +16,8 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e
make winkeyless/bmini:default:flash
-**Reset Key**: Hold down the key located at *LOCATION*, commonly programmed as *KEY* while plugging in the keyboard.
+This firmware can be flashed onto the KBDFans KBD75 Round 1 and Round 2 Bootmapper Client boards sold during the 2017 and early 2018 timeframe.
+
+**Reset Key**: Hold down the bottom left most key located at `K00`, commonly programmed as Left Control while plugging in the keyboard.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/winkeyless/bmini/rules.mk b/keyboards/winkeyless/bmini/rules.mk
index 530e8ea32..a8fea7efa 100644
--- a/keyboards/winkeyless/bmini/rules.mk
+++ b/keyboards/winkeyless/bmini/rules.mk
@@ -17,7 +17,7 @@ MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
-BACKLIGHT_ENABLE = no
+BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
diff --git a/keyboards/winkeyless/bminiex/backlight.c b/keyboards/winkeyless/bminiex/backlight.c
deleted file mode 100644
index 94e8126d8..000000000
--- a/keyboards/winkeyless/bminiex/backlight.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#include "backlight.h"
-#include "quantum.h"
-
-#include <avr/pgmspace.h>
-#include <avr/interrupt.h>
-
-#include "backlight_custom.h"
-#include "breathing_custom.h"
-
-// DEBUG
-#include <stdlib.h>
-#include <stdio.h>
-
-// Port D: digital pins of the AVR chipset
-#define NUMLOCK_PORT (1 << 0) // D0
-#define CAPSLOCK_PORT (1 << 1) // D1
-#define BACKLIGHT_PORT (1 << 4) // D4
-#define SCROLLLOCK_PORT (1 << 6) // D6
-
-#define TIMER_CLK_DIV64 0x03 ///< Timer clocked at F_CPU/64
-#define TIMER1PRESCALE TIMER_CLK_DIV64 ///< timer 1 prescaler default
-
-#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
-
-#define PWM_MAX 0xFF
-#define TIMER_TOP 255 // 8 bit PWM
-
-extern backlight_config_t backlight_config;
-
-/**
- * References
- * Port Registers: https://www.arduino.cc/en/Reference/PortManipulation
- * TCCR1A: https://electronics.stackexchange.com/questions/92350/what-is-the-difference-between-tccr1a-and-tccr1b
- * Timers: http://www.avrbeginners.net/architecture/timers/timers.html
- * 16-bit timer setup: http://sculland.com/ATmega168/Interrupts-And-Timers/16-Bit-Timer-Setup/
- * PS2AVRGB firmware: https://github.com/showjean/ps2avrU/tree/master/firmware
- */
-
-// @Override
-// turn LEDs on and off depending on USB caps/num/scroll lock states.
-__attribute__ ((weak))
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1 << USB_LED_NUM_LOCK)) {
- // turn on
- DDRD |= NUMLOCK_PORT;
- PORTD |= NUMLOCK_PORT;
- } else {
- // turn off
- DDRD &= ~NUMLOCK_PORT;
- PORTD &= ~NUMLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- DDRD |= CAPSLOCK_PORT;
- PORTD |= CAPSLOCK_PORT;
- } else {
- DDRD &= ~CAPSLOCK_PORT;
- PORTD &= ~CAPSLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
- DDRD |= SCROLLLOCK_PORT;
- PORTD |= SCROLLLOCK_PORT;
- } else {
- DDRD &= ~SCROLLLOCK_PORT;
- PORTD &= ~SCROLLLOCK_PORT;
- }
-}
-
-#ifdef BACKLIGHT_ENABLE
-
-// sets up Timer 1 for 8-bit PWM
-void timer1PWMSetup(void) { // NOTE ONLY CALL THIS ONCE
- // default 8 bit mode
- TCCR1A &= ~(1 << 1); // cbi(TCCR1A,PWM11); <- set PWM11 bit to HIGH
- TCCR1A |= (1 << 0); // sbi(TCCR1A,PWM10); <- set PWM10 bit to LOW
-
- // clear output compare value A
- // outb(OCR1AH, 0);
- // outb(OCR1AL, 0);
-
- // clear output comparator registers for B
- OCR1BH = 0; // outb(OCR1BH, 0);
- OCR1BL = 0; // outb(OCR1BL, 0);
-}
-
-bool is_init = false;
-void timer1Init(void) {
- // timer1SetPrescaler(TIMER1PRESCALE)
- // set to DIV/64
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | TIMER1PRESCALE;
-
- // reset TCNT1
- TCNT1H = 0; // outb(TCNT1H, 0);
- TCNT1L = 0; // outb(TCNT1L, 0);
-
- // TOIE1: Timer Overflow Interrupt Enable (Timer 1);
- TIMSK |= _BV(TOIE1); // sbi(TIMSK, TOIE1);
-
- is_init = true;
-}
-
-void timer1UnInit(void) {
- // set prescaler back to NONE
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | 0x00; // TIMERRTC_CLK_STOP
-
- // disable timer overflow interrupt
- TIMSK &= ~_BV(TOIE1); // overflow bit?
-
- setPWM(0);
-
- is_init = false;
-}
-
-
-// handle TCNT1 overflow
-//! Interrupt handler for tcnt1 overflow interrupt
-ISR(TIMER1_OVF_vect, ISR_NOBLOCK)
-{
- // sei();
- // handle breathing here
- #ifdef BACKLIGHT_BREATHING
- if (is_breathing()) {
- custom_breathing_handler();
- }
- #endif
-}
-
-// enable timer 1 PWM
-// timer1PWMBOn()
-void timer1PWMBEnable(void) {
- // turn on channel B (OC1B) PWM output
- // set OC1B as non-inverted PWM
- TCCR1A |= _BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-// disable timer 1 PWM
-// timer1PWMBOff()
-void timer1PWMBDisable(void) {
- TCCR1A &= ~_BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-void enableBacklight(void) {
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
-}
-
-void disableBacklight(void) {
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
-}
-
-void startPWM(void) {
- timer1Init();
- timer1PWMBEnable();
- enableBacklight();
-}
-
-void stopPWM(void) {
- timer1UnInit();
- disableBacklight();
- timer1PWMBDisable();
-}
-
-void b_led_init_ports(void) {
- /* turn backlight on/off depending on user preference */
- #if BACKLIGHT_ON_STATE == 0
- // DDRx register: sets the direction of Port D
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
- #else
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
- #endif
-
- timer1PWMSetup();
- startPWM();
-
- #ifdef BACKLIGHT_BREATHING
- breathing_enable();
- #endif
-}
-
-void b_led_set(uint8_t level) {
- if (level > BACKLIGHT_LEVELS) {
- level = BACKLIGHT_LEVELS;
- }
-
- setPWM((int)(TIMER_TOP * (float) level / BACKLIGHT_LEVELS));
-}
-
-// called every matrix scan
-void b_led_task(void) {
- // do nothing for now
-}
-
-void setPWM(uint16_t xValue) {
- if (xValue > TIMER_TOP) {
- xValue = TIMER_TOP;
- }
- OCR1B = xValue; // timer1PWMBSet(xValue);
-}
-
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/winkeyless/bminiex/backlight_custom.h b/keyboards/winkeyless/bminiex/backlight_custom.h
deleted file mode 100644
index 51365fe3b..000000000
--- a/keyboards/winkeyless/bminiex/backlight_custom.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#pragma once
-
-#include <avr/pgmspace.h>
-void b_led_init_ports(void);
-void b_led_set(uint8_t level);
-void b_led_task(void);
-void setPWM(uint16_t xValue);
-
diff --git a/keyboards/winkeyless/bminiex/bminiex.c b/keyboards/winkeyless/bminiex/bminiex.c
index 11315b921..676f88ebf 100644
--- a/keyboards/winkeyless/bminiex/bminiex.c
+++ b/keyboards/winkeyless/bminiex/bminiex.c
@@ -17,20 +17,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "bminiex.h"
-#include "backlight.h"
-#include "backlight_custom.h"
-
-#ifdef BACKLIGHT_ENABLE
-/// Overrides functions in `quantum.c`
-void backlight_init_ports(void) {
- b_led_init_ports();
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_task(void) {
- b_led_task();
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
+ setPinOutput(D6);
}
-void backlight_set(uint8_t level) {
- b_led_set(level);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ writePin(D6, led_state.scroll_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/winkeyless/bminiex/breathing_custom.h b/keyboards/winkeyless/bminiex/breathing_custom.h
deleted file mode 100644
index 71416b1b4..000000000
--- a/keyboards/winkeyless/bminiex/breathing_custom.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Breathing effect code for PS2AVRGB boards (ATMEGA32A)
- * Works in conjunction with `backlight.c`.
- *
- * Code adapted from `quantum.c` to register with the existing TIMER1 overflow
- * handler in `backlight.c` instead of setting up its own timer.
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifdef BACKLIGHT_ENABLE
-#ifdef BACKLIGHT_BREATHING
-
-#include "backlight_custom.h"
-
-#ifndef BREATHING_PERIOD
-#define BREATHING_PERIOD 6
-#endif
-
-#define breathing_min() do {breathing_counter = 0;} while (0)
-#define breathing_max() do {breathing_counter = breathing_period * 244 / 2;} while (0)
-
-// TODO make this share code with quantum.c
-
-#define BREATHING_NO_HALT 0
-#define BREATHING_HALT_OFF 1
-#define BREATHING_HALT_ON 2
-#define BREATHING_STEPS 128
-
-static uint8_t breathing_period = BREATHING_PERIOD;
-static uint8_t breathing_halt = BREATHING_NO_HALT;
-static uint16_t breathing_counter = 0;
-
-static bool breathing = false;
-
-bool is_breathing(void) {
- return breathing;
-}
-
-// See http://jared.geek.nz/2013/feb/linear-led-pwm
-static uint16_t cie_lightness(uint16_t v) {
- if (v <= 5243) // if below 8% of max
- return v / 9; // same as dividing by 900%
- else {
- uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
- // to get a useful result with integer division, we shift left in the expression above
- // and revert what we've done again after squaring.
- y = y * y * y >> 8;
- if (y > 0xFFFFUL) // prevent overflow
- return 0xFFFFU;
- else
- return (uint16_t) y;
- }
-}
-
-void breathing_enable(void) {
- breathing = true;
- breathing_counter = 0;
- breathing_halt = BREATHING_NO_HALT;
- // interrupt already registered
-}
-
-void breathing_pulse(void) {
- if (get_backlight_level() == 0)
- breathing_min();
- else
- breathing_max();
- breathing_halt = BREATHING_HALT_ON;
- // breathing_interrupt_enable();
- breathing = true;
-}
-
-void breathing_disable(void) {
- breathing = false;
- // backlight_set(get_backlight_level());
- b_led_set(get_backlight_level()); // custom implementation of backlight_set()
-}
-
-void breathing_self_disable(void)
-{
- if (get_backlight_level() == 0)
- breathing_halt = BREATHING_HALT_OFF;
- else
- breathing_halt = BREATHING_HALT_ON;
-}
-
-void breathing_toggle(void) {
- if (is_breathing())
- breathing_disable();
- else
- breathing_enable();
-}
-
-void breathing_period_set(uint8_t value)
-{
- if (!value)
- value = 1;
- breathing_period = value;
-}
-
-void breathing_period_default(void) {
- breathing_period_set(BREATHING_PERIOD);
-}
-
-void breathing_period_inc(void)
-{
- breathing_period_set(breathing_period+1);
-}
-
-void breathing_period_dec(void)
-{
- breathing_period_set(breathing_period-1);
-}
-
-/* To generate breathing curve in python:
- * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)]
- */
-static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-// Use this before the cie_lightness function.
-static inline uint16_t scale_backlight(uint16_t v) {
- return v / BACKLIGHT_LEVELS * get_backlight_level();
-}
-
-void custom_breathing_handler(void) {
- uint16_t interval = (uint16_t) breathing_period * 244 / BREATHING_STEPS;
- // resetting after one period to prevent ugly reset at overflow.
- breathing_counter = (breathing_counter + 1) % (breathing_period * 244);
- uint8_t index = breathing_counter / interval % BREATHING_STEPS;
-
- if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) ||
- ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1)))
- {
- // breathing_interrupt_disable();
- }
-
- setPWM(cie_lightness(scale_backlight((uint16_t) pgm_read_byte(&breathing_table[index]) * 0x0101U)));
-}
-
-#endif // BACKLIGHT_BREATHING
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/winkeyless/bminiex/config.h b/keyboards/winkeyless/bminiex/config.h
index 037ca0028..8952796a8 100644
--- a/keyboards/winkeyless/bminiex/config.h
+++ b/keyboards/winkeyless/bminiex/config.h
@@ -36,6 +36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_ANIMATIONS
+#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 5
#define NO_UART 1
diff --git a/keyboards/winkeyless/bminiex/rules.mk b/keyboards/winkeyless/bminiex/rules.mk
index 2c999dcbf..df7124400 100644
--- a/keyboards/winkeyless/bminiex/rules.mk
+++ b/keyboards/winkeyless/bminiex/rules.mk
@@ -19,7 +19,6 @@ CONSOLE_ENABLE = no
DEBUG_ENABLE = no
COMMAND_ENABLE = no
BACKLIGHT_ENABLE = yes
-BACKLIGHT_CUSTOM_DRIVER = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
TAP_DANCE_ENABLE = no
@@ -28,5 +27,3 @@ TAP_DANCE_ENABLE = no
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
OPT_DEFS = -DDEBUG_LEVEL=0
-
-SRC += backlight.c
diff --git a/keyboards/winkeyless/readme.md b/keyboards/winkeyless/readme.md
index e6cb45fc4..91719f6da 100644
--- a/keyboards/winkeyless/readme.md
+++ b/keyboards/winkeyless/readme.md
@@ -1,7 +1,13 @@
# Winkeyless
-[Winkeyless](https://www.winkeyless.kr) is a Korean keyboard company popular for creating the Boot Mapper Client (BMC) firmware. Most Winkeyless boards were low profile and constructed out of acrylic showcasing their RGB underglow capabilities.
+[Winkeyless](https://www.winkeyless.kr) is a Korean keyboard company popular for creating the Boot Mapper Client (BMC) firmware.
-In late 2018, Winkeyless closed its doors due to the numerous unlicensed implementations of its hardware and software.
+Winkeyless used an atmega32a MCU, mini USB B, and utilized the same MCU pins across all their PCBs. Their reset button was always
+tied to pins `A0` and `B0` on the atmega32a MCU.
-This directory contains official Winkeyless boards that have had QMK ported to work with them.
+Most Winkeyless boards were low profile and constructed out of acrylic showcasing their RGB underglow capabilities.
+
+In late 2018, Winkeyless closed its doors. The numerous unlicensed implementations of its hardware and software were cited as one
+of many reasons for shutting down.
+
+This directory contains official Winkeyless boards that have had QMK firmware ported to work with them.
diff --git a/keyboards/wsk/jerkin/config.h b/keyboards/wsk/jerkin/config.h
new file mode 100644
index 000000000..20adc99e0
--- /dev/null
+++ b/keyboards/wsk/jerkin/config.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x79AE
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Worldspawn00
+#define PRODUCT Jerkin
+#define DESCRIPTION Alice style 30% board
+
+/* key matrix size */
+#define MATRIX_ROWS 3
+#define MATRIX_COLS 13
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { B3, B4, B5 }
+#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, B1, F7, F6, F5, F4, E6, D7 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* number of backlight levels */
+
+#ifdef BACKLIGHT_PIN
+#define BACKLIGHT_LEVELS 0
+#endif
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_ANIMATIONS
+// #define RGBLED_NUM 0
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
diff --git a/keyboards/wsk/jerkin/info.json b/keyboards/wsk/jerkin/info.json
new file mode 100644
index 000000000..528fa0f0d
--- /dev/null
+++ b/keyboards/wsk/jerkin/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "Jerkin",
+ "url": "https://qmk.fm/keyboards",
+ "maintainer": "worldspawn00",
+ "width": 15.25,
+ "height": 3,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"label":"Esc", "x":0.5, "y":0}, {"label":"Q", "x":1.5, "y":0}, {"label":"W", "x":2.5, "y":0}, {"label":"E", "x":3.5, "y":0}, {"label":"R", "x":4.5, "y":0}, {"label":"T", "x":5.5, "y":0}, {"label":"Y", "x":7.75, "y":0}, {"label":"U", "x":8.75, "y":0}, {"label":"I", "x":9.75, "y":0}, {"label":"O", "x":10.75, "y":0}, {"label":"P", "x":11.75, "y":0}, {"label":"{", "x":12.75, "y":0}, {"label":"Back<br>Space", "x":13.75, "y":0}, {"label":"Tab", "x":0.25, "y":1, "w":1.25}, {"label":"A", "x":1.5, "y":1}, {"label":"S", "x":2.5, "y":1}, {"label":"D", "x":3.5, "y":1}, {"label":"F", "x":4.5, "y":1}, {"label":"G", "x":5.5, "y":1}, {"label":"H", "x":8.25, "y":1}, {"label":"J", "x":9.25, "y":1}, {"label":"K", "x":10.25, "y":1}, {"label":"L", "x":11.25, "y":1}, {"label":"\"", "x":12.25, "y":1}, {"label":"Enter", "x":13.25, "y":1, "w":1.75}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"x":8, "y":2}, {"label":"N", "x":9, "y":2}, {"label":"M", "x":10, "y":2}, {"label":"<", "x":11, "y":2}, {"label":">", "x":12, "y":2}, {"label":"?", "x":13, "y":2}, {"label":"Shift", "x":14, "y":2, "w":1.25}]
+ }
+ }
+}
diff --git a/keyboards/wsk/jerkin/jerkin.c b/keyboards/wsk/jerkin/jerkin.c
new file mode 100644
index 000000000..d2ed41709
--- /dev/null
+++ b/keyboards/wsk/jerkin/jerkin.c
@@ -0,0 +1 @@
+#include "jerkin.h"
diff --git a/keyboards/wsk/jerkin/jerkin.h b/keyboards/wsk/jerkin/jerkin.h
new file mode 100644
index 000000000..201a9db13
--- /dev/null
+++ b/keyboards/wsk/jerkin/jerkin.h
@@ -0,0 +1,13 @@
+ #pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, KC_NO }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 } \
+}
diff --git a/keyboards/wsk/jerkin/keymaps/default/keymap.c b/keyboards/wsk/jerkin/keymaps/default/keymap.c
new file mode 100644
index 000000000..38c1195e9
--- /dev/null
+++ b/keyboards/wsk/jerkin/keymaps/default/keymap.c
@@ -0,0 +1,65 @@
+#include QMK_KEYBOARD_H
+
+enum custom_keycodes {KC_PASTA = SAFE_RANGE};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+ KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_BSPC,
+ CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, LT(2, KC_ENT),
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, LT(1, KC_SPC), KC_N, KC_M, KC_COMM, ALT_T(KC_DOT), GUI_T(KC_SLSH), SFT_T(KC_DEL)),
+
+ [1] = LAYOUT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, KC_BSLS,
+ KC_TRNS, KC_MINS, KC_EQL, KC_BSLS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS),
+
+ [2] = LAYOUT(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PASTA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ if (record->event.pressed) {
+ switch (keycode) {
+ case KC_PASTA:
+ if (record->event.pressed) {
+ SEND_STRING("https://i.imgur.com/dzBrlqc.png");
+ }
+ break;
+
+ }
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+ // set CapsLock LED to output and low
+ setPinOutput(B2);
+ writePinLow(B2);
+ // set NumLock LED to output and low
+ setPinOutput(B6);
+ writePinLow(B6);
+
+}
+
+layer_state_t layer_state_set_user(layer_state_t state)
+{
+ if (layer_state_cmp(state, 1)) {
+ writePinHigh(B2);
+ } else if (state & (1<<2)) {
+ writePinLow(B2);
+ writePinHigh(B6);
+ } else if (state & (1<<3)) {
+ writePinHigh(B2);
+ writePinHigh(B6);
+ } else {
+ writePinLow(B2);
+ writePinLow(B6);
+ }
+ return state;
+}
diff --git a/keyboards/wsk/jerkin/readme.md b/keyboards/wsk/jerkin/readme.md
new file mode 100644
index 000000000..3dce6a129
--- /dev/null
+++ b/keyboards/wsk/jerkin/readme.md
@@ -0,0 +1,15 @@
+# Jerkin
+
+![Jerkin](https://i.imgur.com/7wcPUfl.png)
+
+An Alice style 30% board.
+
+* Keyboard Maintainer: [Worldspawn00](https://github.com/Worldspawn00)
+* Hardware Supported: Jerkin PCB
+* Hardware Availability: https://www.etsy.com/shop/WorldspawnsKeebs
+
+Make example for this keyboard (after setting up your build environment):
+
+ make wsk/jerkin:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs)
diff --git a/keyboards/wsk/jerkin/rules.mk b/keyboards/wsk/jerkin/rules.mk
new file mode 100644
index 000000000..7a4212cd7
--- /dev/null
+++ b/keyboards/wsk/jerkin/rules.mk
@@ -0,0 +1,29 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output on port C6
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
diff --git a/keyboards/wsk/tkl30/config.h b/keyboards/wsk/tkl30/config.h
new file mode 100644
index 000000000..d5595388f
--- /dev/null
+++ b/keyboards/wsk/tkl30/config.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x0B7F
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Worldspawn00
+#define PRODUCT TKL30
+#define DESCRIPTION A 3-row TKL-style keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 3
+#define MATRIX_COLS 15
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { D2, B5, F4 }
+#define MATRIX_COL_PINS { D3, D1, D0, D4, F7, C6, B1, D7, B3, E6, B2, B4, B6, F6, E5 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* number of backlight levels */
+
+#ifdef BACKLIGHT_PIN
+#define BACKLIGHT_LEVELS 1
+#endif
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+#define RGB_DI_PIN B1
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 1
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
+
diff --git a/keyboards/wsk/tkl30/info.json b/keyboards/wsk/tkl30/info.json
new file mode 100644
index 000000000..e19c678c6
--- /dev/null
+++ b/keyboards/wsk/tkl30/info.json
@@ -0,0 +1,12 @@
+{
+ "keyboard_name": "TKL30",
+ "url": "https://qmk.fm/keyboards",
+ "maintainer": "worldspawn00",
+ "width": 18.25,
+ "height": 3.25,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [{"label":"Tab", "x":0, "y":0.25, "w":1.5}, {"label":"Q", "x":1.5, "y":0.25}, {"label":"W", "x":2.5, "y":0.25}, {"label":"E", "x":3.5, "y":0.25}, {"label":"R", "x":4.5, "y":0.25}, {"label":"T", "x":5.5, "y":0.25}, {"label":"Y", "x":6.5, "y":0.25}, {"label":"U", "x":7.5, "y":0.25}, {"label":"I", "x":8.5, "y":0.25}, {"label":"O", "x":9.5, "y":0.25}, {"label":"P", "x":10.5, "y":0.25}, {"label":"{", "x":11.5, "y":0.25}, {"label":"}", "x":12.5, "y":0.25}, {"label":"|", "x":13.5, "y":0.25, "w":1.5}, {"label":"Ctrl", "x":0, "y":1.25, "w":1.75}, {"label":"A", "x":1.75, "y":1.25}, {"label":"S", "x":2.75, "y":1.25}, {"label":"D", "x":3.75, "y":1.25}, {"label":"F", "x":4.75, "y":1.25}, {"label":"G", "x":5.75, "y":1.25}, {"label":"H", "x":6.75, "y":1.25}, {"label":"J", "x":7.75, "y":1.25}, {"label":"K", "x":8.75, "y":1.25}, {"label":"L", "x":9.75, "y":1.25}, {"label":":", "x":10.75, "y":1.25}, {"label":"\"", "x":11.75, "y":1.25}, {"label":"Enter", "x":12.75, "y":1.25, "w":2.25}, {"label":"\u2191", "x":16.25, "y":1.25}, {"label":"Shift", "x":0, "y":2.25, "w":1.25}, {"label":"Alt", "x":1.25, "y":2.25}, {"label":"Z", "x":2.25, "y":2.25}, {"label":"X", "x":3.25, "y":2.25}, {"label":"C", "x":4.25, "y":2.25}, {"label":"V", "x":5.25, "y":2.25}, {"x":6.25, "y":2.25, "w":2}, {"label":"B", "x":8.25, "y":2.25}, {"label":"N", "x":9.25, "y":2.25}, {"label":"M", "x":10.25, "y":2.25}, {"label":"<", "x":11.25, "y":2.25}, {"label":">", "x":12.25, "y":2.25}, {"label":"Fn", "x":13.25, "y":2.25, "w":1.75}, {"label":"\u2190", "x":15.25, "y":2.25}, {"label":"\u2193", "x":16.25, "y":2.25}, {"label":"\u2192", "x":17.25, "y":2.25}]
+ }
+ }
+}
diff --git a/keyboards/wsk/tkl30/keymaps/default/keymap.c b/keyboards/wsk/tkl30/keymaps/default/keymap.c
new file mode 100644
index 000000000..7f1089304
--- /dev/null
+++ b/keyboards/wsk/tkl30/keymaps/default/keymap.c
@@ -0,0 +1,24 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_UP,
+ KC_LSFT, KC_LALT, KC_Z, KC_X, KC_C, KC_V, LT(1,KC_SPC), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MO(2), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
+ KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH, KC_TRNS, KC_HOME, KC_PGDN, KC_END
+ ),
+
+ [2] = LAYOUT(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
+
diff --git a/keyboards/wsk/tkl30/readme.md b/keyboards/wsk/tkl30/readme.md
new file mode 100644
index 000000000..fb758b1d5
--- /dev/null
+++ b/keyboards/wsk/tkl30/readme.md
@@ -0,0 +1,16 @@
+# TKL30
+
+![TKL30](https://i.imgur.com/rnhOx87.png)
+
+The TKL30 is a three-row TKL-style board.
+
+* Keyboard Maintainer: [worldspawn00](https://github.com/worldspawn00/)
+* Hardware Supported: TKL30 PCB, Pro Micro
+* Hardware Availability: [PCB](https://github.com/worldspawn00/TKL30)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make wsk/tkl30:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
diff --git a/keyboards/wsk/tkl30/rules.mk b/keyboards/wsk/tkl30/rules.mk
new file mode 100644
index 000000000..ad1dd3454
--- /dev/null
+++ b/keyboards/wsk/tkl30/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = caterina
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/wsk/tkl30/tkl30.c b/keyboards/wsk/tkl30/tkl30.c
new file mode 100644
index 000000000..b25dc56a9
--- /dev/null
+++ b/keyboards/wsk/tkl30/tkl30.c
@@ -0,0 +1 @@
+#include "tkl30.h"
diff --git a/keyboards/wsk/tkl30/tkl30.h b/keyboards/wsk/tkl30/tkl30.h
new file mode 100644
index 000000000..3beba7245
--- /dev/null
+++ b/keyboards/wsk/tkl30/tkl30.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K114, K214 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 } \
+}
+
diff --git a/keyboards/xbows/woody/rules.mk b/keyboards/xbows/woody/rules.mk
index 2a9fcb7fc..147acc58c 100644
--- a/keyboards/xbows/woody/rules.mk
+++ b/keyboards/xbows/woody/rules.mk
@@ -3,7 +3,7 @@ MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
BACKLIGHT_ENABLE = no
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
diff --git a/keyboards/xd004/v1/rules.mk b/keyboards/xd004/v1/rules.mk
index e17ca648e..18f7d8041 100644
--- a/keyboards/xd004/v1/rules.mk
+++ b/keyboards/xd004/v1/rules.mk
@@ -13,9 +13,9 @@ BOOTLOADER = atmel-dfu
# Build Options
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/xd60/rev2/rules.mk b/keyboards/xd60/rev2/rules.mk
index b6a8c05d2..1c96804e7 100644
--- a/keyboards/xd60/rev2/rules.mk
+++ b/keyboards/xd60/rev2/rules.mk
@@ -12,10 +12,10 @@ MCU = atmega32u4
BOOTLOADER = atmel-dfu
# Build Options
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/xd60/rev3/rules.mk b/keyboards/xd60/rev3/rules.mk
index 7cff162c9..3c7c96712 100644
--- a/keyboards/xd60/rev3/rules.mk
+++ b/keyboards/xd60/rev3/rules.mk
@@ -12,10 +12,10 @@ MCU = atmega32u4
BOOTLOADER = atmel-dfu
# Build Options
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
diff --git a/keyboards/xd75/keymaps/atomic_style_jp/keymap.c b/keyboards/xd75/keymaps/atomic_style_jp/keymap.c
new file mode 100644
index 000000000..6084a1cbe
--- /dev/null
+++ b/keyboards/xd75/keymaps/atomic_style_jp/keymap.c
@@ -0,0 +1,81 @@
+/* Copyright 2017 Wunder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+ // 2019/03/04 takashiski
+ // NORTICE
+ // This layout is for Japanese Keyboard User.
+ // So there are logicalparing symbols and special keycode like a KC_RO, KC_HENK, KC_MHEN, KC_JYEN.
+ // 日本語キーボードとして認識させて使うことが前提なので、記号位置が英語キーボードとは異なります。
+ // また、日本語キーボードでないと認識されない特殊なキーコードが含まれています。
+
+#include QMK_KEYBOARD_H
+
+
+// Layer shorthand
+enum LAYER{
+ _QW,
+ _EASY_QW,
+ _CURSOR,
+ _RS,
+ _LW
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ //qwerty layer(almost use default)
+ [_QW] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, LT(_CURSOR,KC_ENT), LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ //4th row shifted 1u from regular ortholinear.
+ [_EASY_QW] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_ENT,
+ KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, LT(_CURSOR,KC_ENT), LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+//LOWER
+ [_LW] = LAYOUT(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS ,
+ KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, _______, _______, _______,
+ KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_SLCK,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+
+//RAISE
+ [_RS] = LAYOUT(
+ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______,KC_WH_U, KC_MS_U, KC_WH_D,
+ RESET , DF(_QW), DF(_EASY_QW), _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ ),
+ [_CURSOR] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL,
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_G, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, KC_ENT, LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+)
+
+};
diff --git a/keyboards/xd75/keymaps/atomic_style_jp/readme.md b/keyboards/xd75/keymaps/atomic_style_jp/readme.md
new file mode 100644
index 000000000..7164f5c6b
--- /dev/null
+++ b/keyboards/xd75/keymaps/atomic_style_jp/readme.md
@@ -0,0 +1,4 @@
+# atomic style jp
+
+This layout is based Standard Japanese Layout and atomic style layout.
+
diff --git a/keyboards/xd75/rules.mk b/keyboards/xd75/rules.mk
index 9052c8c12..e822f37ea 100644
--- a/keyboards/xd75/rules.mk
+++ b/keyboards/xd75/rules.mk
@@ -15,14 +15,14 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/xd84/rules.mk b/keyboards/xd84/rules.mk
index 13e1b4ba3..cf4e64361 100644
--- a/keyboards/xd84/rules.mk
+++ b/keyboards/xd84/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
# custom matrix setup
diff --git a/keyboards/xd87/rules.mk b/keyboards/xd87/rules.mk
index 3e8e4e1f5..5797e535a 100644
--- a/keyboards/xd87/rules.mk
+++ b/keyboards/xd87/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Supported layouts
LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/xd96/rules.mk b/keyboards/xd96/rules.mk
index 9afd4eec4..0c56a5ac0 100644
--- a/keyboards/xd96/rules.mk
+++ b/keyboards/xd96/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
# custom matrix setup
diff --git a/keyboards/xelus/dawn60/config.h b/keyboards/xelus/dawn60/config.h
index 7691bb301..59eb828fa 100644
--- a/keyboards/xelus/dawn60/config.h
+++ b/keyboards/xelus/dawn60/config.h
@@ -140,3 +140,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/xelus/dawn60/dawn60.h b/keyboards/xelus/dawn60/dawn60.h
index b1de35a7e..fe63de10f 100644
--- a/keyboards/xelus/dawn60/dawn60.h
+++ b/keyboards/xelus/dawn60/dawn60.h
@@ -22,9 +22,9 @@
#define XXX KC_NO
#define LAYOUT_60_all( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
) { \
diff --git a/keyboards/xelus/dawn60/info.json b/keyboards/xelus/dawn60/info.json
new file mode 100644
index 000000000..e39165bd0
--- /dev/null
+++ b/keyboards/xelus/dawn60/info.json
@@ -0,0 +1,77 @@
+{
+ "keyboard_name": "Dawn60",
+ "url": "",
+ "maintainer": "Xelus22",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_60_all": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"1", "x":1, "y":0},
+ {"label":"2", "x":2, "y":0},
+ {"label":"3", "x":3, "y":0},
+ {"label":"4", "x":4, "y":0},
+ {"label":"5", "x":5, "y":0},
+ {"label":"6", "x":6, "y":0},
+ {"label":"7", "x":7, "y":0},
+ {"label":"8", "x":8, "y":0},
+ {"label":"9", "x":9, "y":0},
+ {"label":"0", "x":10, "y":0},
+ {"label":"-", "x":11, "y":0},
+ {"label":"=", "x":12, "y":0},
+ {"label":"\\", "x":13, "y":0},
+ {"label":"Delete", "x":14, "y":0},
+ {"label":"Tab", "x":0, "y":1, "w":1.5},
+ {"label":"Q", "x":1.5, "y":1},
+ {"label":"W", "x":2.5, "y":1},
+ {"label":"E", "x":3.5, "y":1},
+ {"label":"R", "x":4.5, "y":1},
+ {"label":"T", "x":5.5, "y":1},
+ {"label":"Y", "x":6.5, "y":1},
+ {"label":"U", "x":7.5, "y":1},
+ {"label":"I", "x":8.5, "y":1},
+ {"label":"O", "x":9.5, "y":1},
+ {"label":"P", "x":10.5, "y":1},
+ {"label":"[", "x":11.5, "y":1},
+ {"label":"]", "x":12.5, "y":1},
+ {"label":"Backspace", "x":13.5, "y":1, "w":1.5},
+ {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
+ {"label":"A", "x":1.75, "y":2},
+ {"label":"S", "x":2.75, "y":2},
+ {"label":"D", "x":3.75, "y":2},
+ {"label":"F", "x":4.75, "y":2},
+ {"label":"G", "x":5.75, "y":2},
+ {"label":"H", "x":6.75, "y":2},
+ {"label":"J", "x":7.75, "y":2},
+ {"label":"K", "x":8.75, "y":2},
+ {"label":"L", "x":9.75, "y":2},
+ {"label":";", "x":10.75, "y":2},
+ {"label":"'", "x":11.75, "y":2},
+ {"label":"Enter", "x":12.75, "y":2, "w":2.25},
+ {"label":"Shift", "x":0, "y":3, "w":2.25},
+ {"label":"Z", "x":2.25, "y":3},
+ {"label":"X", "x":3.25, "y":3},
+ {"label":"C", "x":4.25, "y":3},
+ {"label":"V", "x":5.25, "y":3},
+ {"label":"B", "x":6.25, "y":3},
+ {"label":"N", "x":7.25, "y":3},
+ {"label":"M", "x":8.25, "y":3},
+ {"label":",", "x":9.25, "y":3},
+ {"label":".", "x":10.25, "y":3},
+ {"label":"/", "x":11.25, "y":3, "w":1.75},
+ {"label":"Up", "x":13, "y":3},
+ {"label":"Fn", "x":14, "y":3},
+ {"label":"Ctrl", "x":0, "y":4, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":4, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":4, "w":1.25},
+ {"label":"Space", "x":3.75, "y":4, "w":6.25},
+ {"label":"Alt", "x":10, "y":4},
+ {"label":"Ctrl", "x":11, "y":4},
+ {"label":"Left", "x":12, "y":4},
+ {"label":"Down", "x":13, "y":4},
+ {"label":"Right", "x":14, "y":4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/xelus/dawn60/keymaps/default/keymap.c b/keyboards/xelus/dawn60/keymaps/default/keymap.c
index 522997342..431a596c2 100644
--- a/keyboards/xelus/dawn60/keymaps/default/keymap.c
+++ b/keyboards/xelus/dawn60/keymaps/default/keymap.c
@@ -13,33 +13,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer: Pressing caps-lock momentarily switches to Layer 1.
// This is the default layer. Pressing an empty keycode on another layer will take you here.
[0] = LAYOUT_60_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS,
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL ,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(2),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_60_all(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PSCR,
KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
),
[2] = LAYOUT_60_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_60_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
diff --git a/keyboards/xelus/dawn60/keymaps/via/keymap.c b/keyboards/xelus/dawn60/keymaps/via/keymap.c
index 522997342..431a596c2 100644
--- a/keyboards/xelus/dawn60/keymaps/via/keymap.c
+++ b/keyboards/xelus/dawn60/keymaps/via/keymap.c
@@ -13,33 +13,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer: Pressing caps-lock momentarily switches to Layer 1.
// This is the default layer. Pressing an empty keycode on another layer will take you here.
[0] = LAYOUT_60_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS,
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL , KC_BSLS, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL ,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(2),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_60_all(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR,
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PSCR,
KC_CAPS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
),
[2] = LAYOUT_60_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_60_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
diff --git a/keyboards/xmmx/rules.mk b/keyboards/xmmx/rules.mk
index df45fa5df..731b405c0 100644
--- a/keyboards/xmmx/rules.mk
+++ b/keyboards/xmmx/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no # Console for debug(+400)
+BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE ?= no # Mouse keys
+EXTRAKEY_ENABLE ?= yes # Audio control and System control
+CONSOLE_ENABLE ?= no # Console for debug
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/xw60/rules.mk b/keyboards/xw60/rules.mk
index 913ac3c02..b8629daeb 100644
--- a/keyboards/xw60/rules.mk
+++ b/keyboards/xw60/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/yatara/drink_me/config.h b/keyboards/yatara/drink_me/config.h
new file mode 100644
index 000000000..f2ab371f8
--- /dev/null
+++ b/keyboards/yatara/drink_me/config.h
@@ -0,0 +1,37 @@
+/* Copyright 2020 Yatara
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x1470
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Yatara
+#define PRODUCT Drink Me
+#define DESCRIPTION 4% Ergo Macropad
+
+/* Key matrix size */
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 4
+
+/* Pinout */
+#define DIRECT_PINS { \
+ {B4, B5, B6, B7} \
+}
+#define UNUSED_PINS
diff --git a/keyboards/yatara/drink_me/drink_me.c b/keyboards/yatara/drink_me/drink_me.c
new file mode 100644
index 000000000..d5cac311a
--- /dev/null
+++ b/keyboards/yatara/drink_me/drink_me.c
@@ -0,0 +1,17 @@
+/* Copyright 2020 Yatara
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "drink_me.h"
diff --git a/keyboards/yatara/drink_me/drink_me.h b/keyboards/yatara/drink_me/drink_me.h
new file mode 100644
index 000000000..9ed6dbf2e
--- /dev/null
+++ b/keyboards/yatara/drink_me/drink_me.h
@@ -0,0 +1,25 @@
+/* Copyright 2020 Yatara
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00, K01, K02, K03 \
+) { \
+ { K00, K01, K02, K03 } \
+}
diff --git a/keyboards/yatara/drink_me/info.json b/keyboards/yatara/drink_me/info.json
new file mode 100644
index 000000000..0e021a706
--- /dev/null
+++ b/keyboards/yatara/drink_me/info.json
@@ -0,0 +1,34 @@
+{
+ "keyboard_name": "Drink Me",
+ "url": "https://github.com/yatara-cc",
+ "maintainer": "yatara-cc",
+ "width": 4,
+ "height": 1,
+ "layouts": {
+ "LAYOUT": {
+ "key_count": 4,
+ "layout": [
+ {
+ "label": "K0",
+ "x": 0,
+ "y": 0
+ },
+ {
+ "label": "K1",
+ "x": 1,
+ "y": 0
+ },
+ {
+ "label": "K2",
+ "x": 2,
+ "y": 0
+ },
+ {
+ "label": "K3",
+ "x": 3,
+ "y": 0
+ }
+ ]
+ }
+ }
+}
diff --git a/keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c b/keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c
new file mode 100644
index 000000000..f7bfdf1df
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c
@@ -0,0 +1,10 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ LSFT(KC_O),
+ LSFT(KC_R),
+ LSFT(KC_U),
+ LSFT(KC_SLSH)
+ )
+};
diff --git a/keyboards/yatara/drink_me/keymaps/caterpillar/readme.md b/keyboards/yatara/drink_me/keymaps/caterpillar/readme.md
new file mode 100644
index 000000000..d04a30f23
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/caterpillar/readme.md
@@ -0,0 +1,9 @@
+# Drink Me - Caterpillar layout
+
+> ‘Who are you?’ said the Caterpillar.
+
+![Drink Me - Default layout](https://i.imgur.com/BHWNATB.png)
+
+```
+O, R, U, ?
+```
diff --git a/keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c b/keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c
new file mode 100644
index 000000000..528c1e408
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c
@@ -0,0 +1,10 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_LEFT,
+ KC_DOWN,
+ KC_UP,
+ KC_RIGHT
+ )
+};
diff --git a/keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md b/keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md
new file mode 100644
index 000000000..1dd0d658a
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md
@@ -0,0 +1,13 @@
+# Drink Me - Cheshire Cat layout
+
+> ‘Would you tell me, please, which way I ought to go from here?’
+>
+> ‘That depends a good deal on where you want to get to,’ said the Cat.
+
+Cursor keys in VI layout.
+
+![Drink Me - Default layout](https://i.imgur.com/E4cScrK.png)
+
+```
+Left, Down, Up, Right
+```
diff --git a/keyboards/yatara/drink_me/keymaps/default/keymap.c b/keyboards/yatara/drink_me/keymaps/default/keymap.c
new file mode 100644
index 000000000..7864fd0c1
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/default/keymap.c
@@ -0,0 +1,10 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ LCTL(KC_Z),
+ LCTL(KC_X),
+ LCTL(KC_C),
+ LCTL(KC_V)
+ )
+};
diff --git a/keyboards/yatara/drink_me/keymaps/default/readme.md b/keyboards/yatara/drink_me/keymaps/default/readme.md
new file mode 100644
index 000000000..b4bf94831
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/default/readme.md
@@ -0,0 +1,11 @@
+# Drink Me - Default layout
+
+> It was so long since she had been anything near the right size, that it felt quite strange at first; but she got used to it in a few minutes
+
+Common shortcut keys.
+
+![Drink Me - Default layout](https://i.imgur.com/JLEEhHk.png)
+
+```
+Undo, Cut, Copy, Paste
+```
diff --git a/keyboards/yatara/drink_me/keymaps/dormouse/keymap.c b/keyboards/yatara/drink_me/keymaps/dormouse/keymap.c
new file mode 100644
index 000000000..e2d29a026
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/dormouse/keymap.c
@@ -0,0 +1,10 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_SLEP,
+ KC_MUTE,
+ KC_VOLD,
+ KC_VOLU
+ )
+};
diff --git a/keyboards/yatara/drink_me/keymaps/dormouse/readme.md b/keyboards/yatara/drink_me/keymaps/dormouse/readme.md
new file mode 100644
index 000000000..1a8c854d4
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/dormouse/readme.md
@@ -0,0 +1,11 @@
+# Drink Me - Dormouse layout
+
+> The Dormouse slowly opened his eyes. ‘I wasn’t asleep,’ he said in a hoarse, feeble voice: ‘I heard every word you fellows were saying.’
+
+Sleep and volume control.
+
+![Drink Me - Default layout](https://i.imgur.com/VQXH512.png)
+
+```
+Sleep, Mute, Volume down, Volume up
+```
diff --git a/keyboards/yatara/drink_me/keymaps/dormouse/rules.mk b/keyboards/yatara/drink_me/keymaps/dormouse/rules.mk
new file mode 100644
index 000000000..fcfd2225b
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/dormouse/rules.mk
@@ -0,0 +1 @@
+EXTRAKEY_ENABLE = yes
diff --git a/keyboards/yatara/drink_me/keymaps/queen/config.h b/keyboards/yatara/drink_me/keymaps/queen/config.h
new file mode 100644
index 000000000..037c4737f
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/queen/config.h
@@ -0,0 +1 @@
+#define UNICODE_SELECTED_MODES UC_LNX, UC_OSX, UC_WIN, UC_WINC
diff --git a/keyboards/yatara/drink_me/keymaps/queen/keymap.c b/keyboards/yatara/drink_me/keymaps/queen/keymap.c
new file mode 100644
index 000000000..ee1804d64
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/queen/keymap.c
@@ -0,0 +1,67 @@
+#include QMK_KEYBOARD_H
+
+
+enum td_keys {
+ TD_K0,
+ TD_K1,
+ TD_K2,
+ TD_K3
+};
+
+
+void td_spade_lnx (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ send_unicode_hex_string("2660");
+ } else {
+ set_unicode_input_mode(UC_LNX);
+ }
+ reset_tap_dance(state);
+}
+
+
+void td_diamond_osx (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ send_unicode_hex_string("2666");
+ } else {
+ set_unicode_input_mode(UC_OSX);
+ }
+ reset_tap_dance(state);
+}
+
+
+void td_club_win (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ send_unicode_hex_string("2663");
+ } else {
+ set_unicode_input_mode(UC_WIN);
+ }
+ reset_tap_dance(state);
+}
+
+
+void td_heart_winc (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ send_unicode_hex_string("2665");
+ } else {
+ set_unicode_input_mode(UC_WINC);
+ }
+ reset_tap_dance(state);
+}
+
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_K0] = ACTION_TAP_DANCE_FN(td_spade_lnx),
+ [TD_K1] = ACTION_TAP_DANCE_FN(td_diamond_osx),
+ [TD_K2] = ACTION_TAP_DANCE_FN(td_club_win),
+ [TD_K3] = ACTION_TAP_DANCE_FN(td_heart_winc)
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ TD(TD_K0),
+ TD(TD_K1),
+ TD(TD_K2),
+ TD(TD_K3)
+ )
+};
diff --git a/keyboards/yatara/drink_me/keymaps/queen/readme.md b/keyboards/yatara/drink_me/keymaps/queen/readme.md
new file mode 100644
index 000000000..cd89b7b0c
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/queen/readme.md
@@ -0,0 +1,20 @@
+# Drink Me - Queen layout
+
+> ‘Off with her head!’ the Queen shouted at the top of her voice. Nobody moved.
+>
+> ‘Who cares for you?’ said Alice, (she had grown to her full size by this time.) ‘You’re nothing but a pack of cards!’
+
+Single tap for unicode symbols for playing card suits:
+
+![Drink Me - Queen layout single tap](https://i.imgur.com/xwHicLJ.png)
+
+```
+Spade, Diamond, Club, Heart
+```
+
+Double tap to change operating system unicode input method:
+
+![Drink Me - Queen layout double tap](https://i.imgur.com/fBbzq55.png)
+```
+Linux, OSX, Windows, Wincompose
+```
diff --git a/keyboards/yatara/drink_me/keymaps/queen/rules.mk b/keyboards/yatara/drink_me/keymaps/queen/rules.mk
new file mode 100644
index 000000000..705db8e33
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/queen/rules.mk
@@ -0,0 +1,2 @@
+UNICODE_ENABLE = yes
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/yatara/drink_me/keymaps/via/keymap.c b/keyboards/yatara/drink_me/keymaps/via/keymap.c
new file mode 100644
index 000000000..441103222
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/via/keymap.c
@@ -0,0 +1,28 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_0,
+ KC_1,
+ KC_2,
+ KC_3
+ ),
+ [1] = LAYOUT(
+ KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,
+ KC_TRNS
+ ),
+ [2] = LAYOUT(
+ KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,
+ KC_TRNS
+ ),
+ [3] = LAYOUT(
+ KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,
+ KC_TRNS
+ )
+};
diff --git a/keyboards/yatara/drink_me/keymaps/via/readme.md b/keyboards/yatara/drink_me/keymaps/via/readme.md
new file mode 100644
index 000000000..b77355f9f
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/via/readme.md
@@ -0,0 +1,7 @@
+# Drink Me - VIA layout
+
+> ‘But what am I to do?’ said Alice.
+>
+> ‘Anything you like,’ said the Footman, and began whistling.
+
+Flash with this layout to use [VIA](https://caniusevia.com/) for customising layout.
diff --git a/keyboards/yatara/drink_me/keymaps/via/rules.mk b/keyboards/yatara/drink_me/keymaps/via/rules.mk
new file mode 100644
index 000000000..830d3be90
--- /dev/null
+++ b/keyboards/yatara/drink_me/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+EXTRAKEY_ENABLE = yes
+VIA_ENABLE = yes
diff --git a/keyboards/yatara/drink_me/readme.md b/keyboards/yatara/drink_me/readme.md
new file mode 100644
index 000000000..215f812f1
--- /dev/null
+++ b/keyboards/yatara/drink_me/readme.md
@@ -0,0 +1,17 @@
+# Drink Me
+
+![Drink Me](https://i.imgur.com/iz56Er0.jpg)
+
+A 4% ergo macropad.
+
+* Keyboard Maintainer: [Yatara](https://github.com/yatara-cc)
+* Hardware Supported: Drink Me PCB (ATmega32U2)
+* Hardware Availability: [Interest Check on Reddit](https://www.reddit.com/r/MechanicalKeyboards/comments/evu429/ic_drink_me_4_ergo_interest_check_giveaway/)
+
+Make example for this keyboard (after setting up your build environment):
+
+```
+make yatara/drink_me:default
+```
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/yatara/drink_me/rules.mk b/keyboards/yatara/drink_me/rules.mk
new file mode 100644
index 000000000..f0edf97b8
--- /dev/null
+++ b/keyboards/yatara/drink_me/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+# Teensy halfkay
+# Pro Micro caterina
+# Atmel DFU atmel-dfu
+# LUFA DFU lufa-dfu
+# QMK DFU qmk-dfu
+# ATmega32A bootloadHID
+# ATmega328P USBasp
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+MIDI_ENABLE = no # MIDI support
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/yd60mq/rules.mk b/keyboards/yd60mq/rules.mk
index 1e6d4bb7c..c1f1f22ba 100644
--- a/keyboards/yd60mq/rules.mk
+++ b/keyboards/yd60mq/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/yd60mq/yd60mq.c b/keyboards/yd60mq/yd60mq.c
index 96306d6a6..6e391046e 100644
--- a/keyboards/yd60mq/yd60mq.c
+++ b/keyboards/yd60mq/yd60mq.c
@@ -6,7 +6,6 @@ void led_set_kb(uint8_t usb_led) {
writePinLow(F4);
} else {
setPinInput(F4);
- writePinLow(F4);
}
led_set_user(usb_led);
diff --git a/keyboards/yd68/rules.mk b/keyboards/yd68/rules.mk
index 420ab38bf..48283f119 100644
--- a/keyboards/yd68/rules.mk
+++ b/keyboards/yd68/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
@@ -25,9 +25,9 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ymd75/backlight.c b/keyboards/ymd75/backlight.c
deleted file mode 100644
index cb0a97923..000000000
--- a/keyboards/ymd75/backlight.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- Modified by Wayne K Jones (github.com/WarmCatUK) 2018
- */
-
-#include "backlight.h"
-#include "quantum.h"
-
-#include <avr/pgmspace.h>
-#include <avr/interrupt.h>
-
-#include "backlight_custom.h"
-#include "breathing_custom.h"
-
-// DEBUG
-#include <stdlib.h>
-#include <stdio.h>
-
-// Port D: digital pins of the AVR chipset
-//#define NUMLOCK_PORT (1 << 2) // 2nd pin of Port D (digital)
-#define CAPSLOCK_PORT (1 << 1) // 1st pin
-#define BACKLIGHT_PORT (1 << 4) // D4
-//#define SCROLLLOCK_PORT (1 << 6) // D6
-
-#define TIMER_CLK_DIV64 0x03 ///< Timer clocked at F_CPU/64
-#define TIMER1PRESCALE TIMER_CLK_DIV64 ///< timer 1 prescaler default
-
-#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
-
-#define PWM_MAX 0xFF
-#define TIMER_TOP 255 // 8 bit PWM
-
-extern backlight_config_t backlight_config;
-
-/**
- * References
- * Port Registers: https://www.arduino.cc/en/Reference/PortManipulation
- * TCCR1A: https://electronics.stackexchange.com/questions/92350/what-is-the-difference-between-tccr1a-and-tccr1b
- * Timers: http://www.avrbeginners.net/architecture/timers/timers.html
- * 16-bit timer setup: http://sculland.com/ATmega168/Interrupts-And-Timers/16-Bit-Timer-Setup/
- * PS2AVRGB firmware: https://github.com/showjean/ps2avrU/tree/master/firmware
- */
-
-// @Override
-// turn LEDs on and off depending on USB caps/num/scroll lock states.
-__attribute__ ((weak))
-void led_set_user(uint8_t usb_led) {
- /*
- if (usb_led & (1 << USB_LED_NUM_LOCK)) {
- // turn on
- DDRD |= NUMLOCK_PORT;
- PORTD |= NUMLOCK_PORT;
- } else {
- // turn off
- DDRD &= ~NUMLOCK_PORT;
- PORTD &= ~NUMLOCK_PORT;
- }
- */
- if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- DDRD |= CAPSLOCK_PORT;
- PORTD |= CAPSLOCK_PORT;
- } else {
- DDRD &= ~CAPSLOCK_PORT;
- PORTD &= ~CAPSLOCK_PORT;
- }
- /*
- if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
- DDRD |= SCROLLLOCK_PORT;
- PORTD |= SCROLLLOCK_PORT;
- } else {
- DDRD &= ~SCROLLLOCK_PORT;
- PORTD &= ~SCROLLLOCK_PORT;
- }
- */
-}
-
-#ifdef BACKLIGHT_ENABLE
-
-// sets up Timer 1 for 8-bit PWM
-void timer1PWMSetup(void) { // NOTE ONLY CALL THIS ONCE
- // default 8 bit mode
- TCCR1A &= ~(1 << 1); // cbi(TCCR1A,PWM11); <- set PWM11 bit to HIGH
- TCCR1A |= (1 << 0); // sbi(TCCR1A,PWM10); <- set PWM10 bit to LOW
-
- // clear output compare value A
- // outb(OCR1AH, 0);
- // outb(OCR1AL, 0);
-
- // clear output comparator registers for B
- OCR1BH = 0; // outb(OCR1BH, 0);
- OCR1BL = 0; // outb(OCR1BL, 0);
-}
-
-bool is_init = false;
-void timer1Init(void) {
- // timer1SetPrescaler(TIMER1PRESCALE)
- // set to DIV/64
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | TIMER1PRESCALE;
-
- // reset TCNT1
- TCNT1H = 0; // outb(TCNT1H, 0);
- TCNT1L = 0; // outb(TCNT1L, 0);
-
- // TOIE1: Timer Overflow Interrupt Enable (Timer 1);
- TIMSK |= _BV(TOIE1); // sbi(TIMSK, TOIE1);
-
- is_init = true;
-}
-
-void timer1UnInit(void) {
- // set prescaler back to NONE
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | 0x00; // TIMERRTC_CLK_STOP
-
- // disable timer overflow interrupt
- TIMSK &= ~_BV(TOIE1); // overflow bit?
-
- setPWM(0);
-
- is_init = false;
-}
-
-
-// handle TCNT1 overflow
-//! Interrupt handler for tcnt1 overflow interrupt
-ISR(TIMER1_OVF_vect, ISR_NOBLOCK)
-{
- // sei();
- // handle breathing here
- #ifdef BACKLIGHT_BREATHING
- if (is_breathing()) {
- custom_breathing_handler();
- }
- #endif
-
- // TODO call user defined function
-}
-
-// enable timer 1 PWM
-// timer1PWMBOn()
-void timer1PWMBEnable(void) {
- // turn on channel B (OC1B) PWM output
- // set OC1B as non-inverted PWM
- TCCR1A |= _BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-// disable timer 1 PWM
-// timer1PWMBOff()
-void timer1PWMBDisable(void) {
- TCCR1A &= ~_BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-void enableBacklight(void) {
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
-}
-
-void disableBacklight(void) {
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
-}
-
-void startPWM(void) {
- timer1Init();
- timer1PWMBEnable();
- enableBacklight();
-}
-
-void stopPWM(void) {
- timer1UnInit();
- disableBacklight();
- timer1PWMBDisable();
-}
-
-void b_led_init_ports(void) {
- /* turn backlight on/off depending on user preference */
- #if BACKLIGHT_ON_STATE == 0
- // DDRx register: sets the direction of Port D
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
- #else
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
- #endif
-
- timer1PWMSetup();
- startPWM();
-
- #ifdef BACKLIGHT_BREATHING
- breathing_enable();
- #endif
-}
-
-void b_led_set(uint8_t level) {
- if (level > BACKLIGHT_LEVELS) {
- level = BACKLIGHT_LEVELS;
- }
-
- setPWM((int)(TIMER_TOP * (float) level / BACKLIGHT_LEVELS));
-}
-
-// called every matrix scan
-void b_led_task(void) {
- // do nothing for now
-}
-
-void setPWM(uint16_t xValue) {
- if (xValue > TIMER_TOP) {
- xValue = TIMER_TOP;
- }
- OCR1B = xValue; // timer1PWMBSet(xValue);
-}
-
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/ymd75/backlight_custom.h b/keyboards/ymd75/backlight_custom.h
deleted file mode 100644
index 7210be840..000000000
--- a/keyboards/ymd75/backlight_custom.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifndef BACKLIGHT_CUSTOM_H
-#define BACKLIGHT_CUSTOM_H
-
-#include <avr/pgmspace.h>
-void b_led_init_ports(void);
-void b_led_set(uint8_t level);
-void b_led_task(void);
-void setPWM(uint16_t xValue);
-
-#endif // BACKLIGHT_CUSTOM_H
diff --git a/keyboards/ymd75/breathing_custom.h b/keyboards/ymd75/breathing_custom.h
deleted file mode 100644
index 71416b1b4..000000000
--- a/keyboards/ymd75/breathing_custom.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Breathing effect code for PS2AVRGB boards (ATMEGA32A)
- * Works in conjunction with `backlight.c`.
- *
- * Code adapted from `quantum.c` to register with the existing TIMER1 overflow
- * handler in `backlight.c` instead of setting up its own timer.
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifdef BACKLIGHT_ENABLE
-#ifdef BACKLIGHT_BREATHING
-
-#include "backlight_custom.h"
-
-#ifndef BREATHING_PERIOD
-#define BREATHING_PERIOD 6
-#endif
-
-#define breathing_min() do {breathing_counter = 0;} while (0)
-#define breathing_max() do {breathing_counter = breathing_period * 244 / 2;} while (0)
-
-// TODO make this share code with quantum.c
-
-#define BREATHING_NO_HALT 0
-#define BREATHING_HALT_OFF 1
-#define BREATHING_HALT_ON 2
-#define BREATHING_STEPS 128
-
-static uint8_t breathing_period = BREATHING_PERIOD;
-static uint8_t breathing_halt = BREATHING_NO_HALT;
-static uint16_t breathing_counter = 0;
-
-static bool breathing = false;
-
-bool is_breathing(void) {
- return breathing;
-}
-
-// See http://jared.geek.nz/2013/feb/linear-led-pwm
-static uint16_t cie_lightness(uint16_t v) {
- if (v <= 5243) // if below 8% of max
- return v / 9; // same as dividing by 900%
- else {
- uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
- // to get a useful result with integer division, we shift left in the expression above
- // and revert what we've done again after squaring.
- y = y * y * y >> 8;
- if (y > 0xFFFFUL) // prevent overflow
- return 0xFFFFU;
- else
- return (uint16_t) y;
- }
-}
-
-void breathing_enable(void) {
- breathing = true;
- breathing_counter = 0;
- breathing_halt = BREATHING_NO_HALT;
- // interrupt already registered
-}
-
-void breathing_pulse(void) {
- if (get_backlight_level() == 0)
- breathing_min();
- else
- breathing_max();
- breathing_halt = BREATHING_HALT_ON;
- // breathing_interrupt_enable();
- breathing = true;
-}
-
-void breathing_disable(void) {
- breathing = false;
- // backlight_set(get_backlight_level());
- b_led_set(get_backlight_level()); // custom implementation of backlight_set()
-}
-
-void breathing_self_disable(void)
-{
- if (get_backlight_level() == 0)
- breathing_halt = BREATHING_HALT_OFF;
- else
- breathing_halt = BREATHING_HALT_ON;
-}
-
-void breathing_toggle(void) {
- if (is_breathing())
- breathing_disable();
- else
- breathing_enable();
-}
-
-void breathing_period_set(uint8_t value)
-{
- if (!value)
- value = 1;
- breathing_period = value;
-}
-
-void breathing_period_default(void) {
- breathing_period_set(BREATHING_PERIOD);
-}
-
-void breathing_period_inc(void)
-{
- breathing_period_set(breathing_period+1);
-}
-
-void breathing_period_dec(void)
-{
- breathing_period_set(breathing_period-1);
-}
-
-/* To generate breathing curve in python:
- * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)]
- */
-static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-// Use this before the cie_lightness function.
-static inline uint16_t scale_backlight(uint16_t v) {
- return v / BACKLIGHT_LEVELS * get_backlight_level();
-}
-
-void custom_breathing_handler(void) {
- uint16_t interval = (uint16_t) breathing_period * 244 / BREATHING_STEPS;
- // resetting after one period to prevent ugly reset at overflow.
- breathing_counter = (breathing_counter + 1) % (breathing_period * 244);
- uint8_t index = breathing_counter / interval % BREATHING_STEPS;
-
- if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) ||
- ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1)))
- {
- // breathing_interrupt_disable();
- }
-
- setPWM(cie_lightness(scale_backlight((uint16_t) pgm_read_byte(&breathing_table[index]) * 0x0101U)));
-}
-
-#endif // BACKLIGHT_BREATHING
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/ymd75/config.h b/keyboards/ymd75/config.h
index 00f6bd292..88916be62 100644
--- a/keyboards/ymd75/config.h
+++ b/keyboards/ymd75/config.h
@@ -17,8 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#include "config_common.h"
@@ -39,6 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2, D7 }
#define DIODE_DIRECTION COL2ROW
+#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 12
#define RGB_DI_PIN E2
@@ -49,5 +49,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_VAL_STEP 18
#define NO_UART 1
-
-#endif
diff --git a/keyboards/ymd75/rules.mk b/keyboards/ymd75/rules.mk
index eb41e19cf..9d584b2b4 100644
--- a/keyboards/ymd75/rules.mk
+++ b/keyboards/ymd75/rules.mk
@@ -23,14 +23,8 @@ WS2812_DRIVER = i2c
NKRO_ENABLE = no
# Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-
DISABLE_WS2812 = no
KEY_LOCK_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-
-#OPT_DEFS = -DDEBUG_LEVEL=0
-
-SRC = backlight.c
diff --git a/keyboards/ymd75/ymd75.c b/keyboards/ymd75/ymd75.c
index e32a745bf..0870a6cc0 100644
--- a/keyboards/ymd75/ymd75.c
+++ b/keyboards/ymd75/ymd75.c
@@ -17,20 +17,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "ymd75.h"
-#include "backlight.h"
-#include "backlight_custom.h"
-
-#ifdef BACKLIGHT_ENABLE
-/// Overrides functions in `quantum.c`
-void backlight_init_ports(void) {
- b_led_init_ports();
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_task(void) {
- b_led_task();
+void led_init_ports(void) {
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- b_led_set(level);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/ymd96/backlight.c b/keyboards/ymd96/backlight.c
deleted file mode 100644
index f3f2b7a05..000000000
--- a/keyboards/ymd96/backlight.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#include "backlight.h"
-#include "quantum.h"
-
-#include <avr/pgmspace.h>
-#include <avr/interrupt.h>
-
-#include "backlight_custom.h"
-#include "breathing_custom.h"
-
-// DEBUG
-#include <stdlib.h>
-#include <stdio.h>
-
-// Port D: digital pins of the AVR chipset
-#define NUMLOCK_PORT (1 << 0) // 0th pin of Port D (digital)
-#define CAPSLOCK_PORT (1 << 1) // 1st pin
-#define BACKLIGHT_PORT (1 << 4) // D4
-//#define SCROLLLOCK_PORT (1 << 6) // D6
-
-#define TIMER_CLK_DIV64 0x03 ///< Timer clocked at F_CPU/64
-#define TIMER1PRESCALE TIMER_CLK_DIV64 ///< timer 1 prescaler default
-
-#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
-
-#define PWM_MAX 0xFF
-#define TIMER_TOP 255 // 8 bit PWM
-
-extern backlight_config_t backlight_config;
-
-/**
- * References
- * Port Registers: https://www.arduino.cc/en/Reference/PortManipulation
- * TCCR1A: https://electronics.stackexchange.com/questions/92350/what-is-the-difference-between-tccr1a-and-tccr1b
- * Timers: http://www.avrbeginners.net/architecture/timers/timers.html
- * 16-bit timer setup: http://sculland.com/ATmega168/Interrupts-And-Timers/16-Bit-Timer-Setup/
- * PS2AVRGB firmware: https://github.com/showjean/ps2avrU/tree/master/firmware
- */
-
-// @Override
-// turn LEDs on and off depending on USB caps/num/scroll lock states.
-__attribute__ ((weak))
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1 << USB_LED_NUM_LOCK)) {
- // turn on
- DDRD |= NUMLOCK_PORT;
- PORTD |= NUMLOCK_PORT;
- } else {
- // turn off
- DDRD &= ~NUMLOCK_PORT;
- PORTD &= ~NUMLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- DDRD |= CAPSLOCK_PORT;
- PORTD |= CAPSLOCK_PORT;
- } else {
- DDRD &= ~CAPSLOCK_PORT;
- PORTD &= ~CAPSLOCK_PORT;
- }
-
- /* YMD96 does not have scroll lock led
- if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
- DDRD |= SCROLLLOCK_PORT;
- PORTD |= SCROLLLOCK_PORT;
- } else {
- DDRD &= ~SCROLLLOCK_PORT;
- PORTD &= ~SCROLLLOCK_PORT;
- }*/
-}
-
-#ifdef BACKLIGHT_ENABLE
-
-// sets up Timer 1 for 8-bit PWM
-void timer1PWMSetup(void) { // NOTE ONLY CALL THIS ONCE
- // default 8 bit mode
- TCCR1A &= ~(1 << 1); // cbi(TCCR1A,PWM11); <- set PWM11 bit to HIGH
- TCCR1A |= (1 << 0); // sbi(TCCR1A,PWM10); <- set PWM10 bit to LOW
-
- // clear output compare value A
- // outb(OCR1AH, 0);
- // outb(OCR1AL, 0);
-
- // clear output comparator registers for B
- OCR1BH = 0; // outb(OCR1BH, 0);
- OCR1BL = 0; // outb(OCR1BL, 0);
-}
-
-bool is_init = false;
-void timer1Init(void) {
- // timer1SetPrescaler(TIMER1PRESCALE)
- // set to DIV/64
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | TIMER1PRESCALE;
-
- // reset TCNT1
- TCNT1H = 0; // outb(TCNT1H, 0);
- TCNT1L = 0; // outb(TCNT1L, 0);
-
- // TOIE1: Timer Overflow Interrupt Enable (Timer 1);
- TIMSK |= _BV(TOIE1); // sbi(TIMSK, TOIE1);
-
- is_init = true;
-}
-
-void timer1UnInit(void) {
- // set prescaler back to NONE
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | 0x00; // TIMERRTC_CLK_STOP
-
- // disable timer overflow interrupt
- TIMSK &= ~_BV(TOIE1); // overflow bit?
-
- setPWM(0);
-
- is_init = false;
-}
-
-
-// handle TCNT1 overflow
-//! Interrupt handler for tcnt1 overflow interrupt
-ISR(TIMER1_OVF_vect, ISR_NOBLOCK)
-{
- // sei();
- // handle breathing here
- #ifdef BACKLIGHT_BREATHING
- if (is_breathing()) {
- custom_breathing_handler();
- }
- #endif
-
- // TODO call user defined function
-}
-
-// enable timer 1 PWM
-// timer1PWMBOn()
-void timer1PWMBEnable(void) {
- // turn on channel B (OC1B) PWM output
- // set OC1B as non-inverted PWM
- TCCR1A |= _BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-// disable timer 1 PWM
-// timer1PWMBOff()
-void timer1PWMBDisable(void) {
- TCCR1A &= ~_BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-void enableBacklight(void) {
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
-}
-
-void disableBacklight(void) {
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
-}
-
-void startPWM(void) {
- timer1Init();
- timer1PWMBEnable();
- enableBacklight();
-}
-
-void stopPWM(void) {
- timer1UnInit();
- disableBacklight();
- timer1PWMBDisable();
-}
-
-void b_led_init_ports(void) {
- /* turn backlight on/off depending on user preference */
- #if BACKLIGHT_ON_STATE == 0
- // DDRx register: sets the direction of Port D
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
- #else
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
- #endif
-
- timer1PWMSetup();
- startPWM();
-
- #ifdef BACKLIGHT_BREATHING
- breathing_enable();
- #endif
-}
-
-void b_led_set(uint8_t level) {
- if (level > BACKLIGHT_LEVELS) {
- level = BACKLIGHT_LEVELS;
- }
-
- setPWM((int)(TIMER_TOP * (float) level / BACKLIGHT_LEVELS));
-}
-
-// called every matrix scan
-void b_led_task(void) {
- // do nothing for now
-}
-
-void setPWM(uint16_t xValue) {
- if (xValue > TIMER_TOP) {
- xValue = TIMER_TOP;
- }
- OCR1B = xValue; // timer1PWMBSet(xValue);
-}
-
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/ymd96/backlight_custom.h b/keyboards/ymd96/backlight_custom.h
deleted file mode 100644
index 7210be840..000000000
--- a/keyboards/ymd96/backlight_custom.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifndef BACKLIGHT_CUSTOM_H
-#define BACKLIGHT_CUSTOM_H
-
-#include <avr/pgmspace.h>
-void b_led_init_ports(void);
-void b_led_set(uint8_t level);
-void b_led_task(void);
-void setPWM(uint16_t xValue);
-
-#endif // BACKLIGHT_CUSTOM_H
diff --git a/keyboards/ymd96/breathing_custom.h b/keyboards/ymd96/breathing_custom.h
deleted file mode 100644
index 71416b1b4..000000000
--- a/keyboards/ymd96/breathing_custom.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Breathing effect code for PS2AVRGB boards (ATMEGA32A)
- * Works in conjunction with `backlight.c`.
- *
- * Code adapted from `quantum.c` to register with the existing TIMER1 overflow
- * handler in `backlight.c` instead of setting up its own timer.
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifdef BACKLIGHT_ENABLE
-#ifdef BACKLIGHT_BREATHING
-
-#include "backlight_custom.h"
-
-#ifndef BREATHING_PERIOD
-#define BREATHING_PERIOD 6
-#endif
-
-#define breathing_min() do {breathing_counter = 0;} while (0)
-#define breathing_max() do {breathing_counter = breathing_period * 244 / 2;} while (0)
-
-// TODO make this share code with quantum.c
-
-#define BREATHING_NO_HALT 0
-#define BREATHING_HALT_OFF 1
-#define BREATHING_HALT_ON 2
-#define BREATHING_STEPS 128
-
-static uint8_t breathing_period = BREATHING_PERIOD;
-static uint8_t breathing_halt = BREATHING_NO_HALT;
-static uint16_t breathing_counter = 0;
-
-static bool breathing = false;
-
-bool is_breathing(void) {
- return breathing;
-}
-
-// See http://jared.geek.nz/2013/feb/linear-led-pwm
-static uint16_t cie_lightness(uint16_t v) {
- if (v <= 5243) // if below 8% of max
- return v / 9; // same as dividing by 900%
- else {
- uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
- // to get a useful result with integer division, we shift left in the expression above
- // and revert what we've done again after squaring.
- y = y * y * y >> 8;
- if (y > 0xFFFFUL) // prevent overflow
- return 0xFFFFU;
- else
- return (uint16_t) y;
- }
-}
-
-void breathing_enable(void) {
- breathing = true;
- breathing_counter = 0;
- breathing_halt = BREATHING_NO_HALT;
- // interrupt already registered
-}
-
-void breathing_pulse(void) {
- if (get_backlight_level() == 0)
- breathing_min();
- else
- breathing_max();
- breathing_halt = BREATHING_HALT_ON;
- // breathing_interrupt_enable();
- breathing = true;
-}
-
-void breathing_disable(void) {
- breathing = false;
- // backlight_set(get_backlight_level());
- b_led_set(get_backlight_level()); // custom implementation of backlight_set()
-}
-
-void breathing_self_disable(void)
-{
- if (get_backlight_level() == 0)
- breathing_halt = BREATHING_HALT_OFF;
- else
- breathing_halt = BREATHING_HALT_ON;
-}
-
-void breathing_toggle(void) {
- if (is_breathing())
- breathing_disable();
- else
- breathing_enable();
-}
-
-void breathing_period_set(uint8_t value)
-{
- if (!value)
- value = 1;
- breathing_period = value;
-}
-
-void breathing_period_default(void) {
- breathing_period_set(BREATHING_PERIOD);
-}
-
-void breathing_period_inc(void)
-{
- breathing_period_set(breathing_period+1);
-}
-
-void breathing_period_dec(void)
-{
- breathing_period_set(breathing_period-1);
-}
-
-/* To generate breathing curve in python:
- * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)]
- */
-static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-// Use this before the cie_lightness function.
-static inline uint16_t scale_backlight(uint16_t v) {
- return v / BACKLIGHT_LEVELS * get_backlight_level();
-}
-
-void custom_breathing_handler(void) {
- uint16_t interval = (uint16_t) breathing_period * 244 / BREATHING_STEPS;
- // resetting after one period to prevent ugly reset at overflow.
- breathing_counter = (breathing_counter + 1) % (breathing_period * 244);
- uint8_t index = breathing_counter / interval % BREATHING_STEPS;
-
- if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) ||
- ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1)))
- {
- // breathing_interrupt_disable();
- }
-
- setPWM(cie_lightness(scale_backlight((uint16_t) pgm_read_byte(&breathing_table[index]) * 0x0101U)));
-}
-
-#endif // BACKLIGHT_BREATHING
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/ymd96/config.h b/keyboards/ymd96/config.h
index 1232f90c2..d761e6037 100644
--- a/keyboards/ymd96/config.h
+++ b/keyboards/ymd96/config.h
@@ -18,8 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#define VENDOR_ID 0x20A0
#define PRODUCT_ID 0x422D
@@ -38,8 +37,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
+#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 12
-// #define BACKLIGHT_BREATHING // works, but BL_TOGG might not work
+#define BACKLIGHT_BREATHING
#define TAPPING_TOGGLE 3
@@ -55,5 +55,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/*#define RGBLIGHT_VAL_STEP 20
#define NO_UART 1*/
-
-#endif
diff --git a/keyboards/ymd96/rules.mk b/keyboards/ymd96/rules.mk
index 3c892daab..b7571649b 100644
--- a/keyboards/ymd96/rules.mk
+++ b/keyboards/ymd96/rules.mk
@@ -19,7 +19,6 @@ CONSOLE_ENABLE = no
COMMAND_ENABLE = no
BACKLIGHT_ENABLE = yes
-BACKLIGHT_CUSTOM_DRIVER = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
@@ -30,5 +29,3 @@ KEY_LOCK_ENABLE = yes
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
OPT_DEFS = -DDEBUG_LEVEL=0
-
-SRC = backlight.c
diff --git a/keyboards/ymd96/ymd96.c b/keyboards/ymd96/ymd96.c
index eae84ade1..5841decda 100644
--- a/keyboards/ymd96/ymd96.c
+++ b/keyboards/ymd96/ymd96.c
@@ -18,20 +18,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "ymd96.h"
-#include "backlight.h"
-#include "backlight_custom.h"
-
-#ifdef BACKLIGHT_ENABLE
-/// Overrides functions in `quantum.c`
-void backlight_init_ports(void) {
- b_led_init_ports();
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_task(void) {
- b_led_task();
+void led_init_ports(void) {
+ setPinOutput(D0);
+ setPinOutput(D1);
}
-void backlight_set(uint8_t level) {
- b_led_set(level);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ writePin(D1, led_state.caps_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/ymdk/bface/bface.c b/keyboards/ymdk/bface/bface.c
index 8622fd523..b35b33376 100644
--- a/keyboards/ymdk/bface/bface.c
+++ b/keyboards/ymdk/bface/bface.c
@@ -16,26 +16,18 @@
*/
#include "quantum.h"
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
+}
-void keyboard_pre_init_kb(void){
- //init the CAPS LOCK LED pin as an output
+void led_init_ports(void) {
setPinOutput(D1);
- //init the Backlight Pin as an output
- setPinOutput(D4);
- //call any user initialization code
- keyboard_pre_init_user();
}
-void led_set_kb(uint8_t usb_led){
- //control the caps lock LED
- if(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)){
- //set led pin to high
- writePinHigh(D1);
- } else {
- //set to low
- writePinLow(D1);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D1, led_state.caps_lock);
}
- //call any user LED functions
- led_set_user(usb_led);
+ return true;
}
-
diff --git a/keyboards/ymdk/bface/config.h b/keyboards/ymdk/bface/config.h
index 2273b7e84..a8c8a2149 100644
--- a/keyboards/ymdk/bface/config.h
+++ b/keyboards/ymdk/bface/config.h
@@ -40,5 +40,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 6
-
-
diff --git a/keyboards/ymdk/bface/rules.mk b/keyboards/ymdk/bface/rules.mk
index f6f026cf3..6320071ab 100644
--- a/keyboards/ymdk/bface/rules.mk
+++ b/keyboards/ymdk/bface/rules.mk
@@ -18,9 +18,6 @@ EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
-BACKLIGHT_CUSTOM_DRIVER = no
-BACKLIGHT_BREATHING = no
RGBLIGHT_ENABLE = no
-RGBLIGHT_CUSTOM_DRIVER = no
OPT_DEFS = -DDEBUG_LEVEL=0
diff --git a/keyboards/ymdk_np21/backlight.c b/keyboards/ymdk_np21/backlight.c
deleted file mode 100644
index fbd241fa9..000000000
--- a/keyboards/ymdk_np21/backlight.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#include "backlight.h"
-#include "quantum.h"
-
-#include <avr/pgmspace.h>
-#include <avr/interrupt.h>
-
-#include "backlight_custom.h"
-#include "breathing_custom.h"
-
-// DEBUG
-#include <stdlib.h>
-#include <stdio.h>
-
-// Port D: digital pins of the AVR chipset
-#define NUMLOCK_PORT (1 << 0) // D0
-#define CAPSLOCK_PORT (1 << 1) // D1
-#define BACKLIGHT_PORT (1 << 4) // D4
-#define SCROLLLOCK_PORT (1 << 6) // D6
-
-#define TIMER_CLK_DIV64 0x03 ///< Timer clocked at F_CPU/64
-#define TIMER1PRESCALE TIMER_CLK_DIV64 ///< timer 1 prescaler default
-
-#define TIMER_PRESCALE_MASK 0x07 ///< Timer Prescaler Bit-Mask
-
-#define PWM_MAX 0xFF
-#define TIMER_TOP 255 // 8 bit PWM
-
-extern backlight_config_t backlight_config;
-
-/**
- * References
- * Port Registers: https://www.arduino.cc/en/Reference/PortManipulation
- * TCCR1A: https://electronics.stackexchange.com/questions/92350/what-is-the-difference-between-tccr1a-and-tccr1b
- * Timers: http://www.avrbeginners.net/architecture/timers/timers.html
- * 16-bit timer setup: http://sculland.com/ATmega168/Interrupts-And-Timers/16-Bit-Timer-Setup/
- * PS2AVRGB firmware: https://github.com/showjean/ps2avrU/tree/master/firmware
- */
-
-// @Override
-// turn LEDs on and off depending on USB caps/num/scroll lock states.
-__attribute__ ((weak))
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1 << USB_LED_NUM_LOCK)) {
- // turn on
- DDRD |= NUMLOCK_PORT;
- PORTD |= NUMLOCK_PORT;
- } else {
- // turn off
- DDRD &= ~NUMLOCK_PORT;
- PORTD &= ~NUMLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
- DDRD |= CAPSLOCK_PORT;
- PORTD |= CAPSLOCK_PORT;
- } else {
- DDRD &= ~CAPSLOCK_PORT;
- PORTD &= ~CAPSLOCK_PORT;
- }
-
- if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
- DDRD |= SCROLLLOCK_PORT;
- PORTD |= SCROLLLOCK_PORT;
- } else {
- DDRD &= ~SCROLLLOCK_PORT;
- PORTD &= ~SCROLLLOCK_PORT;
- }
-}
-
-#ifdef BACKLIGHT_ENABLE
-
-// sets up Timer 1 for 8-bit PWM
-void timer1PWMSetup(void) { // NOTE ONLY CALL THIS ONCE
- // default 8 bit mode
- TCCR1A &= ~(1 << 1); // cbi(TCCR1A,PWM11); <- set PWM11 bit to HIGH
- TCCR1A |= (1 << 0); // sbi(TCCR1A,PWM10); <- set PWM10 bit to LOW
-
- // clear output compare value A
- // outb(OCR1AH, 0);
- // outb(OCR1AL, 0);
-
- // clear output comparator registers for B
- OCR1BH = 0; // outb(OCR1BH, 0);
- OCR1BL = 0; // outb(OCR1BL, 0);
-}
-
-bool is_init = false;
-void timer1Init(void) {
- // timer1SetPrescaler(TIMER1PRESCALE)
- // set to DIV/64
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | TIMER1PRESCALE;
-
- // reset TCNT1
- TCNT1H = 0; // outb(TCNT1H, 0);
- TCNT1L = 0; // outb(TCNT1L, 0);
-
- // TOIE1: Timer Overflow Interrupt Enable (Timer 1);
- TIMSK |= _BV(TOIE1); // sbi(TIMSK, TOIE1);
-
- is_init = true;
-}
-
-void timer1UnInit(void) {
- // set prescaler back to NONE
- (TCCR1B) = ((TCCR1B) & ~TIMER_PRESCALE_MASK) | 0x00; // TIMERRTC_CLK_STOP
-
- // disable timer overflow interrupt
- TIMSK &= ~_BV(TOIE1); // overflow bit?
-
- setPWM(0);
-
- is_init = false;
-}
-
-
-// handle TCNT1 overflow
-//! Interrupt handler for tcnt1 overflow interrupt
-ISR(TIMER1_OVF_vect, ISR_NOBLOCK)
-{
- // sei();
- // handle breathing here
- #ifdef BACKLIGHT_BREATHING
- if (is_breathing()) {
- custom_breathing_handler();
- }
- #endif
-
- // TODO call user defined function
-}
-
-// enable timer 1 PWM
-// timer1PWMBOn()
-void timer1PWMBEnable(void) {
- // turn on channel B (OC1B) PWM output
- // set OC1B as non-inverted PWM
- TCCR1A |= _BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-// disable timer 1 PWM
-// timer1PWMBOff()
-void timer1PWMBDisable(void) {
- TCCR1A &= ~_BV(COM1B1);
- TCCR1A &= ~_BV(COM1B0);
-}
-
-void enableBacklight(void) {
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
-}
-
-void disableBacklight(void) {
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
-}
-
-void startPWM(void) {
- timer1Init();
- timer1PWMBEnable();
- enableBacklight();
-}
-
-void stopPWM(void) {
- timer1UnInit();
- disableBacklight();
- timer1PWMBDisable();
-}
-
-void b_led_init_ports(void) {
- /* turn backlight on/off depending on user preference */
- #if BACKLIGHT_ON_STATE == 0
- // DDRx register: sets the direction of Port D
- // DDRD &= ~BACKLIGHT_PORT; // set digital pin 4 as input
- PORTD &= ~BACKLIGHT_PORT; // set digital pin 4 to low
- #else
- DDRD |= BACKLIGHT_PORT; // set digital pin 4 as output
- PORTD |= BACKLIGHT_PORT; // set digital pin 4 to high
- #endif
-
- timer1PWMSetup();
- startPWM();
-
- #ifdef BACKLIGHT_BREATHING
- breathing_enable();
- #endif
-}
-
-void b_led_set(uint8_t level) {
- if (level > BACKLIGHT_LEVELS) {
- level = BACKLIGHT_LEVELS;
- }
-
- setPWM((int)(TIMER_TOP * (float) level / BACKLIGHT_LEVELS));
-}
-
-// called every matrix scan
-void b_led_task(void) {
- // do nothing for now
-}
-
-void setPWM(uint16_t xValue) {
- if (xValue > TIMER_TOP) {
- xValue = TIMER_TOP;
- }
- OCR1B = xValue; // timer1PWMBSet(xValue);
-}
-
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/ymdk_np21/backlight_custom.h b/keyboards/ymdk_np21/backlight_custom.h
deleted file mode 100644
index 7210be840..000000000
--- a/keyboards/ymdk_np21/backlight_custom.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Backlighting code for PS2AVRGB boards (ATMEGA32A)
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifndef BACKLIGHT_CUSTOM_H
-#define BACKLIGHT_CUSTOM_H
-
-#include <avr/pgmspace.h>
-void b_led_init_ports(void);
-void b_led_set(uint8_t level);
-void b_led_task(void);
-void setPWM(uint16_t xValue);
-
-#endif // BACKLIGHT_CUSTOM_H
diff --git a/keyboards/ymdk_np21/breathing_custom.h b/keyboards/ymdk_np21/breathing_custom.h
deleted file mode 100644
index 71416b1b4..000000000
--- a/keyboards/ymdk_np21/breathing_custom.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Breathing effect code for PS2AVRGB boards (ATMEGA32A)
- * Works in conjunction with `backlight.c`.
- *
- * Code adapted from `quantum.c` to register with the existing TIMER1 overflow
- * handler in `backlight.c` instead of setting up its own timer.
- * Kenneth A. (github.com/krusli | krusli.me)
- */
-
-#ifdef BACKLIGHT_ENABLE
-#ifdef BACKLIGHT_BREATHING
-
-#include "backlight_custom.h"
-
-#ifndef BREATHING_PERIOD
-#define BREATHING_PERIOD 6
-#endif
-
-#define breathing_min() do {breathing_counter = 0;} while (0)
-#define breathing_max() do {breathing_counter = breathing_period * 244 / 2;} while (0)
-
-// TODO make this share code with quantum.c
-
-#define BREATHING_NO_HALT 0
-#define BREATHING_HALT_OFF 1
-#define BREATHING_HALT_ON 2
-#define BREATHING_STEPS 128
-
-static uint8_t breathing_period = BREATHING_PERIOD;
-static uint8_t breathing_halt = BREATHING_NO_HALT;
-static uint16_t breathing_counter = 0;
-
-static bool breathing = false;
-
-bool is_breathing(void) {
- return breathing;
-}
-
-// See http://jared.geek.nz/2013/feb/linear-led-pwm
-static uint16_t cie_lightness(uint16_t v) {
- if (v <= 5243) // if below 8% of max
- return v / 9; // same as dividing by 900%
- else {
- uint32_t y = (((uint32_t) v + 10486) << 8) / (10486 + 0xFFFFUL); // add 16% of max and compare
- // to get a useful result with integer division, we shift left in the expression above
- // and revert what we've done again after squaring.
- y = y * y * y >> 8;
- if (y > 0xFFFFUL) // prevent overflow
- return 0xFFFFU;
- else
- return (uint16_t) y;
- }
-}
-
-void breathing_enable(void) {
- breathing = true;
- breathing_counter = 0;
- breathing_halt = BREATHING_NO_HALT;
- // interrupt already registered
-}
-
-void breathing_pulse(void) {
- if (get_backlight_level() == 0)
- breathing_min();
- else
- breathing_max();
- breathing_halt = BREATHING_HALT_ON;
- // breathing_interrupt_enable();
- breathing = true;
-}
-
-void breathing_disable(void) {
- breathing = false;
- // backlight_set(get_backlight_level());
- b_led_set(get_backlight_level()); // custom implementation of backlight_set()
-}
-
-void breathing_self_disable(void)
-{
- if (get_backlight_level() == 0)
- breathing_halt = BREATHING_HALT_OFF;
- else
- breathing_halt = BREATHING_HALT_ON;
-}
-
-void breathing_toggle(void) {
- if (is_breathing())
- breathing_disable();
- else
- breathing_enable();
-}
-
-void breathing_period_set(uint8_t value)
-{
- if (!value)
- value = 1;
- breathing_period = value;
-}
-
-void breathing_period_default(void) {
- breathing_period_set(BREATHING_PERIOD);
-}
-
-void breathing_period_inc(void)
-{
- breathing_period_set(breathing_period+1);
-}
-
-void breathing_period_dec(void)
-{
- breathing_period_set(breathing_period-1);
-}
-
-/* To generate breathing curve in python:
- * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)]
- */
-static const uint8_t breathing_table[BREATHING_STEPS] PROGMEM = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-// Use this before the cie_lightness function.
-static inline uint16_t scale_backlight(uint16_t v) {
- return v / BACKLIGHT_LEVELS * get_backlight_level();
-}
-
-void custom_breathing_handler(void) {
- uint16_t interval = (uint16_t) breathing_period * 244 / BREATHING_STEPS;
- // resetting after one period to prevent ugly reset at overflow.
- breathing_counter = (breathing_counter + 1) % (breathing_period * 244);
- uint8_t index = breathing_counter / interval % BREATHING_STEPS;
-
- if (((breathing_halt == BREATHING_HALT_ON) && (index == BREATHING_STEPS / 2)) ||
- ((breathing_halt == BREATHING_HALT_OFF) && (index == BREATHING_STEPS - 1)))
- {
- // breathing_interrupt_disable();
- }
-
- setPWM(cie_lightness(scale_backlight((uint16_t) pgm_read_byte(&breathing_table[index]) * 0x0101U)));
-}
-
-#endif // BACKLIGHT_BREATHING
-#endif // BACKLIGHT_ENABLE
diff --git a/keyboards/ymdk_np21/config.h b/keyboards/ymdk_np21/config.h
index 60c527776..91478d903 100644
--- a/keyboards/ymdk_np21/config.h
+++ b/keyboards/ymdk_np21/config.h
@@ -15,10 +15,9 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "config_common.h"
+#pragma once
-#ifndef CONFIG_H
-#define CONFIG_H
+#include "config_common.h"
#define VENDOR_ID 0x20A0
#define PRODUCT_ID 0x422D
@@ -37,8 +36,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
+#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 12
-// #define BACKLIGHT_BREATHING // works, but BL_TOGG might not work
+#define BACKLIGHT_BREATHING
#define TAPPING_TOGGLE 3
@@ -52,5 +52,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 5
#define RGB_DI_PIN E2 // NOTE: for PS2AVRGB boards, underglow commands are sent via I2C to 0xB0.
#define RGBLIGHT_ANIMATIONS
-
-#endif
diff --git a/keyboards/ymdk_np21/rules.mk b/keyboards/ymdk_np21/rules.mk
index 772bee928..237386bce 100644
--- a/keyboards/ymdk_np21/rules.mk
+++ b/keyboards/ymdk_np21/rules.mk
@@ -19,7 +19,6 @@ CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
-BACKLIGHT_CUSTOM_DRIVER = yes
RGBLIGHT_ENABLE = yes
WS2812_DRIVER = i2c
@@ -30,5 +29,3 @@ KEY_LOCK_ENABLE = yes
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
OPT_DEFS = -DDEBUG_LEVEL=0
-
-SRC = backlight.c
diff --git a/keyboards/ymdk_np21/ymdk_np21.c b/keyboards/ymdk_np21/ymdk_np21.c
index f2b3d46da..63812c936 100644
--- a/keyboards/ymdk_np21/ymdk_np21.c
+++ b/keyboards/ymdk_np21/ymdk_np21.c
@@ -18,20 +18,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "ymdk_np21.h"
-#include "backlight.h"
-#include "backlight_custom.h"
-
-#ifdef BACKLIGHT_ENABLE
-/// Overrides functions in `quantum.c`
-void backlight_init_ports(void) {
- b_led_init_ports();
+void keyboard_pre_init_kb(void) {
+ led_init_ports();
+ keyboard_pre_init_user();
}
-void backlight_task(void) {
- b_led_task();
+void led_init_ports(void) {
+ setPinOutput(D0);
}
-void backlight_set(uint8_t level) {
- b_led_set(level);
+bool led_update_kb(led_t led_state) {
+ if (led_update_user(led_state)) {
+ writePin(D0, led_state.num_lock);
+ }
+ return true;
}
-#endif
diff --git a/keyboards/yosino58/rules.mk b/keyboards/yosino58/rules.mk
index 5d3885fb2..57e06ed5f 100644
--- a/keyboards/yosino58/rules.mk
+++ b/keyboards/yosino58/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/z150_blackheart/rules.mk b/keyboards/z150_blackheart/rules.mk
index 150af8dab..739bea393 100644
--- a/keyboards/z150_blackheart/rules.mk
+++ b/keyboards/z150_blackheart/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = halfkay
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/zinc/keymaps/default/rules.mk b/keyboards/zinc/keymaps/default/rules.mk
index d2bc96e3a..c980f7d00 100644
--- a/keyboards/zinc/keymaps/default/rules.mk
+++ b/keyboards/zinc/keymaps/default/rules.mk
@@ -2,10 +2,10 @@
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/zinc/rules.mk b/keyboards/zinc/rules.mk
index d9d840c2d..63a8cc8fc 100644
--- a/keyboards/zinc/rules.mk
+++ b/keyboards/zinc/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = caterina
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = no # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/zj68/rules.mk b/keyboards/zj68/rules.mk
index 648553cc4..b4ed641be 100644
--- a/keyboards/zj68/rules.mk
+++ b/keyboards/zj68/rules.mk
@@ -15,10 +15,10 @@ BOOTLOADER = atmel-dfu
# comment out to disable the options.
#
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no
diff --git a/keyboards/zlant/rules.mk b/keyboards/zlant/rules.mk
index 82bc13c60..5221b4e33 100755
--- a/keyboards/zlant/rules.mk
+++ b/keyboards/zlant/rules.mk
@@ -14,10 +14,10 @@ BOOTLOADER = atmel-dfu
# Build Options
# comment out to disable the options.
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
+BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work