aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/feature_rgb_matrix.md13
-rw-r--r--keyboards/baguette/config.h1
-rw-r--r--keyboards/bakeneko80/config.h1
-rw-r--r--keyboards/bantam44/config.h1
-rw-r--r--keyboards/basekeys/slice/rev1/config.h1
-rw-r--r--keyboards/basekeys/slice/rev1_rgb/config.h1
-rw-r--r--keyboards/bat43/config.h1
-rwxr-xr-xkeyboards/bigseries/1key/config.h1
-rwxr-xr-xkeyboards/bigseries/2key/config.h1
-rwxr-xr-xkeyboards/bigseries/3key/config.h1
-rwxr-xr-xkeyboards/bigseries/4key/config.h1
-rw-r--r--keyboards/bioi/g60ble/config.h1
-rw-r--r--keyboards/blackplum/config.h1
-rw-r--r--keyboards/blockey/config.h1
-rw-r--r--keyboards/bm16a/config.h1
-rwxr-xr-xkeyboards/bm16s/config.h1
-rw-r--r--keyboards/bm43a/config.h1
-rw-r--r--keyboards/bm60rgb/config.h1
-rw-r--r--keyboards/boardsource/3x4/config.h1
-rw-r--r--keyboards/boardsource/4x12/config.h1
-rw-r--r--keyboards/boardsource/5x12/config.h1
-rw-r--r--keyboards/boardwalk/config.h1
-rw-r--r--keyboards/boston_meetup/config.h1
-rw-r--r--keyboards/botanicalkeyboards/fm2u/config.h1
-rw-r--r--keyboards/bpiphany/frosty_flake/config.h1
-rw-r--r--keyboards/bpiphany/pegasushoof/2013/config.h1
-rw-r--r--keyboards/bpiphany/pegasushoof/2015/config.h1
-rw-r--r--keyboards/bpiphany/sixshooter/config.h1
-rw-r--r--keyboards/bpiphany/tiger_lily/config.h1
-rw-r--r--keyboards/bpiphany/unloved_bastard/config.h1
-rw-r--r--keyboards/bthlabs/geekpad/config.h1
-rw-r--r--keyboards/business_card/alpha/config.h1
-rw-r--r--keyboards/business_card/beta/config.h1
-rw-r--r--keyboards/butterstick/config.h1
-rwxr-xr-xkeyboards/c39/config.h1
-rw-r--r--keyboards/cannonkeys/an_c/config.h1
-rw-r--r--keyboards/cannonkeys/atlas/config.h1
-rw-r--r--keyboards/cannonkeys/chimera65/config.h1
-rw-r--r--keyboards/cannonkeys/db60/config.h1
-rw-r--r--keyboards/cannonkeys/devastatingtkl/config.h1
-rw-r--r--keyboards/cannonkeys/instant60/config.h1
-rw-r--r--keyboards/cannonkeys/iron165/config.h1
-rw-r--r--keyboards/cannonkeys/obliterated75/config.h1
-rw-r--r--keyboards/cannonkeys/ortho48/config.h1
-rw-r--r--keyboards/cannonkeys/ortho60/config.h1
-rw-r--r--keyboards/cannonkeys/ortho75/config.h1
-rw-r--r--keyboards/cannonkeys/practice60/config.h1
-rw-r--r--keyboards/cannonkeys/practice65/config.h1
-rw-r--r--keyboards/cannonkeys/rekt1800/config.h1
-rw-r--r--keyboards/cannonkeys/satisfaction75/config.h1
-rw-r--r--keyboards/cannonkeys/savage65/config.h1
-rw-r--r--keyboards/cannonkeys/tmov2/config.h1
-rw-r--r--keyboards/catch22/config.h1
-rw-r--r--keyboards/centromere/config.h1
-rw-r--r--keyboards/cheshire/curiosity/config.h1
-rw-r--r--keyboards/chidori/config.h1
-rw-r--r--keyboards/chili/config.h1
-rw-r--r--keyboards/chimera_ergo/config.h1
-rw-r--r--keyboards/chimera_ls/config.h1
-rw-r--r--keyboards/chimera_ortho/config.h1
-rw-r--r--keyboards/chimera_ortho_plus/config.h1
-rw-r--r--keyboards/choc_taro/config.h1
-rw-r--r--keyboards/christmas_tree/config.h1
-rwxr-xr-xkeyboards/ckeys/handwire_101/config.h1
-rw-r--r--keyboards/ckeys/nakey/config.h1
-rw-r--r--keyboards/ckeys/obelus/config.h1
-rwxr-xr-xkeyboards/ckeys/thedora/config.h1
-rw-r--r--keyboards/ckeys/washington/config.h1
-rw-r--r--keyboards/claw44/rev1/config.h1
-rw-r--r--keyboards/clawsome/bookerboard/config.h1
-rw-r--r--keyboards/clawsome/coupe/config.h1
-rw-r--r--keyboards/clawsome/gamebuddy/config.h1
-rw-r--r--keyboards/clawsome/sedan/config.h1
-rw-r--r--keyboards/clawsome/sidekick/config.h1
-rw-r--r--keyboards/cocoa40/config.h1
-rw-r--r--keyboards/comet46/config.h1
-rwxr-xr-xkeyboards/contra/config.h1
-rw-r--r--keyboards/converter/adb_usb/config.h1
-rw-r--r--keyboards/converter/hp_46010a/config.h1
-rw-r--r--keyboards/converter/ibm_5291/config.h1
-rw-r--r--keyboards/converter/ibm_terminal/config.h1
-rw-r--r--keyboards/converter/m0110_usb/config.h1
-rw-r--r--keyboards/converter/m0110_usb/readme.md2
-rw-r--r--keyboards/converter/modelm101/config.h1
-rw-r--r--keyboards/converter/numeric_keypad_IIe/config.h1
-rw-r--r--keyboards/converter/palm_usb/config.h1
-rw-r--r--keyboards/converter/siemens_tastatur/config.h1
-rw-r--r--keyboards/converter/sun_usb/config.h1
-rw-r--r--keyboards/converter/usb_usb/ble/config.h2
-rw-r--r--keyboards/converter/usb_usb/config.h1
-rw-r--r--keyboards/converter/xt_usb/config.h1
-rw-r--r--keyboards/cool836a/config.h153
-rw-r--r--keyboards/cool836a/cool836a.c17
-rw-r--r--keyboards/cool836a/cool836a.h42
-rw-r--r--keyboards/cool836a/info.json19
-rw-r--r--keyboards/cool836a/keymaps/default/keymap.c41
-rw-r--r--keyboards/cool836a/keymaps/default/readme.md15
-rw-r--r--keyboards/cool836a/readme.md51
-rw-r--r--keyboards/cool836a/rules.mk22
-rwxr-xr-xkeyboards/copenhagen_click/click_pad_v1/config.h1
-rw-r--r--keyboards/coseyfannitutti/discipad/config.h1
-rw-r--r--keyboards/coseyfannitutti/discipline/config.h1
-rw-r--r--keyboards/coseyfannitutti/mullet/config.h1
-rw-r--r--keyboards/coseyfannitutti/mulletpad/config.h1
-rw-r--r--keyboards/coseyfannitutti/mysterium/config.h1
-rw-r--r--keyboards/coseyfannitutti/romeo/config.h1
-rw-r--r--keyboards/cospad/config.h1
-rwxr-xr-xkeyboards/crawlpad/config.h1
-rw-r--r--keyboards/cu24/config.h1
-rw-r--r--keyboards/cu75/config.h1
-rw-r--r--keyboards/cu80/config.h1
-rw-r--r--keyboards/cutie_club/borsdorf/info.json149
-rw-r--r--keyboards/cutie_club/wraith/config.h1
-rw-r--r--keyboards/daisy/config.h1
-rw-r--r--keyboards/dc01/arrow/config.h1
-rw-r--r--keyboards/dc01/left/config.h1
-rw-r--r--keyboards/dc01/numpad/config.h1
-rw-r--r--keyboards/dc01/right/config.h1
-rw-r--r--keyboards/deltasplit75/v2/config.h1
-rw-r--r--keyboards/dichotomy/config.h1
-rw-r--r--keyboards/diverge3/config.h1
-rw-r--r--keyboards/divergetm2/config.h1
-rw-r--r--keyboards/dm9records/ergoinu/config.h1
-rw-r--r--keyboards/dm9records/plaid/config.h1
-rw-r--r--keyboards/dm9records/tartan/config.h1
-rw-r--r--keyboards/dmqdesign/spin/config.h1
-rw-r--r--keyboards/do60/config.h1
-rw-r--r--keyboards/donutcables/scrabblepad/config.h1
-rw-r--r--keyboards/doppelganger/config.h1
-rw-r--r--keyboards/doro67/multi/config.h1
-rw-r--r--keyboards/doro67/regular/config.h1
-rw-r--r--keyboards/doro67/rgb/config.h1
-rw-r--r--keyboards/dozen0/config.h1
-rw-r--r--keyboards/dp60/config.h1
-rw-r--r--keyboards/duck/eagle_viper/v2/config.h1
-rw-r--r--keyboards/duck/jetfire/config.h1
-rw-r--r--keyboards/duck/lightsaver/config.h1
-rw-r--r--keyboards/duck/octagon/v1/config.h1
-rw-r--r--keyboards/duck/octagon/v2/config.h1
-rw-r--r--keyboards/duck/orion/v3/config.h1
-rw-r--r--keyboards/duck/tcv3/config.h1
-rw-r--r--keyboards/dumbpad/config.h1
-rw-r--r--keyboards/dz60/keymaps/LEdiodes/config.h1
-rw-r--r--keyboards/dztech/dz60rgb/v1/config.h1
-rw-r--r--keyboards/dztech/dz60rgb/v2/config.h1
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v1/config.h1
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v2/config.h1
-rw-r--r--keyboards/dztech/dz60rgb_wkl/v1/config.h1
-rw-r--r--keyboards/dztech/dz60rgb_wkl/v2/config.h1
-rw-r--r--keyboards/dztech/dz65rgb/v1/config.h1
-rw-r--r--keyboards/dztech/dz65rgb/v2/config.h1
-rw-r--r--keyboards/lily58/keymaps/domnantas/config.h36
-rw-r--r--keyboards/lily58/keymaps/domnantas/keymap.c284
-rw-r--r--keyboards/lily58/keymaps/domnantas/readme.md21
-rw-r--r--keyboards/lily58/keymaps/domnantas/rules.mk2
-rw-r--r--keyboards/ymdk/ymd09/keymaps/andys8/keymap.c65
-rw-r--r--quantum/rgb_matrix_animations/typing_heatmap_anim.h25
-rw-r--r--shell.nix2
-rw-r--r--tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h2
-rw-r--r--tmk_core/protocol/lufa/adafruit_ble.cpp45
-rw-r--r--tmk_core/protocol/lufa/adafruit_ble.h11
-rw-r--r--tmk_core/protocol/lufa/lufa.c2
162 files changed, 980 insertions, 180 deletions
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index bb0acba3b..e7ede4839 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -318,6 +318,19 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
318|`#define DISABLE_RGB_MATRIX_SOLID_SPLASH` |Disables `RGB_MATRIX_SOLID_SPLASH` | 318|`#define DISABLE_RGB_MATRIX_SOLID_SPLASH` |Disables `RGB_MATRIX_SOLID_SPLASH` |
319|`#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH` |Disables `RGB_MATRIX_SOLID_MULTISPLASH` | 319|`#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH` |Disables `RGB_MATRIX_SOLID_MULTISPLASH` |
320 320
321### RGB Matrix Effect Typing Heatmap :id=rgb-matrix-effect-typing-heatmap
322
323This effect will color the RGB matrix according to a heatmap of recently pressed
324keys. Whenever a key is pressed its "temperature" increases as well as that of
325its neighboring keys. The temperature of each key is then decreased
326automatically every 25 milliseconds by default.
327
328In order to change the delay of temperature decrease define
329`RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS`:
330
331```c
332#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
333```
321 334
322## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects 335## Custom RGB Matrix Effects :id=custom-rgb-matrix-effects
323 336
diff --git a/keyboards/baguette/config.h b/keyboards/baguette/config.h
index 6e3b00ac3..49d4b6e9f 100644
--- a/keyboards/baguette/config.h
+++ b/keyboards/baguette/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Yiancar 26#define MANUFACTURER Yiancar
27#define PRODUCT Baguette 27#define PRODUCT Baguette
28#define DESCRIPTION A French Custom
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/bakeneko80/config.h b/keyboards/bakeneko80/config.h
index 39d388a41..10fbac0b8 100644
--- a/keyboards/bakeneko80/config.h
+++ b/keyboards/bakeneko80/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Koichi Katano 26#define MANUFACTURER Koichi Katano
27#define PRODUCT Bakeneko 80 27#define PRODUCT Bakeneko 80
28#define DESCRIPTION Open source tenkeyless keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/bantam44/config.h b/keyboards/bantam44/config.h
index 5b1885d83..b468b28cc 100644
--- a/keyboards/bantam44/config.h
+++ b/keyboards/bantam44/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Bantam Keyboards 27#define MANUFACTURER Bantam Keyboards
28#define PRODUCT Bantam44 28#define PRODUCT Bantam44
29#define DESCRIPTION A custom keyboard
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 4 31#define MATRIX_ROWS 4
diff --git a/keyboards/basekeys/slice/rev1/config.h b/keyboards/basekeys/slice/rev1/config.h
index ea4d5d3dc..08c929b7b 100644
--- a/keyboards/basekeys/slice/rev1/config.h
+++ b/keyboards/basekeys/slice/rev1/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0002 23#define DEVICE_VER 0x0002
24#define MANUFACTURER 2Moons 24#define MANUFACTURER 2Moons
25#define PRODUCT Slice 25#define PRODUCT Slice
26#define DESCRIPTION A custom keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 10 28#define MATRIX_ROWS 10
diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h
index 08afff765..9f503a582 100644
--- a/keyboards/basekeys/slice/rev1_rgb/config.h
+++ b/keyboards/basekeys/slice/rev1_rgb/config.h
@@ -22,7 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22#define DEVICE_VER 0x0002 22#define DEVICE_VER 0x0002
23#define MANUFACTURER 2Moons 23#define MANUFACTURER 2Moons
24#define PRODUCT Slice RGB 24#define PRODUCT Slice RGB
25#define DESCRIPTION A custom keyboard
26 25
27/* key matrix size */ 26/* key matrix size */
28#define MATRIX_ROWS 10 27#define MATRIX_ROWS 10
diff --git a/keyboards/bat43/config.h b/keyboards/bat43/config.h
index aa8dc493e..e24c6d069 100644
--- a/keyboards/bat43/config.h
+++ b/keyboards/bat43/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER yfuku 26#define MANUFACTURER yfuku
27#define PRODUCT bat43 27#define PRODUCT bat43
28#define DESCRIPTION 43key keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/bigseries/1key/config.h b/keyboards/bigseries/1key/config.h
index 66a012472..f26b24212 100755
--- a/keyboards/bigseries/1key/config.h
+++ b/keyboards/bigseries/1key/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0002 25#define DEVICE_VER 0x0002
26#define MANUFACTURER WoodKeys.click 26#define MANUFACTURER WoodKeys.click
27#define PRODUCT BigSeries Single Keyboard 27#define PRODUCT BigSeries Single Keyboard
28#define DESCRIPTION Single key board for Novelkeys Big Series Switch
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 1 30#define MATRIX_ROWS 1
diff --git a/keyboards/bigseries/2key/config.h b/keyboards/bigseries/2key/config.h
index 535be27e7..4f75e2847 100755
--- a/keyboards/bigseries/2key/config.h
+++ b/keyboards/bigseries/2key/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0002 25#define DEVICE_VER 0x0002
26#define MANUFACTURER WoodKeys.click 26#define MANUFACTURER WoodKeys.click
27#define PRODUCT BigSeries Single Keyboard 27#define PRODUCT BigSeries Single Keyboard
28#define DESCRIPTION Single key board for Novelkeys Big Series Switch
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 1 30#define MATRIX_ROWS 1
diff --git a/keyboards/bigseries/3key/config.h b/keyboards/bigseries/3key/config.h
index faf166725..a4a369454 100755
--- a/keyboards/bigseries/3key/config.h
+++ b/keyboards/bigseries/3key/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER WoodKeys.click 26#define MANUFACTURER WoodKeys.click
27#define PRODUCT BigSeries Triple Keyboard 27#define PRODUCT BigSeries Triple Keyboard
28#define DESCRIPTION Triple key board for Novelkeys Big Series Switch
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 1 30#define MATRIX_ROWS 1
diff --git a/keyboards/bigseries/4key/config.h b/keyboards/bigseries/4key/config.h
index 79fdeb6ed..3e9653579 100755
--- a/keyboards/bigseries/4key/config.h
+++ b/keyboards/bigseries/4key/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0002 25#define DEVICE_VER 0x0002
26#define MANUFACTURER WoodKeys.click 26#define MANUFACTURER WoodKeys.click
27#define PRODUCT BigSeries Quad Keyboard 27#define PRODUCT BigSeries Quad Keyboard
28#define DESCRIPTION 4-key board for Novelkeys Big Series Switch
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 2 30#define MATRIX_ROWS 2
diff --git a/keyboards/bioi/g60ble/config.h b/keyboards/bioi/g60ble/config.h
index e7515ec89..4aa806eb4 100644
--- a/keyboards/bioi/g60ble/config.h
+++ b/keyboards/bioi/g60ble/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER Basic IO Instruments 9#define MANUFACTURER Basic IO Instruments
10#define PRODUCT BIOI G60 BLE 10#define PRODUCT BIOI G60 BLE
11#define DESCRIPTION BIOI G60 BLE
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h
index e74aba623..dc92f416f 100644
--- a/keyboards/blackplum/config.h
+++ b/keyboards/blackplum/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x1001 8#define DEVICE_VER 0x1001
9#define MANUFACTURER Pixlup 9#define MANUFACTURER Pixlup
10#define PRODUCT Blackplum Keeb 10#define PRODUCT Blackplum Keeb
11#define DESCRIPTION Blackplum 68 Percent Mechanical Keyboard
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 9 13#define MATRIX_ROWS 9
diff --git a/keyboards/blockey/config.h b/keyboards/blockey/config.h
index 8934fd63a..5b2090d3e 100644
--- a/keyboards/blockey/config.h
+++ b/keyboards/blockey/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Eucalyn 27#define MANUFACTURER Eucalyn
28#define PRODUCT Blockey 28#define PRODUCT Blockey
29#define DESCRIPTION A custom keyboard
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 10 31#define MATRIX_ROWS 10
diff --git a/keyboards/bm16a/config.h b/keyboards/bm16a/config.h
index 9d0812af2..37eeb25b4 100644
--- a/keyboards/bm16a/config.h
+++ b/keyboards/bm16a/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER KPrepublic 25#define MANUFACTURER KPrepublic
26#define PRODUCT bm16a 26#define PRODUCT bm16a
27#define DESCRIPTION KPrepublic bm16a
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 4 29#define MATRIX_ROWS 4
diff --git a/keyboards/bm16s/config.h b/keyboards/bm16s/config.h
index 83f5bbbe8..4ee57f351 100755
--- a/keyboards/bm16s/config.h
+++ b/keyboards/bm16s/config.h
@@ -7,7 +7,6 @@
7#define DEVICE_VER 0x0001 7#define DEVICE_VER 0x0001
8#define MANUFACTURER KPrepublic 8#define MANUFACTURER KPrepublic
9#define PRODUCT bm16s 9#define PRODUCT bm16s
10#define DESCRIPTION KPrepublic bm16s
11 10
12/* key matrix size */ 11/* key matrix size */
13#define MATRIX_ROWS 4 12#define MATRIX_ROWS 4
diff --git a/keyboards/bm43a/config.h b/keyboards/bm43a/config.h
index 538b2eadd..2ab84781b 100644
--- a/keyboards/bm43a/config.h
+++ b/keyboards/bm43a/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER KPRepublic 26#define MANUFACTURER KPRepublic
27#define PRODUCT BM43A 27#define PRODUCT BM43A
28#define DESCRIPTION A QMK-powered custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/bm60rgb/config.h b/keyboards/bm60rgb/config.h
index 816f356e8..3eee00e51 100644
--- a/keyboards/bm60rgb/config.h
+++ b/keyboards/bm60rgb/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER KP Republic 26#define MANUFACTURER KP Republic
27#define PRODUCT BM60 RGB 27#define PRODUCT BM60 RGB
28#define DESCRIPTION A 60% hotswap inswitch rgb board
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/boardsource/3x4/config.h b/keyboards/boardsource/3x4/config.h
index 93ce004ef..6f00004cb 100644
--- a/keyboards/boardsource/3x4/config.h
+++ b/keyboards/boardsource/3x4/config.h
@@ -10,7 +10,6 @@
10#define DEVICE_VER 0x0000 10#define DEVICE_VER 0x0000
11#define MANUFACTURER Boardsource 11#define MANUFACTURER Boardsource
12#define PRODUCT 3x4 12#define PRODUCT 3x4
13#define DESCRIPTION Little macro pad
14 13
15/* key matrix size */ 14/* key matrix size */
16#define MATRIX_ROWS 3 15#define MATRIX_ROWS 3
diff --git a/keyboards/boardsource/4x12/config.h b/keyboards/boardsource/4x12/config.h
index b1314ca7f..91aafd9b7 100644
--- a/keyboards/boardsource/4x12/config.h
+++ b/keyboards/boardsource/4x12/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0000 8#define DEVICE_VER 0x0000
9#define MANUFACTURER Boardsource 9#define MANUFACTURER Boardsource
10#define PRODUCT 4x12 10#define PRODUCT 4x12
11#define DESCRIPTION 40 percent ortho keyboard
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 4 13#define MATRIX_ROWS 4
diff --git a/keyboards/boardsource/5x12/config.h b/keyboards/boardsource/5x12/config.h
index 05a8ce2b0..edb522f37 100644
--- a/keyboards/boardsource/5x12/config.h
+++ b/keyboards/boardsource/5x12/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0000 8#define DEVICE_VER 0x0000
9#define MANUFACTURER Boardsource 9#define MANUFACTURER Boardsource
10#define PRODUCT 5x12 10#define PRODUCT 5x12
11#define DESCRIPTION 50 percent ortho keyboard
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/boardwalk/config.h b/keyboards/boardwalk/config.h
index e53b76afd..b98b70973 100644
--- a/keyboards/boardwalk/config.h
+++ b/keyboards/boardwalk/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER shensmobile 24#define MANUFACTURER shensmobile
25#define PRODUCT Boardwalk 25#define PRODUCT Boardwalk
26#define DESCRIPTION QMK keyboard firmware for Boardwalk
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/boston_meetup/config.h b/keyboards/boston_meetup/config.h
index b025e18df..013b0b148 100644
--- a/keyboards/boston_meetup/config.h
+++ b/keyboards/boston_meetup/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define PRODUCT_ID 0x26BE 24#define PRODUCT_ID 0x26BE
25#define MANUFACTURER ishtob 25#define MANUFACTURER ishtob
26#define PRODUCT Boston Meetup Board 26#define PRODUCT Boston Meetup Board
27#define DESCRIPTION A limited-run community meetup board
28 27
29//#define AUDIO_VOICES 28//#define AUDIO_VOICES
30 29
diff --git a/keyboards/botanicalkeyboards/fm2u/config.h b/keyboards/botanicalkeyboards/fm2u/config.h
index 944b7b3b2..87f865b63 100644
--- a/keyboards/botanicalkeyboards/fm2u/config.h
+++ b/keyboards/botanicalkeyboards/fm2u/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER botanicalkeyboards 26#define MANUFACTURER botanicalkeyboards
27#define PRODUCT fm2u 27#define PRODUCT fm2u
28#define DESCRIPTION A 1 key macropad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 1 30#define MATRIX_ROWS 1
diff --git a/keyboards/bpiphany/frosty_flake/config.h b/keyboards/bpiphany/frosty_flake/config.h
index 79bc31aec..344db5f0d 100644
--- a/keyboards/bpiphany/frosty_flake/config.h
+++ b/keyboards/bpiphany/frosty_flake/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Bathroom Epiphanies 27#define MANUFACTURER Bathroom Epiphanies
28#define PRODUCT frosty_flake 28#define PRODUCT frosty_flake
29#define DESCRIPTION Frosty Flake controller for the CM Storm Quick Fire Rapid
30 29
31/* 30/*
32 * Frosty Flake Rev. 20140521 made by Bathroom Ephiphanies 31 * Frosty Flake Rev. 20140521 made by Bathroom Ephiphanies
diff --git a/keyboards/bpiphany/pegasushoof/2013/config.h b/keyboards/bpiphany/pegasushoof/2013/config.h
index d2f81fedc..2573cecfc 100644
--- a/keyboards/bpiphany/pegasushoof/2013/config.h
+++ b/keyboards/bpiphany/pegasushoof/2013/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0104 24#define DEVICE_VER 0x0104
25#define MANUFACTURER Filco 25#define MANUFACTURER Filco
26#define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2013 26#define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2013
27#define DESCRIPTION QMK firmware for Majestouch TKL
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 8 29#define MATRIX_ROWS 8
diff --git a/keyboards/bpiphany/pegasushoof/2015/config.h b/keyboards/bpiphany/pegasushoof/2015/config.h
index 6edfa5993..479175c47 100644
--- a/keyboards/bpiphany/pegasushoof/2015/config.h
+++ b/keyboards/bpiphany/pegasushoof/2015/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0104 24#define DEVICE_VER 0x0104
25#define MANUFACTURER Filco 25#define MANUFACTURER Filco
26#define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2015 26#define PRODUCT Majestouch TKL \\w The Pegasus Hoof 2015
27#define DESCRIPTION QMK firmware for Majestouch TKL
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 8 29#define MATRIX_ROWS 8
diff --git a/keyboards/bpiphany/sixshooter/config.h b/keyboards/bpiphany/sixshooter/config.h
index c3ce8c884..0637e8d6b 100644
--- a/keyboards/bpiphany/sixshooter/config.h
+++ b/keyboards/bpiphany/sixshooter/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER bpiphany 9#define MANUFACTURER bpiphany
10#define PRODUCT sixshooter 10#define PRODUCT sixshooter
11#define DESCRIPTION A PCB for the CM Storm switch tester utilizing a Teensy 2.0.
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 2 13#define MATRIX_ROWS 2
diff --git a/keyboards/bpiphany/tiger_lily/config.h b/keyboards/bpiphany/tiger_lily/config.h
index d7eb42941..cc619a5b8 100644
--- a/keyboards/bpiphany/tiger_lily/config.h
+++ b/keyboards/bpiphany/tiger_lily/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Bathroom Epiphanies 27#define MANUFACTURER Bathroom Epiphanies
28#define PRODUCT tiger_lily 28#define PRODUCT tiger_lily
29#define DESCRIPTION Tiger Lily controller for the Filco Majestouch 2
30 29
31/* 30/*
32 * Frosty Flake Rev. 20140521 made by Bathroom Ephiphanies 31 * Frosty Flake Rev. 20140521 made by Bathroom Ephiphanies
diff --git a/keyboards/bpiphany/unloved_bastard/config.h b/keyboards/bpiphany/unloved_bastard/config.h
index e67ca658f..f1dc87d72 100644
--- a/keyboards/bpiphany/unloved_bastard/config.h
+++ b/keyboards/bpiphany/unloved_bastard/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER BathroomEpiphanies 27#define MANUFACTURER BathroomEpiphanies
28#define PRODUCT Unloved Bastard 28#define PRODUCT Unloved Bastard
29#define DESCRIPTION Unloved Bastard controller for CM Masterkeys S
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 8 31#define MATRIX_ROWS 8
diff --git a/keyboards/bthlabs/geekpad/config.h b/keyboards/bthlabs/geekpad/config.h
index 0d33bb89a..19620ffbb 100644
--- a/keyboards/bthlabs/geekpad/config.h
+++ b/keyboards/bthlabs/geekpad/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER BTHLabs 26#define MANUFACTURER BTHLabs
27#define PRODUCT GeekPad 27#define PRODUCT GeekPad
28#define DESCRIPTION 3x3 custom macro pad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 3 30#define MATRIX_ROWS 3
diff --git a/keyboards/business_card/alpha/config.h b/keyboards/business_card/alpha/config.h
index fbb4054ec..13f49c372 100644
--- a/keyboards/business_card/alpha/config.h
+++ b/keyboards/business_card/alpha/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER kakunpc 26#define MANUFACTURER kakunpc
27#define PRODUCT business_card 27#define PRODUCT business_card
28#define DESCRIPTION A custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 2 30#define MATRIX_ROWS 2
diff --git a/keyboards/business_card/beta/config.h b/keyboards/business_card/beta/config.h
index b9e0120f3..4532f8431 100644
--- a/keyboards/business_card/beta/config.h
+++ b/keyboards/business_card/beta/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER kakunpc 26#define MANUFACTURER kakunpc
27#define PRODUCT business_card 27#define PRODUCT business_card
28#define DESCRIPTION A custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 3 30#define MATRIX_ROWS 3
diff --git a/keyboards/butterstick/config.h b/keyboards/butterstick/config.h
index 90875d2ee..69632cd4f 100644
--- a/keyboards/butterstick/config.h
+++ b/keyboards/butterstick/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER g Heavy Industries 9#define MANUFACTURER g Heavy Industries
10#define PRODUCT Butter Stick 10#define PRODUCT Butter Stick
11#define DESCRIPTION Its a stick of butter
12#define VERSION "Paula Deen" 11#define VERSION "Paula Deen"
13 12
14#define DEBOUNCE 5 13#define DEBOUNCE 5
diff --git a/keyboards/c39/config.h b/keyboards/c39/config.h
index 3adc79670..fb7172c57 100755
--- a/keyboards/c39/config.h
+++ b/keyboards/c39/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maple Computing 26#define MANUFACTURER Maple Computing
27#define PRODUCT C39 27#define PRODUCT C39
28#define DESCRIPTION A compact 39 key keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 3 30#define MATRIX_ROWS 3
diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h
index 0eb1d730f..922ea37b2 100644
--- a/keyboards/cannonkeys/an_c/config.h
+++ b/keyboards/cannonkeys/an_c/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT AN-C 25#define PRODUCT AN-C
26#define DESCRIPTION AN-C Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h
index 4dfd445c8..72ee927e2 100644
--- a/keyboards/cannonkeys/atlas/config.h
+++ b/keyboards/cannonkeys/atlas/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Atlas 25#define PRODUCT Atlas
26#define DESCRIPTION Atlas Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/chimera65/config.h b/keyboards/cannonkeys/chimera65/config.h
index d4338fb0a..f7108264a 100644
--- a/keyboards/cannonkeys/chimera65/config.h
+++ b/keyboards/cannonkeys/chimera65/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Chimera65 25#define PRODUCT Chimera65
26#define DESCRIPTION Chimera65 Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/db60/config.h b/keyboards/cannonkeys/db60/config.h
index 54995c6b2..449aa1457 100644
--- a/keyboards/cannonkeys/db60/config.h
+++ b/keyboards/cannonkeys/db60/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24 24
25#define MANUFACTURER CannonKeys 25#define MANUFACTURER CannonKeys
26#define PRODUCT DB60 26#define PRODUCT DB60
27#define DESCRIPTION DB60 Keyboard
28 27
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
30#define MATRIX_COLS 15 29#define MATRIX_COLS 15
diff --git a/keyboards/cannonkeys/devastatingtkl/config.h b/keyboards/cannonkeys/devastatingtkl/config.h
index 8f589bf12..15c0d4e35 100644
--- a/keyboards/cannonkeys/devastatingtkl/config.h
+++ b/keyboards/cannonkeys/devastatingtkl/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT DevastatingTKL 25#define PRODUCT DevastatingTKL
26#define DESCRIPTION Devastating Keyboard
27 26
28#define MATRIX_ROWS 6 27#define MATRIX_ROWS 6
29#define MATRIX_COLS 18 28#define MATRIX_COLS 18
diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h
index 73b2ad533..bd0ae3160 100644
--- a/keyboards/cannonkeys/instant60/config.h
+++ b/keyboards/cannonkeys/instant60/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Instant60 25#define PRODUCT Instant60
26#define DESCRIPTION Instant 60 Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/iron165/config.h b/keyboards/cannonkeys/iron165/config.h
index a92883919..899e73bb9 100644
--- a/keyboards/cannonkeys/iron165/config.h
+++ b/keyboards/cannonkeys/iron165/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER SmithAndRune 24#define MANUFACTURER SmithAndRune
25#define PRODUCT Iron165 25#define PRODUCT Iron165
26#define DESCRIPTION Iron165 Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/obliterated75/config.h b/keyboards/cannonkeys/obliterated75/config.h
index bff3030b5..b2edfecd3 100644
--- a/keyboards/cannonkeys/obliterated75/config.h
+++ b/keyboards/cannonkeys/obliterated75/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Obliterated75 25#define PRODUCT Obliterated75
26#define DESCRIPTION Obliterated75 Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 6 28#define MATRIX_ROWS 6
diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h
index 634d2f6cf..35471484c 100644
--- a/keyboards/cannonkeys/ortho48/config.h
+++ b/keyboards/cannonkeys/ortho48/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER QMK 24#define MANUFACTURER QMK
25#define PRODUCT Ortho48 25#define PRODUCT Ortho48
26#define DESCRIPTION Ortho48
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 4 28#define MATRIX_ROWS 4
diff --git a/keyboards/cannonkeys/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h
index d21764c7f..36d92de76 100644
--- a/keyboards/cannonkeys/ortho60/config.h
+++ b/keyboards/cannonkeys/ortho60/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER QMK 24#define MANUFACTURER QMK
25#define PRODUCT Ortho60 25#define PRODUCT Ortho60
26#define DESCRIPTION Ortho60
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h
index 8c1882e65..e05bfba75 100644
--- a/keyboards/cannonkeys/ortho75/config.h
+++ b/keyboards/cannonkeys/ortho75/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Ortho75 25#define PRODUCT Ortho75
26#define DESCRIPTION Ortho75
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h
index 1e8e5ec7c..d89671f55 100644
--- a/keyboards/cannonkeys/practice60/config.h
+++ b/keyboards/cannonkeys/practice60/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Practice 60 25#define PRODUCT Practice 60
26#define DESCRIPTION Practice 60
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/practice65/config.h b/keyboards/cannonkeys/practice65/config.h
index d08d92e4c..69a2f859f 100644
--- a/keyboards/cannonkeys/practice65/config.h
+++ b/keyboards/cannonkeys/practice65/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Practice 65 25#define PRODUCT Practice 65
26#define DESCRIPTION Practice 65
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/rekt1800/config.h b/keyboards/cannonkeys/rekt1800/config.h
index 1fc60bef9..e6f7de2e8 100644
--- a/keyboards/cannonkeys/rekt1800/config.h
+++ b/keyboards/cannonkeys/rekt1800/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Rekt1800 25#define PRODUCT Rekt1800
26#define DESCRIPTION Rekt1800 Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 6 28#define MATRIX_ROWS 6
diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h
index 6a3598f8e..dfb624a0d 100644
--- a/keyboards/cannonkeys/satisfaction75/config.h
+++ b/keyboards/cannonkeys/satisfaction75/config.h
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29#define DEVICE_VER 0x0001 29#define DEVICE_VER 0x0001
30#define MANUFACTURER CannonKeys 30#define MANUFACTURER CannonKeys
31#define PRODUCT Satisfaction75 31#define PRODUCT Satisfaction75
32#define DESCRIPTION Satisfaction 75 Keyboard
33 32
34/* key matrix size */ 33/* key matrix size */
35#define MATRIX_ROWS 6 34#define MATRIX_ROWS 6
diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h
index 79931cdde..07672643e 100644
--- a/keyboards/cannonkeys/savage65/config.h
+++ b/keyboards/cannonkeys/savage65/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT Savage65 25#define PRODUCT Savage65
26#define DESCRIPTION Savage65 Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h
index c3c07bea1..5f44584e0 100644
--- a/keyboards/cannonkeys/tmov2/config.h
+++ b/keyboards/cannonkeys/tmov2/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER CannonKeys 24#define MANUFACTURER CannonKeys
25#define PRODUCT TMOv2 25#define PRODUCT TMOv2
26#define DESCRIPTION TMOv2 Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 4 28#define MATRIX_ROWS 4
diff --git a/keyboards/catch22/config.h b/keyboards/catch22/config.h
index 05c336a3f..5a3154dc4 100644
--- a/keyboards/catch22/config.h
+++ b/keyboards/catch22/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER rockydbull 25#define MANUFACTURER rockydbull
26#define PRODUCT Catch22 Hotswap Macropad 26#define PRODUCT Catch22 Hotswap Macropad
27#define DESCRIPTION Budget 22 Key Hotswap Macropad
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 5 29#define MATRIX_ROWS 5
diff --git a/keyboards/centromere/config.h b/keyboards/centromere/config.h
index c051843c5..0a908f60f 100644
--- a/keyboards/centromere/config.h
+++ b/keyboards/centromere/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Southpaw Design 27#define MANUFACTURER Southpaw Design
28#define PRODUCT centromere 28#define PRODUCT centromere
29#define DESCRIPTION Q.M.K. keyboard firmware for Centromere
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 5 31#define MATRIX_ROWS 5
diff --git a/keyboards/cheshire/curiosity/config.h b/keyboards/cheshire/curiosity/config.h
index 7dca470c5..7b9e61846 100644
--- a/keyboards/cheshire/curiosity/config.h
+++ b/keyboards/cheshire/curiosity/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Nightingale Studios/Cheshire Designs 26#define MANUFACTURER Nightingale Studios/Cheshire Designs
27#define PRODUCT Curiosity 27#define PRODUCT Curiosity
28#define DESCRIPTION Curiosity
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/chidori/config.h b/keyboards/chidori/config.h
index a0693e7f6..cbb14189a 100644
--- a/keyboards/chidori/config.h
+++ b/keyboards/chidori/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Kagizaraya 26#define MANUFACTURER Kagizaraya
27#define PRODUCT Chidori 27#define PRODUCT Chidori
28#define DESCRIPTION Yet another split keyboard made with only through - hole components
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 12 30#define MATRIX_ROWS 12
diff --git a/keyboards/chili/config.h b/keyboards/chili/config.h
index b12b97f00..9d6b3a9c3 100644
--- a/keyboards/chili/config.h
+++ b/keyboards/chili/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER YDKB 26#define MANUFACTURER YDKB
27#define PRODUCT Chili 27#define PRODUCT Chili
28#define DESCRIPTION QMK keyboard firmware for Chili, a G80-3000 replacement PCB
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 11 30#define MATRIX_ROWS 11
diff --git a/keyboards/chimera_ergo/config.h b/keyboards/chimera_ergo/config.h
index 4a47effdd..262f287a5 100644
--- a/keyboards/chimera_ergo/config.h
+++ b/keyboards/chimera_ergo/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define DEVICE_VER 0x0001 27#define DEVICE_VER 0x0001
28#define MANUFACTURER unknown 28#define MANUFACTURER unknown
29#define PRODUCT Chimera Ergo 29#define PRODUCT Chimera Ergo
30#define DESCRIPTION q.m.k. keyboard firmware for Chimera Ergo
31 30
32/* key matrix size */ 31/* key matrix size */
33#define MATRIX_ROWS 6 32#define MATRIX_ROWS 6
diff --git a/keyboards/chimera_ls/config.h b/keyboards/chimera_ls/config.h
index d7a21892a..87e919609 100644
--- a/keyboards/chimera_ls/config.h
+++ b/keyboards/chimera_ls/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define DEVICE_VER 0x0001 27#define DEVICE_VER 0x0001
28#define MANUFACTURER unknown 28#define MANUFACTURER unknown
29#define PRODUCT Chimera Lets Split 29#define PRODUCT Chimera Lets Split
30#define DESCRIPTION q.m.k. keyboard firmware for Chimera Lets Split
31 30
32/* key matrix size */ 31/* key matrix size */
33#define MATRIX_ROWS 5 32#define MATRIX_ROWS 5
diff --git a/keyboards/chimera_ortho/config.h b/keyboards/chimera_ortho/config.h
index 1282008e2..4ce70e68b 100644
--- a/keyboards/chimera_ortho/config.h
+++ b/keyboards/chimera_ortho/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define DEVICE_VER 0x0001 27#define DEVICE_VER 0x0001
28#define MANUFACTURER unknown 28#define MANUFACTURER unknown
29#define PRODUCT Chimera Ortho 29#define PRODUCT Chimera Ortho
30#define DESCRIPTION q.m.k. keyboard firmware for Chimera Ortho
31 30
32/* key matrix size */ 31/* key matrix size */
33#define MATRIX_ROWS 5 32#define MATRIX_ROWS 5
diff --git a/keyboards/chimera_ortho_plus/config.h b/keyboards/chimera_ortho_plus/config.h
index d47c1a764..e060e196a 100644
--- a/keyboards/chimera_ortho_plus/config.h
+++ b/keyboards/chimera_ortho_plus/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER unknown 27#define MANUFACTURER unknown
28#define PRODUCT Chimera Ortho Plus 28#define PRODUCT Chimera Ortho Plus
29#define DESCRIPTION q.m.k. keyboard firmware for Chimera Ortho Plus
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 6 31#define MATRIX_ROWS 6
diff --git a/keyboards/choc_taro/config.h b/keyboards/choc_taro/config.h
index acd11bf3b..9491ed39c 100644
--- a/keyboards/choc_taro/config.h
+++ b/keyboards/choc_taro/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER kakunpc 27#define MANUFACTURER kakunpc
28#define PRODUCT choc_taro 28#define PRODUCT choc_taro
29#define DESCRIPTION A custom keyboard
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 16 31#define MATRIX_ROWS 16
diff --git a/keyboards/christmas_tree/config.h b/keyboards/christmas_tree/config.h
index 66fccebdb..05e5bdb2b 100644
--- a/keyboards/christmas_tree/config.h
+++ b/keyboards/christmas_tree/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define PRODUCT_ID 0x3070 25#define PRODUCT_ID 0x3070
26#define MANUFACTURER Maple Computing 26#define MANUFACTURER Maple Computing
27#define PRODUCT Christmas Tree 27#define PRODUCT Christmas Tree
28#define DESCRIPTION A tiny 6 key macro pad, in the shape of a christmas tree
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/ckeys/handwire_101/config.h b/keyboards/ckeys/handwire_101/config.h
index 849f4f607..4c676089d 100755
--- a/keyboards/ckeys/handwire_101/config.h
+++ b/keyboards/ckeys/handwire_101/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER ckeys_handwire 26#define MANUFACTURER ckeys_handwire
27#define PRODUCT ckeys_handwire 27#define PRODUCT ckeys_handwire
28#define DESCRIPTION 4x4 handwire workshop board
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/ckeys/nakey/config.h b/keyboards/ckeys/nakey/config.h
index add3a3522..bb069bd51 100644
--- a/keyboards/ckeys/nakey/config.h
+++ b/keyboards/ckeys/nakey/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER cKeys 27#define MANUFACTURER cKeys
28#define PRODUCT naKey 28#define PRODUCT naKey
29#define DESCRIPTION The cKeys through hole ten key pad
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 5 31#define MATRIX_ROWS 5
diff --git a/keyboards/ckeys/obelus/config.h b/keyboards/ckeys/obelus/config.h
index 4d7afc4f5..eaf4811ba 100644
--- a/keyboards/ckeys/obelus/config.h
+++ b/keyboards/ckeys/obelus/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER You 27#define MANUFACTURER You
28#define PRODUCT obelus 28#define PRODUCT obelus
29#define DESCRIPTION 4x4 QMK test platform
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 4 31#define MATRIX_ROWS 4
diff --git a/keyboards/ckeys/thedora/config.h b/keyboards/ckeys/thedora/config.h
index a3d30c304..f70b237c8 100755
--- a/keyboards/ckeys/thedora/config.h
+++ b/keyboards/ckeys/thedora/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER ckeys 25#define MANUFACTURER ckeys
26#define PRODUCT thedora 26#define PRODUCT thedora
27#define DESCRIPTION A board for keyboard exploration.
28 27
29#define ENCODERS_PAD_A { B13 } 28#define ENCODERS_PAD_A { B13 }
30#define ENCODERS_PAD_B { B15 } 29#define ENCODERS_PAD_B { B15 }
diff --git a/keyboards/ckeys/washington/config.h b/keyboards/ckeys/washington/config.h
index e39fe0a96..0d145d148 100644
--- a/keyboards/ckeys/washington/config.h
+++ b/keyboards/ckeys/washington/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER merlin04 24#define MANUFACTURER merlin04
25#define PRODUCT Washington Macropad 25#define PRODUCT Washington Macropad
26#define DESCRIPTION Washington State shaped macropad
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 3 28#define MATRIX_ROWS 3
diff --git a/keyboards/claw44/rev1/config.h b/keyboards/claw44/rev1/config.h
index dc6e49dd9..2af45a46b 100644
--- a/keyboards/claw44/rev1/config.h
+++ b/keyboards/claw44/rev1/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER yfuku 25#define MANUFACTURER yfuku
26#define PRODUCT claw44 26#define PRODUCT claw44
27#define DESCRIPTION A split keyboard with 3x6 vertically staggered keys and 4 thumb keys
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 8 29#define MATRIX_ROWS 8
diff --git a/keyboards/clawsome/bookerboard/config.h b/keyboards/clawsome/bookerboard/config.h
index 19646e774..6619ef397 100644
--- a/keyboards/clawsome/bookerboard/config.h
+++ b/keyboards/clawsome/bookerboard/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AlisGraveNil 26#define MANUFACTURER AlisGraveNil
27#define PRODUCT Bookerboard 27#define PRODUCT Bookerboard
28#define DESCRIPTION A 12-key QMK-powered macropod
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/clawsome/coupe/config.h b/keyboards/clawsome/coupe/config.h
index 381f5cdc2..8d88c95f0 100644
--- a/keyboards/clawsome/coupe/config.h
+++ b/keyboards/clawsome/coupe/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AlisGraveNil 26#define MANUFACTURER AlisGraveNil
27#define PRODUCT The Coupe 27#define PRODUCT The Coupe
28#define DESCRIPTION A 61-key/60% QMK-powered custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 10 30#define MATRIX_ROWS 10
diff --git a/keyboards/clawsome/gamebuddy/config.h b/keyboards/clawsome/gamebuddy/config.h
index 822cc23ab..d5fad415f 100644
--- a/keyboards/clawsome/gamebuddy/config.h
+++ b/keyboards/clawsome/gamebuddy/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AlisGraveNil 26#define MANUFACTURER AlisGraveNil
27#define PRODUCT GameBuddy 27#define PRODUCT GameBuddy
28#define DESCRIPTION A 26-key QMK-powered macropad designed for gaming!
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/clawsome/sedan/config.h b/keyboards/clawsome/sedan/config.h
index 20d58d366..f93132eb7 100644
--- a/keyboards/clawsome/sedan/config.h
+++ b/keyboards/clawsome/sedan/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AlisGraveNil 26#define MANUFACTURER AlisGraveNil
27#define PRODUCT The Sedan 27#define PRODUCT The Sedan
28#define DESCRIPTION A QMK-powered 68% custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/clawsome/sidekick/config.h b/keyboards/clawsome/sidekick/config.h
index 933dde81e..dbf1f061e 100644
--- a/keyboards/clawsome/sidekick/config.h
+++ b/keyboards/clawsome/sidekick/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AlisGraveNil 26#define MANUFACTURER AlisGraveNil
27#define PRODUCT Sidekick 27#define PRODUCT Sidekick
28#define DESCRIPTION A 27-key QMK-powered macropad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/cocoa40/config.h b/keyboards/cocoa40/config.h
index 0dfa02aa6..50da34ffb 100644
--- a/keyboards/cocoa40/config.h
+++ b/keyboards/cocoa40/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER recompile keys 26#define MANUFACTURER recompile keys
27#define PRODUCT cocoa40 27#define PRODUCT cocoa40
28#define DESCRIPTION A 40% keyboard for programmers.
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/comet46/config.h b/keyboards/comet46/config.h
index c43f13a50..d50224eb6 100644
--- a/keyboards/comet46/config.h
+++ b/keyboards/comet46/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define DEVICE_VER 0x0001 27#define DEVICE_VER 0x0001
28#define MANUFACTURER SatT 28#define MANUFACTURER SatT
29#define PRODUCT Comet46 29#define PRODUCT Comet46
30#define DESCRIPTION qmk keyboard firmware for Comet46
31 30
32/* key matrix size */ 31/* key matrix size */
33#define MATRIX_ROWS 5 32#define MATRIX_ROWS 5
diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h
index f4b84af5a..8dc565546 100755
--- a/keyboards/contra/config.h
+++ b/keyboards/contra/config.h
@@ -9,7 +9,6 @@
9#define DEVICE_VER 0x0001 9#define DEVICE_VER 0x0001
10#define MANUFACTURER Cartel 10#define MANUFACTURER Cartel
11#define PRODUCT Contra 11#define PRODUCT Contra
12#define DESCRIPTION Keyboard
13 12
14/* key matrix size */ 13/* key matrix size */
15#define MATRIX_ROWS 4 14#define MATRIX_ROWS 4
diff --git a/keyboards/converter/adb_usb/config.h b/keyboards/converter/adb_usb/config.h
index a5845a029..92ce05f3d 100644
--- a/keyboards/converter/adb_usb/config.h
+++ b/keyboards/converter/adb_usb/config.h
@@ -24,7 +24,6 @@ Ported to QMK by Peter Roe <pete@13bit.me>
24#define DEVICE_VER 0x0101 24#define DEVICE_VER 0x0101
25#define MANUFACTURER QMK 25#define MANUFACTURER QMK
26#define PRODUCT ADB keyboard converter 26#define PRODUCT ADB keyboard converter
27#define DESCRIPTION Convert ADB keyboard to USB
28 27
29/* matrix size */ 28/* matrix size */
30#define MATRIX_ROWS 16 // keycode bit: 3-0 29#define MATRIX_ROWS 16 // keycode bit: 3-0
diff --git a/keyboards/converter/hp_46010a/config.h b/keyboards/converter/hp_46010a/config.h
index a1345c66d..91350bcb4 100644
--- a/keyboards/converter/hp_46010a/config.h
+++ b/keyboards/converter/hp_46010a/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER QMK 25#define MANUFACTURER QMK
26#define PRODUCT 46010A keyboard converter 26#define PRODUCT 46010A keyboard converter
27#define DESCRIPTION 46010A keyboard converter
28 27
29#define MATRIX_ROWS 14 28#define MATRIX_ROWS 14
30#define MATRIX_COLS 8 29#define MATRIX_COLS 8
diff --git a/keyboards/converter/ibm_5291/config.h b/keyboards/converter/ibm_5291/config.h
index f4c41d070..adf66cc69 100644
--- a/keyboards/converter/ibm_5291/config.h
+++ b/keyboards/converter/ibm_5291/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER QMK 25#define MANUFACTURER QMK
26#define PRODUCT 5291 keyboard converter 26#define PRODUCT 5291 keyboard converter
27#define DESCRIPTION 5291 keyboard converter
28 27
29#define MATRIX_ROWS 24 28#define MATRIX_ROWS 24
30#define MATRIX_COLS 4 29#define MATRIX_COLS 4
diff --git a/keyboards/converter/ibm_terminal/config.h b/keyboards/converter/ibm_terminal/config.h
index ba9ec82fa..5d8e5f813 100644
--- a/keyboards/converter/ibm_terminal/config.h
+++ b/keyboards/converter/ibm_terminal/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0100 25#define DEVICE_VER 0x0100
26#define MANUFACTURER QMK 26#define MANUFACTURER QMK
27#define PRODUCT IBM Terminal Keyboard 27#define PRODUCT IBM Terminal Keyboard
28#define DESCRIPTION USB converter for IBM Terminal Keyboard
29 28
30 29
31/* matrix size */ 30/* matrix size */
diff --git a/keyboards/converter/m0110_usb/config.h b/keyboards/converter/m0110_usb/config.h
index 02e4c30fb..f980217b8 100644
--- a/keyboards/converter/m0110_usb/config.h
+++ b/keyboards/converter/m0110_usb/config.h
@@ -26,7 +26,6 @@ Ported to QMK by Techsock <info@techsock.com>
26#define DEVICE_VER 0x0101 26#define DEVICE_VER 0x0101
27#define MANUFACTURER Apple 27#define MANUFACTURER Apple
28#define PRODUCT M0110(A) 28#define PRODUCT M0110(A)
29#define DESCRIPTION Converts M0110(A) to USB and/or BT
30 29
31/* matrix size */ 30/* matrix size */
32#define MATRIX_ROWS 14 31#define MATRIX_ROWS 14
diff --git a/keyboards/converter/m0110_usb/readme.md b/keyboards/converter/m0110_usb/readme.md
index 2e8a2eaef..a148091cd 100644
--- a/keyboards/converter/m0110_usb/readme.md
+++ b/keyboards/converter/m0110_usb/readme.md
@@ -5,7 +5,7 @@ This is a port of the original M0110 converter from TMK to QMK. The original con
5 5
6## Enabling Bluetooth for the Adafruit Feather 32U4 BLE 6## Enabling Bluetooth for the Adafruit Feather 32U4 BLE
7 7
8Simply add `BLUETOOTH = AdafruitBLE` to your `rules.mk` file. This enables code specifically for the Adafruit Feather 32U4 BLE. If enabled, the device will use the `PRODUCT` and `DESCRIPTION` values from `config.h` for the device name displayed by the Feather on host devices. You can simply change these values to change the device name. 8Simply add `BLUETOOTH = AdafruitBLE` to your `rules.mk` file. This enables code specifically for the Adafruit Feather 32U4 BLE. If enabled, the device will use the `PRODUCT` value from `config.h` for the device name displayed by the Feather on host devices. You can simply change these values to change the device name.
9 9
10 10
11## Pins 11## Pins
diff --git a/keyboards/converter/modelm101/config.h b/keyboards/converter/modelm101/config.h
index 958b29b74..7dcb82549 100644
--- a/keyboards/converter/modelm101/config.h
+++ b/keyboards/converter/modelm101/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER iw0rm3r 26#define MANUFACTURER iw0rm3r
27#define PRODUCT IBM Model M 101/102 27#define PRODUCT IBM Model M 101/102
28#define DESCRIPTION Controlled by AVR chip
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/converter/numeric_keypad_IIe/config.h b/keyboards/converter/numeric_keypad_IIe/config.h
index a129e1210..be21814f8 100644
--- a/keyboards/converter/numeric_keypad_IIe/config.h
+++ b/keyboards/converter/numeric_keypad_IIe/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Apple Inc. 26#define MANUFACTURER Apple Inc.
27#define PRODUCT Numeric Keypad IIe 27#define PRODUCT Numeric Keypad IIe
28#define DESCRIPTION "Numeric Keypad IIe, A2M2003"
29 28
30/* 29/*
31 30
diff --git a/keyboards/converter/palm_usb/config.h b/keyboards/converter/palm_usb/config.h
index 8414c47a7..4afc654e8 100644
--- a/keyboards/converter/palm_usb/config.h
+++ b/keyboards/converter/palm_usb/config.h
@@ -28,7 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define DEVICE_VER 0x0100 28#define DEVICE_VER 0x0100
29#define MANUFACTURER QMK 29#define MANUFACTURER QMK
30#define PRODUCT Stowaway converter 30#define PRODUCT Stowaway converter
31#define DESCRIPTION USB converter for Stowaway keyboard
32 31
33// IO pins to serial 32// IO pins to serial
34// https://deskthority.net/wiki/Arduino_Pro_Micro for pin lookup 33// https://deskthority.net/wiki/Arduino_Pro_Micro for pin lookup
diff --git a/keyboards/converter/siemens_tastatur/config.h b/keyboards/converter/siemens_tastatur/config.h
index bbb747152..ae6f1a209 100644
--- a/keyboards/converter/siemens_tastatur/config.h
+++ b/keyboards/converter/siemens_tastatur/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24 24
25#define MANUFACTURER Yiancar-Designs 25#define MANUFACTURER Yiancar-Designs
26#define PRODUCT Siemens Tastatur 26#define PRODUCT Siemens Tastatur
27#define DESCRIPTION Practice
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 4 29#define MATRIX_ROWS 4
diff --git a/keyboards/converter/sun_usb/config.h b/keyboards/converter/sun_usb/config.h
index 455d6423b..f073e61e4 100644
--- a/keyboards/converter/sun_usb/config.h
+++ b/keyboards/converter/sun_usb/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0100 23#define DEVICE_VER 0x0100
24#define MANUFACTURER QMK 24#define MANUFACTURER QMK
25#define PRODUCT Sun keyboard converter 25#define PRODUCT Sun keyboard converter
26#define DESCRIPTION USB converter for Sun type 5 keyboard
27 26
28/* matrix size */ 27/* matrix size */
29#define MATRIX_ROWS 16 28#define MATRIX_ROWS 16
diff --git a/keyboards/converter/usb_usb/ble/config.h b/keyboards/converter/usb_usb/ble/config.h
index 3bf3b2963..80e4968c4 100644
--- a/keyboards/converter/usb_usb/ble/config.h
+++ b/keyboards/converter/usb_usb/ble/config.h
@@ -2,8 +2,6 @@
2 2
3#undef PRODUCT 3#undef PRODUCT
4#define PRODUCT QMK BLE Adapter 4#define PRODUCT QMK BLE Adapter
5#undef DESCRIPTION
6#define DESCRIPTION
7 5
8// Turn off the mode leds on the BLE module 6// Turn off the mode leds on the BLE module
9#define ADAFRUIT_BLE_ENABLE_MODE_LEDS 0 7#define ADAFRUIT_BLE_ENABLE_MODE_LEDS 0
diff --git a/keyboards/converter/usb_usb/config.h b/keyboards/converter/usb_usb/config.h
index 7af895027..7ff8ceeeb 100644
--- a/keyboards/converter/usb_usb/config.h
+++ b/keyboards/converter/usb_usb/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER QMK 25#define MANUFACTURER QMK
26#define PRODUCT QMK USB-USB Converter 26#define PRODUCT QMK USB-USB Converter
27#define DESCRIPTION USB to USB Keyboard Converter with QMK
28 27
29/* size of virtual matrix */ 28/* size of virtual matrix */
30#define MATRIX_ROWS 16 29#define MATRIX_ROWS 16
diff --git a/keyboards/converter/xt_usb/config.h b/keyboards/converter/xt_usb/config.h
index fe7995387..e5624d843 100644
--- a/keyboards/converter/xt_usb/config.h
+++ b/keyboards/converter/xt_usb/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER QMK 25#define MANUFACTURER QMK
26#define PRODUCT XT keyboard converter 26#define PRODUCT XT keyboard converter
27#define DESCRIPTION convert XT keyboard to USB
28 27
29 28
30/* matrix size */ 29/* matrix size */
diff --git a/keyboards/cool836a/config.h b/keyboards/cool836a/config.h
new file mode 100644
index 000000000..3ac036786
--- /dev/null
+++ b/keyboards/cool836a/config.h
@@ -0,0 +1,153 @@
1/*
2Copyright 2021 Ohashi
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x0000
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Ohashi
27#define PRODUCT cool836A
28
29/* key matrix size */
30#define MATRIX_ROWS 6
31#define MATRIX_COLS 6
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42 */
43#define MATRIX_ROW_PINS { D1, B5, B4, F4, B1, B6 }
44#define MATRIX_COL_PINS { F5, D0, B2, C6, D7, E6 }
45#define UNUSED_PINS
46
47/* COL2ROW, ROW2COL */
48//#define DIODE_DIRECTION COL2ROW
49#define DIODE_DIRECTION ROW2COL
50
51/*
52 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
53 */
54#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
55
56//#define LED_NUM_LOCK_PIN B0
57//#define LED_CAPS_LOCK_PIN B1
58//#define LED_SCROLL_LOCK_PIN B2
59//#define LED_COMPOSE_PIN B3
60//#define LED_KANA_PIN B4
61
62//#define BACKLIGHT_PIN B7
63//#define BACKLIGHT_LEVELS 3
64//#define BACKLIGHT_BREATHING
65
66//#define RGB_DI_PIN E2
67//#ifdef RGB_DI_PIN
68//# define RGBLED_NUM 16
69//# define RGBLIGHT_HUE_STEP 8
70//# define RGBLIGHT_SAT_STEP 8
71//# define RGBLIGHT_VAL_STEP 8
72//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
73//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
74/*== all animations enable ==*/
75//# define RGBLIGHT_ANIMATIONS
76/*== or choose animations ==*/
77//# define RGBLIGHT_EFFECT_BREATHING
78//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
79//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
80//# define RGBLIGHT_EFFECT_SNAKE
81//# define RGBLIGHT_EFFECT_KNIGHT
82//# define RGBLIGHT_EFFECT_CHRISTMAS
83//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
84//# define RGBLIGHT_EFFECT_RGB_TEST
85//# define RGBLIGHT_EFFECT_ALTERNATING
86/*== customize breathing effect ==*/
87/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
88//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
89/*==== use exp() and sin() ====*/
90//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
91//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
92//#endif
93
94/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
95#define DEBOUNCE 5
96
97/* define if matrix has ghost (lacks anti-ghosting diodes) */
98//#define MATRIX_HAS_GHOST
99
100/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
101#define LOCKING_SUPPORT_ENABLE
102/* Locking resynchronize hack */
103#define LOCKING_RESYNC_ENABLE
104
105/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
106 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
107 */
108//#define GRAVE_ESC_CTRL_OVERRIDE
109
110/*
111 * Force NKRO
112 *
113 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
114 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
115 * makefile for this to work.)
116 *
117 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
118 * until the next keyboard reset.
119 *
120 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
121 * fully operational during normal computer usage.
122 *
123 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
124 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
125 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
126 * power-up.
127 *
128 */
129//#define FORCE_NKRO
130
131/*
132 * Feature disable options
133 * These options are also useful to firmware size reduction.
134 */
135
136/* disable debug print */
137//#define NO_DEBUG
138
139/* disable print */
140//#define NO_PRINT
141
142/* disable action features */
143//#define NO_ACTION_LAYER
144//#define NO_ACTION_TAPPING
145//#define NO_ACTION_ONESHOT
146
147/* disable these deprecated features by default */
148#define NO_ACTION_MACRO
149#define NO_ACTION_FUNCTION
150
151/* Bootmagic Lite key configuration */
152//#define BOOTMAGIC_LITE_ROW 0
153//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/cool836a/cool836a.c b/keyboards/cool836a/cool836a.c
new file mode 100644
index 000000000..5795bf954
--- /dev/null
+++ b/keyboards/cool836a/cool836a.c
@@ -0,0 +1,17 @@
1/* Copyright 2021 Ohashi
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "cool836a.h"
diff --git a/keyboards/cool836a/cool836a.h b/keyboards/cool836a/cool836a.h
new file mode 100644
index 000000000..08a036d4c
--- /dev/null
+++ b/keyboards/cool836a/cool836a.h
@@ -0,0 +1,42 @@
1/* Copyright 2021 Ohashi
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21/* This is a shortcut to help you visually see your layout.
22 *
23 * The first section contains all of the arguments representing the physical
24 * layout of the board and position of the keys.
25 *
26 * The second converts the arguments into a two-dimensional array which
27 * represents the switch matrix.
28 */
29
30#define LAYOUT( \
31 K000, K001, K002, K003, K004, K005, K300, K301, K302, K303, K304, K305, \
32 K100, K101, K102, K103, K104, K105, K400, K401, K402, K403, K404, K405, \
33 K200, K201, K202, K203, K204, K205, K500, K501, K502, K503, K504, K505 \
34) \
35{ \
36 { K000, K001, K002, K003, K004, K005 }, \
37 { K100, K101, K102, K103, K104, K105 }, \
38 { K200, K201, K202, K203, K204, K205 }, \
39 { K300, K301, K302, K303, K304, K305 }, \
40 { K400, K401, K402, K403, K404, K405 }, \
41 { K500, K501, K502, K503, K504, K505 }, \
42}
diff --git a/keyboards/cool836a/info.json b/keyboards/cool836a/info.json
new file mode 100644
index 000000000..01f996490
--- /dev/null
+++ b/keyboards/cool836a/info.json
@@ -0,0 +1,19 @@
1{
2 "keyboard_name": "cool836a",
3 "url": "https://github.com/telzo2000/cool836A",
4 "maintainer": "Ohashi",
5 "width": 12,
6 "height": 3,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"x": 0, "y": 0},{"x": 1, "y": 0},{"x": 2, "y": 0},{"x": 3, "y": 0},{"x": 4, "y": 0},{"x": 5, "y": 0},
11 {"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},
12 {"x": 0, "y": 1},{"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},
13 {"x": 8, "y": 1},{"x": 9, "y": 1},{"x": 10, "y": 1},{"x": 11, "y": 1},{"x": 12,"y": 1},{"x": 13,"y": 1},
14 {"x": 0, "y": 2},{"x": 2, "y": 2},{"x": 3, "y": 2},{"x": 4, "y": 2},{"x": 5, "y": 2},{"x": 6, "y": 2},
15 {"x": 7.5, "y": 2},{"x": 8.5, "y": 2},{"x": 9.5, "y": 2},{"x": 10.5, "y": 2},{"x": 11.5,"y": 2},{"x": 12.5,"y": 2}
16 ]
17 }
18 }
19}
diff --git a/keyboards/cool836a/keymaps/default/keymap.c b/keyboards/cool836a/keymaps/default/keymap.c
new file mode 100644
index 000000000..458cfba85
--- /dev/null
+++ b/keyboards/cool836a/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
1/* Copyright 2021 Ohashi
2*
3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 2 of the License, or
6* (at your option) any later version.
7*
8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details.
12*
13* You should have received a copy of the GNU General Public License
14* along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Base */
21 [0] = LAYOUT(
22 KC_ESC, LALT_T(KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
23 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_MINS, KC_ENTER,
24 KC_LSFT, KC_Z, GUI_T(KC_X), KC_C, LT(3, KC_V), LT(2, KC_B), KC_SPC, LT(1, KC_N), KC_M, KC_COMM, KC_DOT, KC_SPC
25 ),
26 [1] = LAYOUT(
27 KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
28 KC_LCTL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_MINS, KC_ASTR, KC_PSLS, KC_EQL, KC_ENTER,
29 KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SPC
30 ),
31 [2] = LAYOUT(
32 KC_TAB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC,
33 KC_LCTL, KC_LBRC, KC_RBRC, KC_BSLS, KC_SCLN, KC_COLN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_QUES, KC_ENTER,
34 KC_LSFT, KC_UNDS, KC_PIPE, KC_CIRC, KC_TILD, _______, _______, _______, _______, _______, _______, KC_SPC
35 ),
36 [3] = LAYOUT(
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LPRN, KC_RPRN, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 )
41};
diff --git a/keyboards/cool836a/keymaps/default/readme.md b/keyboards/cool836a/keymaps/default/readme.md
new file mode 100644
index 000000000..05a5d7fe3
--- /dev/null
+++ b/keyboards/cool836a/keymaps/default/readme.md
@@ -0,0 +1,15 @@
1# m.ki様によるデフォルトキーマップ
2
3[レッドバージョン ビルドガイド](https://github.com/telzo2000/cool836A/blob/master/buildguide_red.md)で紹介されていたキーマップです。チートシートを見ながらコードに書き写しました。
4
5-------
6## チートシート
7以下、[同ページ](https://github.com/telzo2000/cool836A/blob/master/buildguide_red.md)の画像のコピーを添付します。
8+ Layer=0
9![Layer=0](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_0.png)
10+ Layer=1
11![Layer=1](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_1.png)
12+ Layer=2
13![Layer=2](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_2.png)
14+ Layer=3
15![Layer=3](https://github.com/oha-Ohashi/qmk_firmware/blob/images/default_keymap/default_3.png)
diff --git a/keyboards/cool836a/readme.md b/keyboards/cool836a/readme.md
new file mode 100644
index 000000000..dd3ace3cb
--- /dev/null
+++ b/keyboards/cool836a/readme.md
@@ -0,0 +1,51 @@
1# cool836A
2
3- このプロジェクトの詳細については設計者たる[m.ki様](https://twitter.com/0002ozlet)による[GitHubリポジトリ](https://github.com/telzo2000/cool836A)の記述をご覧ください。
4
5### バージョン(A, B+, C+)について
6- m.ki様によるとどのバージョンも回路は同じで、ファームウェアを分ける必要はないとのことです。
7- しかしながらこのファームウェアは、cool836A ver.B+ (通称レッドバージョン)のみでテストされています(2021年1月7日現在)。そのため念のため、当面の間はサブフォルダの名前をcool836A/verB_REDとさせていただきます。
8- ほかのバージョンに書き込んだときに不具合等がありましたら、方はお気軽に私[オオハシ](https://twitter.com/oha_oha_Ohashi)までご連絡ください。
9
10
11## 申し訳程度のチュートリアル
12詳細に書き込む労力は払えませんでしたが、最低限のコードのみ記します。
13
14git clone のあと、
15
16``` make cool836A/verB_RED:default ```
17
18でコンパイル可能であることを確認し、
19
20``` make cool836A/verB_RED:default:avrdude ```
21
22によってデフォルトキーマップをPro Microに焼けるかもしれません。
23`default`の代わりに`Ohasheen`を利用することもできます。
24
25初心者の方はもっと素晴らしいウェブサイトでGitやqmk firmwareの使い方を覚えていただくのがよいかと思います。
26
27
28
29-----------------
30## English
31- [Here](https://github.com/telzo2000/cool836A) are a full description of this project and build guide by the great Designer: [m.ki](imgur.com image replace me!)
32
33- Each virsions(A, B+, C+) of cool836A has the same circuit and that means you can install this firmware on any of them.
34- However, this repository is currently(Jan 7, 2021) tested on ver.B+ (RED version) only. Feel free to contact [ME](https://github.com/ketcha-k) for any problems.
35
36- firmware maintainer: [Ohashi](https://github.com/ketcha-k)
37
38## Such a humble tutorial
39The author would like to provide a minimum guide.
40
41After cloning the repository, you may want to
42
43``` make cool836A/verB_RED ```
44
45to make sure it's compilable, and
46
47``` make cool836A/verB_RED:default ```
48
49which leads you to the goal.
50
51It is recommended that beginners learn how to get started with qmk firmware/configurator at other fantastic websites rather than here......
diff --git a/keyboards/cool836a/rules.mk b/keyboards/cool836a/rules.mk
new file mode 100644
index 000000000..5c0d8f307
--- /dev/null
+++ b/keyboards/cool836a/rules.mk
@@ -0,0 +1,22 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/copenhagen_click/click_pad_v1/config.h b/keyboards/copenhagen_click/click_pad_v1/config.h
index 51574d31d..50a237a05 100755
--- a/keyboards/copenhagen_click/click_pad_v1/config.h
+++ b/keyboards/copenhagen_click/click_pad_v1/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Copenhagen Click 26#define MANUFACTURER Copenhagen Click
27#define PRODUCT Click Pad V1 27#define PRODUCT Click Pad V1
28#define DESCRIPTION A single switch macropad given out at the Copenhagen Click 2019 meetup.
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 1 30#define MATRIX_ROWS 1
diff --git a/keyboards/coseyfannitutti/discipad/config.h b/keyboards/coseyfannitutti/discipad/config.h
index 035a0ac18..961f34aa9 100644
--- a/keyboards/coseyfannitutti/discipad/config.h
+++ b/keyboards/coseyfannitutti/discipad/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER coseyfannitutti 25#define MANUFACTURER coseyfannitutti
26#define PRODUCT DISCIPAD 26#define PRODUCT DISCIPAD
27#define DESCRIPTION 17-key numpad assembled with only through hole components
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 5 29#define MATRIX_ROWS 5
diff --git a/keyboards/coseyfannitutti/discipline/config.h b/keyboards/coseyfannitutti/discipline/config.h
index aba1ecaf2..7475bf09d 100644
--- a/keyboards/coseyfannitutti/discipline/config.h
+++ b/keyboards/coseyfannitutti/discipline/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER coseyfannitutti 24#define MANUFACTURER coseyfannitutti
25#define PRODUCT DISCIPLINE 25#define PRODUCT DISCIPLINE
26#define DESCRIPTION 65% keyboard that can be assembled with only through hole components
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/coseyfannitutti/mullet/config.h b/keyboards/coseyfannitutti/mullet/config.h
index 56460ce0b..1b5741c13 100644
--- a/keyboards/coseyfannitutti/mullet/config.h
+++ b/keyboards/coseyfannitutti/mullet/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER coseyfannitutti 26#define MANUFACTURER coseyfannitutti
27#define PRODUCT mullet 27#define PRODUCT mullet
28#define DESCRIPTION 65% keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/coseyfannitutti/mulletpad/config.h b/keyboards/coseyfannitutti/mulletpad/config.h
index a977be705..cdfe89121 100644
--- a/keyboards/coseyfannitutti/mulletpad/config.h
+++ b/keyboards/coseyfannitutti/mulletpad/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER coseyfannitutti 26#define MANUFACTURER coseyfannitutti
27#define PRODUCT mulletpad 27#define PRODUCT mulletpad
28#define DESCRIPTION numpad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/coseyfannitutti/mysterium/config.h b/keyboards/coseyfannitutti/mysterium/config.h
index 245eaab35..fc47a3973 100644
--- a/keyboards/coseyfannitutti/mysterium/config.h
+++ b/keyboards/coseyfannitutti/mysterium/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER coseyfannitutti 24#define MANUFACTURER coseyfannitutti
25#define PRODUCT MYSTERIUM 25#define PRODUCT MYSTERIUM
26#define DESCRIPTION TKL keyboard that can be assembled with only through hole components
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 6 28#define MATRIX_ROWS 6
diff --git a/keyboards/coseyfannitutti/romeo/config.h b/keyboards/coseyfannitutti/romeo/config.h
index a70d539ef..1a2d86d27 100644
--- a/keyboards/coseyfannitutti/romeo/config.h
+++ b/keyboards/coseyfannitutti/romeo/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER coseyfannitutti 25#define MANUFACTURER coseyfannitutti
26#define PRODUCT ROMEO 26#define PRODUCT ROMEO
27#define DESCRIPTION staggered layout 40% keyboard assembled with only through hole components
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 4 29#define MATRIX_ROWS 4
diff --git a/keyboards/cospad/config.h b/keyboards/cospad/config.h
index 648fa29a6..202374de4 100644
--- a/keyboards/cospad/config.h
+++ b/keyboards/cospad/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER KPrepublic 26#define MANUFACTURER KPrepublic
27#define PRODUCT Cospad 27#define PRODUCT Cospad
28#define DESCRIPTION 6x4 numpad with underglow and backlighting
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/crawlpad/config.h b/keyboards/crawlpad/config.h
index d51ad1744..d923fe0c2 100755
--- a/keyboards/crawlpad/config.h
+++ b/keyboards/crawlpad/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER WoodKeys.click 9#define MANUFACTURER WoodKeys.click
10#define PRODUCT CrawlPad 10#define PRODUCT CrawlPad
11#define DESCRIPTION ATX Keycrawl 2017
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 4 13#define MATRIX_ROWS 4
diff --git a/keyboards/cu24/config.h b/keyboards/cu24/config.h
index 7bb49816b..f7de28544 100644
--- a/keyboards/cu24/config.h
+++ b/keyboards/cu24/config.h
@@ -25,7 +25,6 @@
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Yiancar/CapsUnlocked 26#define MANUFACTURER Yiancar/CapsUnlocked
27#define PRODUCT CU24 27#define PRODUCT CU24
28#define DESCRIPTION A luxurious fully customisable numpad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/cu75/config.h b/keyboards/cu75/config.h
index e01f947a0..232a3a8eb 100644
--- a/keyboards/cu75/config.h
+++ b/keyboards/cu75/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER LFKeyboards/CapsUnlocked 26#define MANUFACTURER LFKeyboards/CapsUnlocked
27#define PRODUCT CU75 27#define PRODUCT CU75
28#define DESCRIPTION A luxurious fully customisable 75%
29 28
30#define DIODE_DIRECTION COL2ROW 29#define DIODE_DIRECTION COL2ROW
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/cu80/config.h b/keyboards/cu80/config.h
index 9c04a290f..d5123cdba 100644
--- a/keyboards/cu80/config.h
+++ b/keyboards/cu80/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER CapsUnlocked 26#define MANUFACTURER CapsUnlocked
27#define PRODUCT CU80 27#define PRODUCT CU80
28#define DESCRIPTION CU80
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/cutie_club/borsdorf/info.json b/keyboards/cutie_club/borsdorf/info.json
index cd9ece29f..51630da42 100644
--- a/keyboards/cutie_club/borsdorf/info.json
+++ b/keyboards/cutie_club/borsdorf/info.json
@@ -1,15 +1,158 @@
1{ 1{
2 "keyboard_name": "wraith", 2 "keyboard_name": "Borsdorf",
3 "url": "", 3 "url": "",
4 "maintainer": "Cutie Club", 4 "maintainer": "Cutie Club",
5 "width": 16.5, 5 "width": 16.5,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "layouts": {
8 "LAYOUT_all": { 8 "LAYOUT_all": {
9 "layout": [{"x":0, "y":0, "w":1.25}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.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.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0, "w":1.75}, {"x":15.5, "y":0}, {"x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":14, "y":1, "h":2}, {"x":15.5, "y":1}, {"x":0, "y":2, "w":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "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":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":14.5, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.5}, {"x":4.25, "y":4, "w":6.5}, {"x":10.75, "y":4, "w":1.5}, {"x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] 9 "layout": [
10 {"x":0, "y":0, "w":1.25},
11 {"x":1.25, "y":0},
12 {"x":2.25, "y":0},
13 {"x":3.25, "y":0},
14 {"x":4.25, "y":0},
15 {"x":5.25, "y":0},
16 {"x":6.25, "y":0},
17 {"x":7.25, "y":0},
18 {"x":8.25, "y":0},
19 {"x":9.25, "y":0},
20 {"x":10.25, "y":0},
21 {"x":11.25, "y":0},
22 {"x":12.25, "y":0},
23 {"x":13.25, "y":0, "w":1.75},
24 {"x":15.5, "y":0},
25
26 {"x":0, "y":1, "w":1.75},
27 {"x":1.75, "y":1},
28 {"x":2.75, "y":1},
29 {"x":3.75, "y":1},
30 {"x":4.75, "y":1},
31 {"x":5.75, "y":1},
32 {"x":6.75, "y":1},
33 {"x":7.75, "y":1},
34 {"x":8.75, "y":1},
35 {"x":9.75, "y":1},
36 {"x":10.75, "y":1},
37 {"x":11.75, "y":1},
38 {"x":12.75, "y":1},
39 {"x":15.5, "y":1},
40
41 {"x":0, "y":2, "w":2},
42 {"x":2, "y":2},
43 {"x":3, "y":2},
44 {"x":4, "y":2},
45 {"x":5, "y":2},
46 {"x":6, "y":2},
47 {"x":7, "y":2},
48 {"x":8, "y":2},
49 {"x":9, "y":2},
50 {"x":10, "y":2},
51 {"x":11, "y":2},
52 {"x":12, "y":2},
53 {"x":13, "y":2},
54 {"x":14, "y":1, "h":2},
55
56 {"x":0, "y":3, "w":1.5},
57 {"x":1.5, "y":3},
58 {"x":2.5, "y":3},
59 {"x":3.5, "y":3},
60 {"x":4.5, "y":3},
61 {"x":5.5, "y":3},
62 {"x":6.5, "y":3},
63 {"x":7.5, "y":3},
64 {"x":8.5, "y":3},
65 {"x":9.5, "y":3},
66 {"x":10.5, "y":3},
67 {"x":11.5, "y":3},
68 {"x":12.5, "y":3},
69 {"x":13.5, "y":3},
70 {"x":14.5, "y":3},
71
72 {"x":0, "y":4, "w":1.5},
73 {"x":1.5, "y":4, "w":1.25},
74 {"x":2.75, "y":4, "w":1.5},
75 {"x":4.25, "y":4, "w":6.5},
76 {"x":10.75, "y":4, "w":1.5},
77 {"x":12.25, "y":4, "w":1.25},
78 {"x":13.5, "y":4},
79 {"x":14.5, "y":4},
80 {"x":15.5, "y":4}
81 ]
10 }, 82 },
11 "LAYOUT_rshift": { 83 "LAYOUT_rshift": {
12 "layout": [{"x":0, "y":0, "w":1.25}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.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.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0, "w":1.75}, {"x":15.5, "y":0}, {"x":0, "y":1, "w":1.75}, {"x":1.75, "y":1}, {"x":2.75, "y":1}, {"x":3.75, "y":1}, {"x":4.75, "y":1}, {"x":5.75, "y":1}, {"x":6.75, "y":1}, {"x":7.75, "y":1}, {"x":8.75, "y":1}, {"x":9.75, "y":1}, {"x":10.75, "y":1}, {"x":11.75, "y":1}, {"x":12.75, "y":1}, {"x":14, "y":1, "h":2}, {"x":15.5, "y":1}, {"x":0, "y":2, "w":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "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":0, "y":3, "w":1.5}, {"x":1.5, "y":3}, {"x":2.5, "y":3}, {"x":3.5, "y":3}, {"x":4.5, "y":3}, {"x":5.5, "y":3}, {"x":6.5, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3, "w":2}, {"x":14.5, "y":3}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4, "w":1.25}, {"x":2.75, "y":4, "w":1.5}, {"x":4.25, "y":4, "w":6.5}, {"x":10.75, "y":4, "w":1.5}, {"x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4}] 84 "layout": [
85 {"x":0, "y":0, "w":1.25},
86 {"x":1.25, "y":0},
87 {"x":2.25, "y":0},
88 {"x":3.25, "y":0},
89 {"x":4.25, "y":0},
90 {"x":5.25, "y":0},
91 {"x":6.25, "y":0},
92 {"x":7.25, "y":0},
93 {"x":8.25, "y":0},
94 {"x":9.25, "y":0},
95 {"x":10.25, "y":0},
96 {"x":11.25, "y":0},
97 {"x":12.25, "y":0},
98 {"x":13.25, "y":0, "w":1.75},
99 {"x":15.5, "y":0},
100
101 {"x":0, "y":1, "w":1.75},
102 {"x":1.75, "y":1},
103 {"x":2.75, "y":1},
104 {"x":3.75, "y":1},
105 {"x":4.75, "y":1},
106 {"x":5.75, "y":1},
107 {"x":6.75, "y":1},
108 {"x":7.75, "y":1},
109 {"x":8.75, "y":1},
110 {"x":9.75, "y":1},
111 {"x":10.75, "y":1},
112 {"x":11.75, "y":1},
113 {"x":12.75, "y":1},
114 {"x":15.5, "y":1},
115
116 {"x":0, "y":2, "w":2},
117 {"x":2, "y":2},
118 {"x":3, "y":2},
119 {"x":4, "y":2},
120 {"x":5, "y":2},
121 {"x":6, "y":2},
122 {"x":7, "y":2},
123 {"x":8, "y":2},
124 {"x":9, "y":2},
125 {"x":10, "y":2},
126 {"x":11, "y":2},
127 {"x":12, "y":2},
128 {"x":13, "y":2},
129 {"x":14, "y":1, "h":2},
130
131 {"x":0, "y":3, "w":1.5},
132 {"x":1.5, "y":3},
133 {"x":2.5, "y":3},
134 {"x":3.5, "y":3},
135 {"x":4.5, "y":3},
136 {"x":5.5, "y":3},
137 {"x":6.5, "y":3},
138 {"x":7.5, "y":3},
139 {"x":8.5, "y":3},
140 {"x":9.5, "y":3},
141 {"x":10.5, "y":3},
142 {"x":11.5, "y":3},
143 {"x":12.5, "y":3, "w":2},
144 {"x":14.5, "y":3},
145
146 {"x":0, "y":4, "w":1.5},
147 {"x":1.5, "y":4, "w":1.25},
148 {"x":2.75, "y":4, "w":1.5},
149 {"x":4.25, "y":4, "w":6.5},
150 {"x":10.75, "y":4, "w":1.5},
151 {"x":12.25, "y":4, "w":1.25},
152 {"x":13.5, "y":4},
153 {"x":14.5, "y":4},
154 {"x":15.5, "y":4}
155 ]
13 } 156 }
14 } 157 }
15} 158}
diff --git a/keyboards/cutie_club/wraith/config.h b/keyboards/cutie_club/wraith/config.h
index e1d2d51d6..932e3fcff 100644
--- a/keyboards/cutie_club/wraith/config.h
+++ b/keyboards/cutie_club/wraith/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Amber 26#define MANUFACTURER Amber
27#define PRODUCT Wraith 27#define PRODUCT Wraith
28#define DESCRIPTION A WKL, 75% keyboard with staggered F-row.
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 12 30#define MATRIX_ROWS 12
diff --git a/keyboards/daisy/config.h b/keyboards/daisy/config.h
index 64b86a5b9..3402ea904 100644
--- a/keyboards/daisy/config.h
+++ b/keyboards/daisy/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0501 25#define DEVICE_VER 0x0501
26#define MANUFACTURER KTEC 26#define MANUFACTURER KTEC
27#define PRODUCT Daisy 27#define PRODUCT Daisy
28#define DESCRIPTION qmk port for Daisy
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/dc01/arrow/config.h b/keyboards/dc01/arrow/config.h
index 801dbb54d..4ab91c24b 100644
--- a/keyboards/dc01/arrow/config.h
+++ b/keyboards/dc01/arrow/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Mechboards 26#define MANUFACTURER Mechboards
27#define PRODUCT DC01 Arrow 27#define PRODUCT DC01 Arrow
28#define DESCRIPTION Arrow cluster of DC01 keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/dc01/left/config.h b/keyboards/dc01/left/config.h
index 26ad41a05..acad04474 100644
--- a/keyboards/dc01/left/config.h
+++ b/keyboards/dc01/left/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Mechboards 26#define MANUFACTURER Mechboards
27#define PRODUCT DC01 Left 27#define PRODUCT DC01 Left
28#define DESCRIPTION Left half of DC01 keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/dc01/numpad/config.h b/keyboards/dc01/numpad/config.h
index 2e91cfdd9..c238101ff 100644
--- a/keyboards/dc01/numpad/config.h
+++ b/keyboards/dc01/numpad/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Mechboards 26#define MANUFACTURER Mechboards
27#define PRODUCT DC01 Numpad 27#define PRODUCT DC01 Numpad
28#define DESCRIPTION Numpad of DC01 keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/dc01/right/config.h b/keyboards/dc01/right/config.h
index bbffb7814..6911519b8 100644
--- a/keyboards/dc01/right/config.h
+++ b/keyboards/dc01/right/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Mechboards 26#define MANUFACTURER Mechboards
27#define PRODUCT DC01 Right 27#define PRODUCT DC01 Right
28#define DESCRIPTION Right half of DC01 keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/deltasplit75/v2/config.h b/keyboards/deltasplit75/v2/config.h
index 844fcf43b..397683ce4 100644
--- a/keyboards/deltasplit75/v2/config.h
+++ b/keyboards/deltasplit75/v2/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER xyxjj 26#define MANUFACTURER xyxjj
27#define PRODUCT DeltaSplit75 27#define PRODUCT DeltaSplit75
28#define DESCRIPTION 75% split keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31// Rows are doubled-up 30// Rows are doubled-up
diff --git a/keyboards/dichotomy/config.h b/keyboards/dichotomy/config.h
index 2fc098fe3..05210198c 100644
--- a/keyboards/dichotomy/config.h
+++ b/keyboards/dichotomy/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define DEVICE_VER 0x0002 27#define DEVICE_VER 0x0002
28#define MANUFACTURER Broekhuijsen 28#define MANUFACTURER Broekhuijsen
29#define PRODUCT Dichotomy 29#define PRODUCT Dichotomy
30#define DESCRIPTION q.m.k. keyboard firmware for Dichotomy
31 30
32/* key matrix size */ 31/* key matrix size */
33#define MATRIX_ROWS 5 32#define MATRIX_ROWS 5
diff --git a/keyboards/diverge3/config.h b/keyboards/diverge3/config.h
index 96196667c..275d9493d 100644
--- a/keyboards/diverge3/config.h
+++ b/keyboards/diverge3/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER UniKeyboard 26#define MANUFACTURER UniKeyboard
27#define PRODUCT diverge3 27#define PRODUCT diverge3
28#define DESCRIPTION Split 72 key keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 10 30#define MATRIX_ROWS 10
diff --git a/keyboards/divergetm2/config.h b/keyboards/divergetm2/config.h
index 8ad948676..ee8372aa7 100644
--- a/keyboards/divergetm2/config.h
+++ b/keyboards/divergetm2/config.h
@@ -25,7 +25,6 @@
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER UniKeyboard 26#define MANUFACTURER UniKeyboard
27#define PRODUCT diverge tm2 27#define PRODUCT diverge tm2
28#define DESCRIPTION Split 46 key keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/dm9records/ergoinu/config.h b/keyboards/dm9records/ergoinu/config.h
index ce3bf1e78..113eaf9f7 100644
--- a/keyboards/dm9records/ergoinu/config.h
+++ b/keyboards/dm9records/ergoinu/config.h
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29#define DEVICE_VER 0x0001 29#define DEVICE_VER 0x0001
30#define MANUFACTURER Dm9Records 30#define MANUFACTURER Dm9Records
31#define PRODUCT ergoinu 31#define PRODUCT ergoinu
32#define DESCRIPTION An (Not Portable But Small) Ergonomic split keyboard
33 32
34#define TAPPING_FORCE_HOLD 33#define TAPPING_FORCE_HOLD
35#define TAPPING_TERM 100 34#define TAPPING_TERM 100
diff --git a/keyboards/dm9records/plaid/config.h b/keyboards/dm9records/plaid/config.h
index 8c7132c95..7fea12db8 100644
--- a/keyboards/dm9records/plaid/config.h
+++ b/keyboards/dm9records/plaid/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0002 26#define DEVICE_VER 0x0002
27#define MANUFACTURER dm9records 27#define MANUFACTURER dm9records
28#define PRODUCT Plaid 28#define PRODUCT Plaid
29#define DESCRIPTION 12x4 ortholinear keyboard with through hole components
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 4 31#define MATRIX_ROWS 4
diff --git a/keyboards/dm9records/tartan/config.h b/keyboards/dm9records/tartan/config.h
index e46c68c9e..062199847 100644
--- a/keyboards/dm9records/tartan/config.h
+++ b/keyboards/dm9records/tartan/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER dm9records 27#define MANUFACTURER dm9records
28#define PRODUCT Tartan 28#define PRODUCT Tartan
29#define DESCRIPTION 60% keyboard with through hole components
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 5 31#define MATRIX_ROWS 5
diff --git a/keyboards/dmqdesign/spin/config.h b/keyboards/dmqdesign/spin/config.h
index 63a3aa94b..ee4f5bf49 100644
--- a/keyboards/dmqdesign/spin/config.h
+++ b/keyboards/dmqdesign/spin/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER DMQ Design 26#define MANUFACTURER DMQ Design
27#define PRODUCT SPIN 27#define PRODUCT SPIN
28#define DESCRIPTION The SPIN Macro Pad is a 12 key Macro Pad by DMQ Design with 3 rotary encoders, inspired by the Plaid & RoMac.
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 3 30#define MATRIX_ROWS 3
diff --git a/keyboards/do60/config.h b/keyboards/do60/config.h
index acaa64646..ef6c55c3e 100644
--- a/keyboards/do60/config.h
+++ b/keyboards/do60/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Shopkey by Doyu Studio 27#define MANUFACTURER Shopkey by Doyu Studio
28#define PRODUCT Do60 28#define PRODUCT Do60
29#define DESCRIPTION Do60 Keyboard PCB by Doyu Studio
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 5 31#define MATRIX_ROWS 5
diff --git a/keyboards/donutcables/scrabblepad/config.h b/keyboards/donutcables/scrabblepad/config.h
index d6490349e..b64397f88 100644
--- a/keyboards/donutcables/scrabblepad/config.h
+++ b/keyboards/donutcables/scrabblepad/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Donut Cables 26#define MANUFACTURER Donut Cables
27#define PRODUCT ScrabblePad 27#define PRODUCT ScrabblePad
28#define DESCRIPTION 15x15 Ortholinear Board
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 15 30#define MATRIX_ROWS 15
diff --git a/keyboards/doppelganger/config.h b/keyboards/doppelganger/config.h
index c19fa5179..870807efe 100644
--- a/keyboards/doppelganger/config.h
+++ b/keyboards/doppelganger/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Yiancar-Designs 26#define MANUFACTURER Yiancar-Designs
27#define PRODUCT Doppelganger 27#define PRODUCT Doppelganger
28#define DESCRIPTION A custom split keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 10 30#define MATRIX_ROWS 10
diff --git a/keyboards/doro67/multi/config.h b/keyboards/doro67/multi/config.h
index 83a922038..bd4bd7a5b 100644
--- a/keyboards/doro67/multi/config.h
+++ b/keyboards/doro67/multi/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER Backprop Studio 9#define MANUFACTURER Backprop Studio
10#define PRODUCT Doro67 Multi PCB 10#define PRODUCT Doro67 Multi PCB
11#define DESCRIPTION 65% custom keyboard
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/doro67/regular/config.h b/keyboards/doro67/regular/config.h
index 85a0c5038..c778ed7a0 100644
--- a/keyboards/doro67/regular/config.h
+++ b/keyboards/doro67/regular/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER Backprop Studio 9#define MANUFACTURER Backprop Studio
10#define PRODUCT Doro67 Regular PCB 10#define PRODUCT Doro67 Regular PCB
11#define DESCRIPTION 65% custom keyboard
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/doro67/rgb/config.h b/keyboards/doro67/rgb/config.h
index 349b9f5cd..709d3cdd3 100644
--- a/keyboards/doro67/rgb/config.h
+++ b/keyboards/doro67/rgb/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Backprop Studio 26#define MANUFACTURER Backprop Studio
27#define PRODUCT Doro67 RGB PCB 27#define PRODUCT Doro67 RGB PCB
28#define DESCRIPTION 65% custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/dozen0/config.h b/keyboards/dozen0/config.h
index dce4258ff..4163ea5a2 100644
--- a/keyboards/dozen0/config.h
+++ b/keyboards/dozen0/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER yynmt 26#define MANUFACTURER yynmt
27#define PRODUCT Dozen0 27#define PRODUCT Dozen0
28#define DESCRIPTION 12 keys macropad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 1 30#define MATRIX_ROWS 1
diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h
index d1cbd6500..2593b7ff7 100644
--- a/keyboards/dp60/config.h
+++ b/keyboards/dp60/config.h
@@ -23,7 +23,6 @@
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER astro 24#define MANUFACTURER astro
25#define PRODUCT DP60 25#define PRODUCT DP60
26#define DESCRIPTION 60% rgb keyboard with ble extension
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/duck/eagle_viper/v2/config.h b/keyboards/duck/eagle_viper/v2/config.h
index e328b1ee2..4153f2963 100644
--- a/keyboards/duck/eagle_viper/v2/config.h
+++ b/keyboards/duck/eagle_viper/v2/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0002 25#define DEVICE_VER 0x0002
26#define MANUFACTURER Duck 26#define MANUFACTURER Duck
27#define PRODUCT Eagle/Viper V2 27#define PRODUCT Eagle/Viper V2
28#define DESCRIPTION 60% Korean custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/duck/jetfire/config.h b/keyboards/duck/jetfire/config.h
index b0cc42585..b5db17699 100644
--- a/keyboards/duck/jetfire/config.h
+++ b/keyboards/duck/jetfire/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Duck 26#define MANUFACTURER Duck
27#define PRODUCT Jetfire 27#define PRODUCT Jetfire
28#define DESCRIPTION A custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/duck/lightsaver/config.h b/keyboards/duck/lightsaver/config.h
index 5bb4e6faf..e2aa78d14 100644
--- a/keyboards/duck/lightsaver/config.h
+++ b/keyboards/duck/lightsaver/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0003 25#define DEVICE_VER 0x0003
26#define MANUFACTURER Duck 26#define MANUFACTURER Duck
27#define PRODUCT Lightsaver V3 27#define PRODUCT Lightsaver V3
28#define DESCRIPTION Duck Lightsaver V3
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/duck/octagon/v1/config.h b/keyboards/duck/octagon/v1/config.h
index 45e87de4b..7bf69a7b6 100644
--- a/keyboards/duck/octagon/v1/config.h
+++ b/keyboards/duck/octagon/v1/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Duck 26#define MANUFACTURER Duck
27#define PRODUCT Octagon V1 27#define PRODUCT Octagon V1
28#define DESCRIPTION Duck Octagon V1
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/duck/octagon/v2/config.h b/keyboards/duck/octagon/v2/config.h
index 82b0c8a99..0de966c60 100644
--- a/keyboards/duck/octagon/v2/config.h
+++ b/keyboards/duck/octagon/v2/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0002 25#define DEVICE_VER 0x0002
26#define MANUFACTURER Duck 26#define MANUFACTURER Duck
27#define PRODUCT Octagon V2 27#define PRODUCT Octagon V2
28#define DESCRIPTION Duck Octagon V2
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/duck/orion/v3/config.h b/keyboards/duck/orion/v3/config.h
index ce64431af..bcc5fb004 100644
--- a/keyboards/duck/orion/v3/config.h
+++ b/keyboards/duck/orion/v3/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0002 25#define DEVICE_VER 0x0002
26#define MANUFACTURER Duck 26#define MANUFACTURER Duck
27#define PRODUCT Orion V3 27#define PRODUCT Orion V3
28#define DESCRIPTION TKL Korean custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/duck/tcv3/config.h b/keyboards/duck/tcv3/config.h
index 524b12b83..9a75ff77f 100644
--- a/keyboards/duck/tcv3/config.h
+++ b/keyboards/duck/tcv3/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Duck 26#define MANUFACTURER Duck
27#define PRODUCT TC-V3 27#define PRODUCT TC-V3
28#define DESCRIPTION Duck TC-V3
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/dumbpad/config.h b/keyboards/dumbpad/config.h
index 3d0cc129b..04230659b 100644
--- a/keyboards/dumbpad/config.h
+++ b/keyboards/dumbpad/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER imchipwood 26#define MANUFACTURER imchipwood
27#define PRODUCT dumbpad 27#define PRODUCT dumbpad
28#define DESCRIPTION 4x4 macro/numpad with rotary encoder
29 28
30 29
31/* 30/*
diff --git a/keyboards/dz60/keymaps/LEdiodes/config.h b/keyboards/dz60/keymaps/LEdiodes/config.h
index 196d05c53..e39210911 100644
--- a/keyboards/dz60/keymaps/LEdiodes/config.h
+++ b/keyboards/dz60/keymaps/LEdiodes/config.h
@@ -9,7 +9,6 @@
9#define DEVICE_VER 0x0001 9#define DEVICE_VER 0x0001
10#define MANUFACTURER KBDFans 10#define MANUFACTURER KBDFans
11#define PRODUCT DZ60 11#define PRODUCT DZ60
12#define DESCRIPTION DZ60 Keyboard
13 12
14/* key matrix size */ 13/* key matrix size */
15#define MATRIX_ROWS 5 14#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h
index fb4e62245..6e5b3da6f 100644
--- a/keyboards/dztech/dz60rgb/v1/config.h
+++ b/keyboards/dztech/dz60rgb/v1/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0001 6#define DEVICE_VER 0x0001
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ60RGB 8#define PRODUCT DZ60RGB
9#define DESCRIPTION DZ60 ARM RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h
index 6c5484fc8..df84fff59 100644
--- a/keyboards/dztech/dz60rgb/v2/config.h
+++ b/keyboards/dztech/dz60rgb/v2/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0002 6#define DEVICE_VER 0x0002
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ60RGB 8#define PRODUCT DZ60RGB
9#define DESCRIPTION DZ60 AVR RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h
index f34226efc..8710f8d07 100644
--- a/keyboards/dztech/dz60rgb_ansi/v1/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0001 6#define DEVICE_VER 0x0001
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ60RGB_ANSI 8#define PRODUCT DZ60RGB_ANSI
9#define DESCRIPTION DZ60 ARM RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h
index b9710805a..f3c9b73fb 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0002 6#define DEVICE_VER 0x0002
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ60RGB_ANSI 8#define PRODUCT DZ60RGB_ANSI
9#define DESCRIPTION DZ60 AVR RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h
index 49ce11236..9c630c75b 100644
--- a/keyboards/dztech/dz60rgb_wkl/v1/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0001 6#define DEVICE_VER 0x0001
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ60RGB_WKL 8#define PRODUCT DZ60RGB_WKL
9#define DESCRIPTION DZ60 ARM RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h
index e46495d73..a6145c274 100644
--- a/keyboards/dztech/dz60rgb_wkl/v2/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0002 6#define DEVICE_VER 0x0002
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ60RGB_WKL 8#define PRODUCT DZ60RGB_WKL
9#define DESCRIPTION DZ60 AVR RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h
index 9cd7d293c..cd4747716 100644
--- a/keyboards/dztech/dz65rgb/v1/config.h
+++ b/keyboards/dztech/dz65rgb/v1/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0001 6#define DEVICE_VER 0x0001
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ65RGB 8#define PRODUCT DZ65RGB
9#define DESCRIPTION DZ65 ARM RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h
index 83cf0110a..ccd74275a 100644
--- a/keyboards/dztech/dz65rgb/v2/config.h
+++ b/keyboards/dztech/dz65rgb/v2/config.h
@@ -6,7 +6,6 @@
6#define DEVICE_VER 0x0002 6#define DEVICE_VER 0x0002
7#define MANUFACTURER DZTECH 7#define MANUFACTURER DZTECH
8#define PRODUCT DZ65RGB 8#define PRODUCT DZ65RGB
9#define DESCRIPTION DZ65 AVR RGB keyboard
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 5 11#define MATRIX_ROWS 5
diff --git a/keyboards/lily58/keymaps/domnantas/config.h b/keyboards/lily58/keymaps/domnantas/config.h
new file mode 100644
index 000000000..00104a136
--- /dev/null
+++ b/keyboards/lily58/keymaps/domnantas/config.h
@@ -0,0 +1,36 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23//#define USE_MATRIX_I2C
24
25/* Select hand configuration */
26
27// #define MASTER_LEFT
28// #define MASTER_RIGHT
29#define EE_HANDS
30
31// #define SSD1306OLED
32
33#define USE_SERIAL_PD2
34
35#define TAPPING_FORCE_HOLD
36#define TAPPING_TERM 100 \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/domnantas/keymap.c b/keyboards/lily58/keymaps/domnantas/keymap.c
new file mode 100644
index 000000000..badc3bb63
--- /dev/null
+++ b/keyboards/lily58/keymaps/domnantas/keymap.c
@@ -0,0 +1,284 @@
1 /* Copyright 2020 Domantas Petrauskas
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18#include <stdio.h>
19
20#define LT_1 RALT(KC_1)
21#define LT_2 RALT(KC_2)
22#define LT_3 RALT(KC_3)
23#define LT_4 RALT(KC_4)
24#define LT_5 RALT(KC_5)
25#define LT_6 RALT(KC_6)
26#define LT_7 RALT(KC_7)
27#define LT_8 RALT(KC_8)
28#define LT_9 RALT(KC_9)
29#define LT_0 RALT(KC_0)
30
31// Naming according to Unicode specifications
32#define LT_A_OG KC_1
33#define LT_C_CA KC_2
34#define LT_E_OG KC_3
35#define LT_E_DO KC_4
36#define LT_I_OG KC_5
37#define LT_S_CA KC_6
38#define LT_U_OG KC_7
39#define LT_U_MA KC_8
40#define LT_Z_CA KC_EQL
41
42#define LT_EQL RALT(KC_EQL)
43
44// OLED setup
45#define IDLE_FRAMES 5
46#define IDLE_SPEED 30
47#define TAP_FRAMES 2
48#define TAP_SPEED 40
49#define ANIM_FRAME_DURATION 200
50#define ANIM_SIZE 512
51
52char wpm_str[10];
53uint32_t anim_timer = 0;
54uint32_t anim_sleep = 0;
55uint8_t current_idle_frame = 0;
56uint8_t current_tap_frame = 0;
57
58static long int oled_timeout = OLED_TIMEOUT; // 10 minutes
59
60enum layer_number {
61 _QWERTY = 0,
62 _LOWER,
63 _RAISE,
64 _ADJUST,
65};
66
67const bool *is_keyboard_left(void);
68
69const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
70
71 /* QWERTY
72 * ,-----------------------------------------. ,-----------------------------------------.
73 * | ESC | Ą | Č | Ę | Ė | Į | | Š | Ų | Ū | ( | ) | Ž |
74 * |------+------+------+------+------+------| |------+------+------+------+------+------|
75 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
76 * |------+------+------+------+------+------| |------+------+------+------+------+------|
77 * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
78 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
79 * |LCTRL | Z | X | C | V | B |-------| |-------| N | M | , | . | / | RAlt |
80 * `-----------------------------------------/ / \ \-----------------------------------------'
81 * | LGUI | LAlt |LOWER | / Space / \Enter \ | Bksp |RAISE | Del |
82 * | | | |/ / \ \ | | | |
83 * `----------------------------' '------''--------------------'
84 */
85 [_QWERTY] = LAYOUT(
86 KC_ESC, LT_A_OG, LT_C_CA, LT_E_OG, LT_E_DO, LT_I_OG, LT_S_CA, LT_U_OG, LT_U_MA, KC_9, KC_0, LT_Z_CA,
87 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
88 KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
89 KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RALT,
90 KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_ENT, KC_BSPC, MO(_RAISE), KC_DEL
91 ),
92
93 /* LOWER
94 * ,-----------------------------------------. ,-----------------------------------------.
95 * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
96 * |------+------+------+------+------+------| |------+------+------+------+------+------|
97 * | Tab | 4 | 5 | 6 | | | | | | | | | |
98 * |------+------+------+------+------+------| |------+------+------+------+------+------|
99 * |LShift| 7 | 8 | 9 | 0 | |-------. ,-------| | | | | | |
100 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
101 * |LCTRL | = | + | - | | | |-------| |-------| | | | | | |
102 * `-----------------------------------------/ / \ \-----------------------------------------'
103 * | LGUI | LAlt |LOWER | / Space / \ Enter\ | Bksp |RAISE | Del |
104 * | | ||||||||/ / \ \ | | | |
105 * `----------------------------' '------''--------------------'
106 */
107 [_LOWER] = LAYOUT(
108 _______, LT_1, LT_2, LT_3, LT_4, LT_5, LT_6, LT_7, LT_8, LT_9, LT_0, KC_GRV,
109 _______, LT_4, LT_5, LT_6, _______, _______, _______, _______, _______, _______, _______, _______,
110 _______, LT_7, LT_8, LT_9, LT_0, _______, _______, _______, _______, _______, _______, _______,
111 _______, LT_EQL, KC_PPLS, KC_PMNS, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, _______, _______,
112 _______, _______, _______, _______, _______, _______, _______, _______
113 ),
114
115 /* RAISE
116 * ,-----------------------------------------. ,-----------------------------------------.
117 * | ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |PrScr |
118 * |------+------+------+------+------+------| |------+------+------+------+------+------|
119 * | Tab | F11 | F12 | | | | | | PgUp | Home | Up | End | Vol+ |
120 * |------+------+------+------+------+------| |------+------+------+------+------+------|
121 * |LShift| | | | | |-------. ,-------| | PgDn | Left | Down |Right | Vol- |
122 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
123 * |LCTRL | Undo | Cut | Copy |Paste | |-------| |-------| | |MPrev |MNext |MPlPa | |
124 * `-----------------------------------------/ / \ \-----------------------------------------'
125 * | LGUI | LAlt |LOWER | / Space / \ Enter\ | Bksp |RAISE | Del |
126 * | | | |/ / \ \ | |||||||| |
127 * `----------------------------' '------''--------------------'
128 */
129 [_RAISE] = LAYOUT(
130 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR,
131 _______, KC_F11, KC_F12, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU,
132 _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD,
133 _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______,
134 _______, _______, _______, _______, _______, _______, _______, _______
135 ),
136
137 /* ADJUST
138 * ,-----------------------------------------. ,-----------------------------------------.
139 * | | | | | | | | | | | | | |
140 * |------+------+------+------+------+------| |------+------+------+------+------+------|
141 * | | | | | | | | | | | | | |
142 * |------+------+------+------+------+------| |------+------+------+------+------+------|
143 * | CAPS | | | | | |-------. ,-------| | | | | | |
144 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
145 * | | | | | | |-------| |-------| | | | | | |
146 * `-----------------------------------------/ / \ \-----------------------------------------'
147 * | LGUI | LAlt |LOWER | /Space / \Enter \ | Bksp |RAISE | Del |
148 * | | ||||||||/ / \ \ | |||||||| |
149 * `----------------------------' '------''--------------------'
150 */
151 [_ADJUST] = LAYOUT(
152 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
153 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
154 KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
155 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
156 _______, _______, _______, _______, _______, _______, _______, _______
157 )
158};
159
160oled_rotation_t oled_init_user(oled_rotation_t rotation) {
161 if (is_keyboard_left()) return OLED_ROTATION_270;
162 return OLED_ROTATION_180;
163}
164
165layer_state_t layer_state_set_user(layer_state_t state) {
166 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
167}
168
169static void render_bongo_cat(void) {
170
171 // Idle animation
172 static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {
173
174 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 4, 4, 4, 8, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 100, 130, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 56, 4, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
176
177 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 4, 4, 4, 8, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 100, 130, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 56, 4, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
179
180 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 8, 4, 2, 2, 4, 24, 96, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 194, 1, 1, 2, 2, 4, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 96, 0, 129, 130, 130, 132, 8, 16, 32, 64, 128, 0, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 25, 6, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 27, 3, 0, 64, 160, 34, 36, 20, 18, 18, 18, 11, 8, 8, 8, 8, 5, 5, 9, 9, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
182
183 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
185
186 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 4, 2, 2, 2, 4, 56, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 226, 1, 1, 2, 2, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 192, 193, 193, 194, 4, 8, 16, 32, 64, 128, 0, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 13, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 4, 4, 8, 8, 8, 8, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
188
189 };
190
191 // Prep animation
192 static const char PROGMEM prep[][ANIM_SIZE] = {
193
194 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 129, 128, 128, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 0, 1, 225, 26, 6, 9, 49, 53, 1, 138, 124, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 24, 6, 5, 152, 153, 132, 195, 124, 65, 65, 64, 64, 32, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
196
197 };
198
199 // Typing animation
200 static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = {
201
202 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 248, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 129, 128, 128, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 0, 1, 1, 2, 4, 8, 16, 32, 67, 135, 7, 1, 0, 184, 188, 190, 159, 95, 95, 79, 76, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 24, 6, 5, 152, 153, 132, 67, 124, 65, 65, 64, 64, 32, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 8, 8, 16, 16, 16, 16, 16, 17, 15, 1, 61, 124, 252, 252, 252, 252, 252, 60, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
204
205 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 128, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 4, 2, 1, 1, 2, 12, 48, 64, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 225, 0, 0, 1, 1, 2, 2, 1, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 48, 48, 0, 0, 1, 225, 26, 6, 9, 49, 53, 1, 138, 124, 0, 0, 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 112, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 64, 160, 33, 34, 18, 17, 17, 17, 9, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 64, 64, 64, 64, 64, 32, 32, 32, 32, 32, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 2, 3, 122, 122, 121, 121, 121, 121, 57, 49, 2, 2, 4, 4, 8, 8, 8, 136, 136, 135, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
207
208 };
209
210 void animation_phase(void) {
211 if (get_current_wpm() <= IDLE_SPEED) {
212 current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
213 oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE);
214 }
215
216 if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) {
217 oled_write_raw_P(prep[0], ANIM_SIZE);
218 }
219
220 if (get_current_wpm() >= TAP_SPEED) {
221 current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
222 oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE);
223 }
224 }
225
226 if (get_current_wpm() != 000) {
227 oled_on();
228
229 if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
230 anim_timer = timer_read32();
231 animation_phase();
232 }
233
234 anim_sleep = timer_read32();
235 } else {
236 if (timer_elapsed32(anim_sleep) > oled_timeout) {
237 oled_off();
238 } else {
239 if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
240 anim_timer = timer_read32();
241 animation_phase();
242 }
243 }
244 }
245}
246
247static void render_status(void) {
248 // WPM
249 oled_write_ln_P(PSTR("wpm"), false);
250 sprintf(wpm_str, "%03d", get_current_wpm());
251 oled_write_ln(wpm_str, false);
252 oled_write_ln_P(PSTR(""), false);
253
254 // Layer display
255 switch (get_highest_layer(layer_state)) {
256 case _QWERTY:
257 oled_write_ln_P(PSTR("deflt"), false);
258 break;
259 case _RAISE:
260 oled_write_ln_P(PSTR("raise"), false);
261 break;
262 case _LOWER:
263 oled_write_ln_P(PSTR("lower"), false);
264 break;
265 case _ADJUST:
266 oled_write_ln_P(PSTR("adjst"), false);
267 break;
268 default:
269 oled_write_ln_P(PSTR("error"), false);
270 }
271
272 led_t led_state = host_keyboard_led_state();
273 oled_write_ln_P(PSTR(""), false);
274 oled_write_ln_P(PSTR(""), false);
275 oled_write_ln_P(PSTR("caps"), led_state.caps_lock);
276}
277
278void oled_task_user(void) {
279 if (is_keyboard_left()) {
280 render_status();
281 } else {
282 render_bongo_cat();
283 }
284}
diff --git a/keyboards/lily58/keymaps/domnantas/readme.md b/keyboards/lily58/keymaps/domnantas/readme.md
new file mode 100644
index 000000000..262f7ffad
--- /dev/null
+++ b/keyboards/lily58/keymaps/domnantas/readme.md
@@ -0,0 +1,21 @@
1# Domnantas layout for Lily58 Pro
2
3## Features
4
5- Optimised for lithuanian layout, but works on English too
6- Backspace, Enter and Space are under thumbs, very little hand movement
7- LShift swapped with LCtrl
8- Numpad on Lower layer for left hand
9- Navigation, media keys on Raise layer for right hand
10- Status on the left OLED
11- BONGOCAT on the right
12
13## Instructions
14Since status is always on the left and Bongocat on the right, the keymap has to be flashed with different commands:
15
16```bash
17# Right hand
18qmk flash -kb lily58/rev1 -km domnantas -bl avrdude-split-left
19# Left hand
20qmk flash -kb lily58/rev1 -km domnantas -bl avrdude-split-right
21``` \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/domnantas/rules.mk b/keyboards/lily58/keymaps/domnantas/rules.mk
new file mode 100644
index 000000000..2942e18ed
--- /dev/null
+++ b/keyboards/lily58/keymaps/domnantas/rules.mk
@@ -0,0 +1,2 @@
1EXTRAKEY_ENABLE = yes
2WPM_ENABLE = yes
diff --git a/keyboards/ymdk/ymd09/keymaps/andys8/keymap.c b/keyboards/ymdk/ymd09/keymaps/andys8/keymap.c
new file mode 100644
index 000000000..130db7e4e
--- /dev/null
+++ b/keyboards/ymdk/ymd09/keymaps/andys8/keymap.c
@@ -0,0 +1,65 @@
1/*
2Copyright 2021 andys8 <andys8@users.noreply.github.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18#include "sendstring_german.h"
19
20enum custom_keycodes {
21 GIT_STASH = SAFE_RANGE,
22 GIT_STASH_POP,
23 GIT_COMMIT,
24 COPY_PASTE,
25};
26
27bool process_record_user(uint16_t keycode, keyrecord_t *record) {
28 switch (keycode) {
29 case GIT_STASH:
30 if (record->event.pressed) {
31 SEND_STRING("git stash\n");
32 }
33 break;
34 case GIT_STASH_POP:
35 if (record->event.pressed) {
36 SEND_STRING("git stash pop\n");
37 }
38 break;
39 case GIT_COMMIT:
40 if (record->event.pressed) {
41 SEND_STRING("git add -A && git commit -a\n");
42 }
43 break;
44 case COPY_PASTE:
45 if (record->event.pressed) {
46 tap_code16(C(KC_C));
47 } else {
48 tap_code16(C(KC_V));
49 }
50 break;
51 }
52 return true;
53};
54
55const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56
57 [0] = LAYOUT(GIT_STASH, GIT_STASH_POP, GIT_COMMIT,
58 LCTL(KC_F4), LT(1, KC_SPACE), LCTL(KC_F6),
59 COPY_PASTE, LCTL(KC_F2), LCTL(KC_F3)),
60
61 [1] = LAYOUT(RGB_RMOD, RGB_TOG, RGB_MOD,
62 RGB_HUI, KC_TRNS, RGB_SAI,
63 RGB_HUD, RGB_M_P, RGB_SAD),
64
65};
diff --git a/quantum/rgb_matrix_animations/typing_heatmap_anim.h b/quantum/rgb_matrix_animations/typing_heatmap_anim.h
index b855fdc19..e06437bf7 100644
--- a/quantum/rgb_matrix_animations/typing_heatmap_anim.h
+++ b/quantum/rgb_matrix_animations/typing_heatmap_anim.h
@@ -2,6 +2,10 @@
2RGB_MATRIX_EFFECT(TYPING_HEATMAP) 2RGB_MATRIX_EFFECT(TYPING_HEATMAP)
3# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS 3# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
4 4
5# ifndef RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS
6# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 25
7# endif
8
5void process_rgb_matrix_typing_heatmap(keyrecord_t* record) { 9void process_rgb_matrix_typing_heatmap(keyrecord_t* record) {
6 uint8_t row = record->event.key.row; 10 uint8_t row = record->event.key.row;
7 uint8_t col = record->event.key.col; 11 uint8_t col = record->event.key.col;
@@ -27,6 +31,11 @@ void process_rgb_matrix_typing_heatmap(keyrecord_t* record) {
27 } 31 }
28} 32}
29 33
34// A timer to track the last time we decremented all heatmap values.
35static uint16_t heatmap_decrease_timer;
36// Whether we should decrement the heatmap values during the next update.
37static bool decrease_heatmap_values;
38
30bool TYPING_HEATMAP(effect_params_t* params) { 39bool TYPING_HEATMAP(effect_params_t* params) {
31 // Modified version of RGB_MATRIX_USE_LIMITS to work off of matrix row / col size 40 // Modified version of RGB_MATRIX_USE_LIMITS to work off of matrix row / col size
32 uint8_t led_min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter; 41 uint8_t led_min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter;
@@ -38,6 +47,18 @@ bool TYPING_HEATMAP(effect_params_t* params) {
38 memset(g_rgb_frame_buffer, 0, sizeof g_rgb_frame_buffer); 47 memset(g_rgb_frame_buffer, 0, sizeof g_rgb_frame_buffer);
39 } 48 }
40 49
50 // The heatmap animation might run in several iterations depending on
51 // `RGB_MATRIX_LED_PROCESS_LIMIT`, therefore we only want to update the
52 // timer when the animation starts.
53 if (params->iter == 0) {
54 decrease_heatmap_values = timer_elapsed(heatmap_decrease_timer) >= RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS;
55
56 // Restart the timer if we are going to decrease the heatmap this frame.
57 if (decrease_heatmap_values) {
58 heatmap_decrease_timer = timer_read();
59 }
60 }
61
41 // Render heatmap & decrease 62 // Render heatmap & decrease
42 for (int i = led_min; i < led_max; i++) { 63 for (int i = led_min; i < led_max; i++) {
43 uint8_t row = i % MATRIX_ROWS; 64 uint8_t row = i % MATRIX_ROWS;
@@ -55,7 +76,9 @@ bool TYPING_HEATMAP(effect_params_t* params) {
55 rgb_matrix_set_color(led[j], rgb.r, rgb.g, rgb.b); 76 rgb_matrix_set_color(led[j], rgb.r, rgb.g, rgb.b);
56 } 77 }
57 78
58 g_rgb_frame_buffer[row][col] = qsub8(val, 1); 79 if (decrease_heatmap_values) {
80 g_rgb_frame_buffer[row][col] = qsub8(val, 1);
81 }
59 } 82 }
60 83
61 return led_max < sizeof(g_rgb_frame_buffer); 84 return led_max < sizeof(g_rgb_frame_buffer);
diff --git a/shell.nix b/shell.nix
index 6cfda2da9..82505d5d2 100644
--- a/shell.nix
+++ b/shell.nix
@@ -71,7 +71,7 @@ in
71mkShell { 71mkShell {
72 name = "qmk-firmware"; 72 name = "qmk-firmware";
73 73
74 buildInputs = [ dfu-programmer dfu-util diffutils git pythonEnv ] 74 buildInputs = [ clang-tools dfu-programmer dfu-util diffutils git pythonEnv ]
75 ++ lib.optional avr [ 75 ++ lib.optional avr [
76 pkgsCross.avr.buildPackages.binutils 76 pkgsCross.avr.buildPackages.binutils
77 pkgsCross.avr.buildPackages.gcc8 77 pkgsCross.avr.buildPackages.gcc8
diff --git a/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h
index 65339bffe..09de47546 100644
--- a/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h
+++ b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21#define KEYBOARD_EPSIZE 8 21#define KEYBOARD_EPSIZE 8
22#define MOUSE_EPSIZE 8 22#define MOUSE_EPSIZE 8
23#define EXTRAKEY_EPSIZE 8 23#define EXTRAKEY_EPSIZE 8
24#define RAW_EPSIZE 64 24#define RAW_EPSIZE 32
25#define CONSOLE_EPSIZE 32 25#define CONSOLE_EPSIZE 32
26#define NKRO_EPSIZE 32 26#define NKRO_EPSIZE 32
27#define MIDI_STREAM_EPSIZE 64 27#define MIDI_STREAM_EPSIZE 64
diff --git a/tmk_core/protocol/lufa/adafruit_ble.cpp b/tmk_core/protocol/lufa/adafruit_ble.cpp
index 79b35fca3..3f2cc3573 100644
--- a/tmk_core/protocol/lufa/adafruit_ble.cpp
+++ b/tmk_core/protocol/lufa/adafruit_ble.cpp
@@ -11,6 +11,7 @@
11#include "spi_master.h" 11#include "spi_master.h"
12#include "wait.h" 12#include "wait.h"
13#include "analog.h" 13#include "analog.h"
14#include "progmem.h"
14 15
15// These are the pin assignments for the 32u4 boards. 16// These are the pin assignments for the 32u4 boards.
16// You may define them to something else in your config.h 17// You may define them to something else in your config.h
@@ -36,10 +37,8 @@
36#define SAMPLE_BATTERY 37#define SAMPLE_BATTERY
37#define ConnectionUpdateInterval 1000 /* milliseconds */ 38#define ConnectionUpdateInterval 1000 /* milliseconds */
38 39
39#ifdef SAMPLE_BATTERY 40#ifndef BATTERY_LEVEL_PIN
40# ifndef BATTERY_LEVEL_PIN 41# define BATTERY_LEVEL_PIN B5
41# define BATTERY_LEVEL_PIN B5
42# endif
43#endif 42#endif
44 43
45static struct { 44static struct {
@@ -118,15 +117,15 @@ enum sdep_type {
118 SdepResponse = 0x20, 117 SdepResponse = 0x20,
119 SdepAlert = 0x40, 118 SdepAlert = 0x40,
120 SdepError = 0x80, 119 SdepError = 0x80,
121 SdepSlaveNotReady = 0xfe, // Try again later 120 SdepSlaveNotReady = 0xFE, // Try again later
122 SdepSlaveOverflow = 0xff, // You read more data than is available 121 SdepSlaveOverflow = 0xFF, // You read more data than is available
123}; 122};
124 123
125enum ble_cmd { 124enum ble_cmd {
126 BleInitialize = 0xbeef, 125 BleInitialize = 0xBEEF,
127 BleAtWrapper = 0x0a00, 126 BleAtWrapper = 0x0A00,
128 BleUartTx = 0x0a01, 127 BleUartTx = 0x0A01,
129 BleUartRx = 0x0a02, 128 BleUartRx = 0x0A02,
130}; 129};
131 130
132enum ble_system_event_bits { 131enum ble_system_event_bits {
@@ -176,7 +175,7 @@ static bool sdep_send_pkt(const struct sdep_msg *msg, uint16_t timeout) {
176 175
177static inline void sdep_build_pkt(struct sdep_msg *msg, uint16_t command, const uint8_t *payload, uint8_t len, bool moredata) { 176static inline void sdep_build_pkt(struct sdep_msg *msg, uint16_t command, const uint8_t *payload, uint8_t len, bool moredata) {
178 msg->type = SdepCommand; 177 msg->type = SdepCommand;
179 msg->cmd_low = command & 0xff; 178 msg->cmd_low = command & 0xFF;
180 msg->cmd_high = command >> 8; 179 msg->cmd_high = command >> 8;
181 msg->len = len; 180 msg->len = len;
182 msg->more = (moredata && len == SdepMaxPayload) ? 1 : 0; 181 msg->more = (moredata && len == SdepMaxPayload) ? 1 : 0;
@@ -407,11 +406,11 @@ static bool at_command(const char *cmd, char *resp, uint16_t resplen, bool verbo
407 } 406 }
408 407
409 if (resp == NULL) { 408 if (resp == NULL) {
410 auto now = timer_read(); 409 uint16_t now = timer_read();
411 while (!resp_buf.enqueue(now)) { 410 while (!resp_buf.enqueue(now)) {
412 resp_buf_read_one(false); 411 resp_buf_read_one(false);
413 } 412 }
414 auto later = timer_read(); 413 uint16_t later = timer_read();
415 if (TIMER_DIFF_16(later, now) > 0) { 414 if (TIMER_DIFF_16(later, now) > 0) {
416 dprintf("waited %dms for resp_buf\n", TIMER_DIFF_16(later, now)); 415 dprintf("waited %dms for resp_buf\n", TIMER_DIFF_16(later, now));
417 } 416 }
@@ -422,7 +421,7 @@ static bool at_command(const char *cmd, char *resp, uint16_t resplen, bool verbo
422} 421}
423 422
424bool at_command_P(const char *cmd, char *resp, uint16_t resplen, bool verbose) { 423bool at_command_P(const char *cmd, char *resp, uint16_t resplen, bool verbose) {
425 auto cmdbuf = (char *)alloca(strlen_P(cmd) + 1); 424 char *cmdbuf = (char *)alloca(strlen_P(cmd) + 1);
426 strcpy_P(cmdbuf, cmd); 425 strcpy_P(cmdbuf, cmd);
427 return at_command(cmdbuf, resp, resplen, verbose); 426 return at_command(cmdbuf, resp, resplen, verbose);
428} 427}
@@ -484,9 +483,9 @@ fail:
484static void set_connected(bool connected) { 483static void set_connected(bool connected) {
485 if (connected != state.is_connected) { 484 if (connected != state.is_connected) {
486 if (connected) { 485 if (connected) {
487 print("****** BLE CONNECT!!!!\n"); 486 dprint("BLE connected\n");
488 } else { 487 } else {
489 print("****** BLE DISCONNECT!!!!\n"); 488 dprint("BLE disconnected\n");
490 } 489 }
491 state.is_connected = connected; 490 state.is_connected = connected;
492 491
@@ -612,7 +611,7 @@ static bool process_queue_item(struct queue_item *item, uint16_t timeout) {
612 } 611 }
613} 612}
614 613
615bool adafruit_ble_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys) { 614void adafruit_ble_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys) {
616 struct queue_item item; 615 struct queue_item item;
617 bool didWait = false; 616 bool didWait = false;
618 617
@@ -638,30 +637,27 @@ bool adafruit_ble_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nk
638 } 637 }
639 638
640 if (nkeys <= 6) { 639 if (nkeys <= 6) {
641 return true; 640 return;
642 } 641 }
643 642
644 nkeys -= 6; 643 nkeys -= 6;
645 keys += 6; 644 keys += 6;
646 } 645 }
647
648 return true;
649} 646}
650 647
651bool adafruit_ble_send_consumer_key(uint16_t keycode, int hold_duration) { 648void adafruit_ble_send_consumer_key(uint16_t usage) {
652 struct queue_item item; 649 struct queue_item item;
653 650
654 item.queue_type = QTConsumer; 651 item.queue_type = QTConsumer;
655 item.consumer = keycode; 652 item.consumer = usage;
656 653
657 while (!send_buf.enqueue(item)) { 654 while (!send_buf.enqueue(item)) {
658 send_buf_send_one(); 655 send_buf_send_one();
659 } 656 }
660 return true;
661} 657}
662 658
663#ifdef MOUSE_ENABLE 659#ifdef MOUSE_ENABLE
664bool adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons) { 660void adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons) {
665 struct queue_item item; 661 struct queue_item item;
666 662
667 item.queue_type = QTMouseMove; 663 item.queue_type = QTMouseMove;
@@ -674,7 +670,6 @@ bool adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan,
674 while (!send_buf.enqueue(item)) { 670 while (!send_buf.enqueue(item)) {
675 send_buf_send_one(); 671 send_buf_send_one();
676 } 672 }
677 return true;
678} 673}
679#endif 674#endif
680 675
diff --git a/tmk_core/protocol/lufa/adafruit_ble.h b/tmk_core/protocol/lufa/adafruit_ble.h
index 9dfc9b435..b43e0771d 100644
--- a/tmk_core/protocol/lufa/adafruit_ble.h
+++ b/tmk_core/protocol/lufa/adafruit_ble.h
@@ -10,7 +10,6 @@
10#include <string.h> 10#include <string.h>
11 11
12#include "config_common.h" 12#include "config_common.h"
13#include "progmem.h"
14 13
15#ifdef __cplusplus 14#ifdef __cplusplus
16extern "C" { 15extern "C" {
@@ -35,17 +34,17 @@ extern void adafruit_ble_task(void);
35 * this set of keys. 34 * this set of keys.
36 * Also sends a key release indicator, so that the keys do not remain 35 * Also sends a key release indicator, so that the keys do not remain
37 * held down. */ 36 * held down. */
38extern bool adafruit_ble_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys); 37extern void adafruit_ble_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys);
39 38
40/* Send a consumer keycode, holding it down for the specified duration 39/* Send a consumer usage.
41 * (milliseconds) */ 40 * (milliseconds) */
42extern bool adafruit_ble_send_consumer_key(uint16_t keycode, int hold_duration); 41extern void adafruit_ble_send_consumer_key(uint16_t usage);
43 42
44#ifdef MOUSE_ENABLE 43#ifdef MOUSE_ENABLE
45/* Send a mouse/wheel movement report. 44/* Send a mouse/wheel movement report.
46 * The parameters are signed and indicate positive of negative direction 45 * The parameters are signed and indicate positive or negative direction
47 * change. */ 46 * change. */
48extern bool adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons); 47extern void adafruit_ble_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons);
49#endif 48#endif
50 49
51/* Compute battery voltage by reading an analog pin. 50/* Compute battery voltage by reading an analog pin.
diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c
index 8fd4be8af..623aa33ff 100644
--- a/tmk_core/protocol/lufa/lufa.c
+++ b/tmk_core/protocol/lufa/lufa.c
@@ -809,7 +809,7 @@ static void send_consumer(uint16_t data) {
809 809
810 if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) { 810 if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) {
811# ifdef MODULE_ADAFRUIT_BLE 811# ifdef MODULE_ADAFRUIT_BLE
812 adafruit_ble_send_consumer_key(data, 0); 812 adafruit_ble_send_consumer_key(data);
813# elif MODULE_RN42 813# elif MODULE_RN42
814 static uint16_t last_data = 0; 814 static uint16_t last_data = 0;
815 if (data == last_data) return; 815 if (data == last_data) return;