summaryrefslogtreecommitdiffstats
path: root/keyboards/clueboard/66_hotswap/gen1
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2020-12-30 10:27:37 -0800
committerGitHub <noreply@github.com>2020-12-30 10:27:37 -0800
commit47b9b110097a864d6ab76516b2213afd59948527 (patch)
tree44c4e034c71b361af0cf865b735e09162bbc9656 /keyboards/clueboard/66_hotswap/gen1
parentf231f24ddaac9781201a4ec9d0171c65af788839 (diff)
Configure keyboard matrix from info.json (#10817)
* Make parameters from info.json available to the build system * move all clueboard settings to info.json * code formatting * make flake8 happy * make flake8 happy * make qmk lint happy * Add support for specifying led indicators in json * move led indicators to the clueboard info.json * Apply suggestions from code review Co-authored-by: Erovia <Erovia@users.noreply.github.com> * add missing docstring Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Diffstat (limited to 'keyboards/clueboard/66_hotswap/gen1')
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/config.h25
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/gen1.h71
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/info.json337
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/readme.md16
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/rules.mk20
5 files changed, 193 insertions, 276 deletions
diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h
index 7c90d05b38..98d9728870 100644
--- a/keyboards/clueboard/66_hotswap/gen1/config.h
+++ b/keyboards/clueboard/66_hotswap/gen1/config.h
@@ -18,37 +18,12 @@
#pragma once
#include "config_common.h"
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xC1ED
-#define PRODUCT_ID 0x2391
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Clueboard
-
/* Address for jumping to bootloader on STM32 chips. */
/* It is chip dependent, the correct number can be looked up here:
* http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
*/
#define STM32_BOOTLOADER_ADDRESS 0x1FFFD800
-/* key matrix size */
-#define MATRIX_ROWS 10
-#define MATRIX_COLS 8
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { B11, A6, A3, A2, A1, B5, B6, C15, C14, C13 }
-#define MATRIX_COL_PINS { B10, B2, B1, B0, A7, B4, B3, B7 }
-#define UNUSED_PINS { A0, A8, A15, B12, B13, B14, B15 }
-#define DIODE_DIRECTION COL2ROW
-
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
// #define DEBOUNCE 6
diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.h b/keyboards/clueboard/66_hotswap/gen1/gen1.h
index 05adf49831..98f9ba1424 100644
--- a/keyboards/clueboard/66_hotswap/gen1/gen1.h
+++ b/keyboards/clueboard/66_hotswap/gen1/gen1.h
@@ -16,74 +16,3 @@
#pragma once
#include "quantum.h"
-/*
- * These are shortcuts to help you work with the various layout options. If your
- * keymap works with one of the LAYOUT_...() macros you are encouraged to use that
- * and to contribute your keymap to the corresponding layout in
- * `qmk_firmware/layouts/community`.
- */
-
-/* Clueboard matrix layout
- * ,-----------------------------------------------------------. ,---.
- * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 56 | | 57|
- * |-----------------------------------------------------------| |---|
- * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67|
- * |-----------------------------------------------------------| `---'
- * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 75|
- * |--------------------------------------------------------------.
- * | 30 | 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 85 |86|
- * |------------------------------------------------------------------.
- * | 40| 41| 42| 45| 46| 90| 92| 93| 94| 95|96| 97|
- * `------------------------------------------------------------------'
- * ,-----------------------------------------------------------. ,---.
- * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins|
- * |-----------------------------------------------------------| |---|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|
- * |-----------------------------------------------------------| `---'
- * |Caps | A| S| D| F| G| H| J| k| L| ;| '|Enter |
- * |--------------------------------------------------------------.
- * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift| Up|
- * |------------------------------------------------------------------.
- * |Ctrl|Alt|Gui | Space| Space|Gui |Alt |Fn |Ctrl|Left|Down|Rgt|
- * `------------------------------------------------------------------'
- */
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k57, \
- k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
- k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \
- k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \
- k40, k41, k42, k45, k46, k90, k92, k93, k94, k95, k96, k97 \
-) { \
- { k00, k01, k02, k03, k04, k05, k06, k07 }, \
- { k10, k11, k12, k13, k14, k15, k16, k17 }, \
- { k20, k21, k22, k23, k24, k25, k26, k27 }, \
- { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \
- { k40, k41, k42, KC_NO, KC_NO, k45, k46, KC_NO }, \
- { k50, k51, k52, k53, k54, k55, KC_NO, k57 }, \
- { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \
- { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \
- { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \
- { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
-}
-
-#define LAYOUT_66_ansi( \
- k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k57, \
- k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
- k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k75, \
- k30, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k85, k86, \
- k40, k41, k42, k46, k92, k93, k94, k95, k96, k97 \
-) { \
- { k00, k01, k02, k03, k04, k05, k06, k07 }, \
- { k10, k11, k12, k13, k14, k15, k16, k17 }, \
- { k20, k21, k22, k23, k24, k25, k26, k27 }, \
- { k30, KC_NO, k32, k33, k34, k35, k36, k37 }, \
- { k40, k41, k42, KC_NO, KC_NO, KC_NO, k46, KC_NO }, \
- { k50, k51, k52, k53, k54, k55, KC_NO, k57 }, \
- { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \
- { k70, k71, k72, k73, KC_NO, k75, KC_NO, KC_NO }, \
- { k80, k81, k82, k83, KC_NO, k85, k86, KC_NO }, \
- { KC_NO, KC_NO, k92, k93, k94, k95, k96, k97 } \
-}
diff --git a/keyboards/clueboard/66_hotswap/gen1/info.json b/keyboards/clueboard/66_hotswap/gen1/info.json
index 76c2b44208..76352b0771 100644
--- a/keyboards/clueboard/66_hotswap/gen1/info.json
+++ b/keyboards/clueboard/66_hotswap/gen1/info.json
@@ -1,165 +1,178 @@
{
- "keyboard_name": "Clueboard 66% HotSwap Gen1",
- "maintainer": "skullydazed",
- "width": 16.5,
- "height": 5,
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"x": 0, "y": 0},
- {"x": 1, "y": 0},
- {"x": 2, "y": 0},
- {"x": 3, "y": 0},
- {"x": 4, "y": 0},
- {"x": 5, "y": 0},
- {"x": 6, "y": 0},
- {"x": 7, "y": 0},
- {"x": 8, "y": 0},
- {"x": 9, "y": 0},
- {"x": 10, "y": 0},
- {"x": 11, "y": 0},
- {"x": 12, "y": 0},
- {"x": 13, "y": 0, "w": 2},
-
- {"x": 15.5, "y": 0},
-
- {"x": 0, "y": 1, "w": 1.5},
- {"x": 1.5, "y": 1},
- {"x": 2.5, "y": 1},
- {"x": 3.5, "y": 1},
- {"x": 4.5, "y": 1},
- {"x": 5.5, "y": 1},
- {"x": 6.5, "y": 1},
- {"x": 7.5, "y": 1},
- {"x": 8.5, "y": 1},
- {"x": 9.5, "y": 1},
- {"x": 10.5, "y": 1},
- {"x": 11.5, "y": 1},
- {"x": 12.5, "y": 1},
- {"x": 13.5, "y": 1, "w": 1.5},
-
- {"x": 15.5, "y": 1},
-
- {"x": 0, "y": 2, "w": 1.75},
- {"x": 1.75, "y": 2},
- {"x": 2.75, "y": 2},
- {"x": 3.75, "y": 2},
- {"x": 4.75, "y": 2},
- {"x": 5.75, "y": 2},
- {"x": 6.75, "y": 2},
- {"x": 7.75, "y": 2},
- {"x": 8.75, "y": 2},
- {"x": 9.75, "y": 2},
- {"x": 10.75, "y": 2},
- {"x": 11.75, "y": 2},
- {"x": 12.75, "y": 2, "w": 2.25},
-
- {"x": 0, "y": 3, "w": 2.25},
- {"x": 2.25, "y": 3},
- {"x": 3.25, "y": 3},
- {"x": 4.25, "y": 3},
- {"x": 5.25, "y": 3},
- {"x": 6.25, "y": 3},
- {"x": 7.25, "y": 3},
- {"x": 8.25, "y": 3},
- {"x": 9.25, "y": 3},
- {"x": 10.25, "y": 3},
- {"x": 11.25, "y": 3},
- {"x": 12.25, "y": 3, "w": 2.25},
-
- {"x": 14.5, "y": 3},
-
- {"x": 0, "y": 4, "w": 1.25},
- {"x": 1.25, "y": 4, "w": 1.25},
- {"x": 2.5, "y": 4, "w": 1.25},
- {"x": 3.75, "y": 4, "w": 2.75},
- {"x": 6.5, "y": 4, "w": 2.25},
- {"x": 8.75, "y": 4, "w": 1.25},
- {"x": 10, "y": 4, "w": 1.25},
- {"x": 11.25, "y": 4},
- {"x": 12.25, "y": 4, "w": 1.25},
- {"x": 13.5, "y": 4},
- {"x": 14.5, "y": 4},
- {"x": 15.5, "y": 4}
- ]
- },
- "LAYOUT_66_ansi": {
- "layout": [
- {"x": 0, "y": 0},
- {"x": 1, "y": 0},
- {"x": 2, "y": 0},
- {"x": 3, "y": 0},
- {"x": 4, "y": 0},
- {"x": 5, "y": 0},
- {"x": 6, "y": 0},
- {"x": 7, "y": 0},
- {"x": 8, "y": 0},
- {"x": 9, "y": 0},
- {"x": 10, "y": 0},
- {"x": 11, "y": 0},
- {"x": 12, "y": 0},
- {"x": 13, "y": 0, "w": 2},
-
- {"x": 15.5, "y": 0},
-
- {"x": 0, "y": 1, "w": 1.5},
- {"x": 1.5, "y": 1},
- {"x": 2.5, "y": 1},
- {"x": 3.5, "y": 1},
- {"x": 4.5, "y": 1},
- {"x": 5.5, "y": 1},
- {"x": 6.5, "y": 1},
- {"x": 7.5, "y": 1},
- {"x": 8.5, "y": 1},
- {"x": 9.5, "y": 1},
- {"x": 10.5, "y": 1},
- {"x": 11.5, "y": 1},
- {"x": 12.5, "y": 1},
- {"x": 13.5, "y": 1, "w": 1.5},
-
- {"x": 15.5, "y": 1},
-
- {"x": 0, "y": 2, "w": 1.75},
- {"x": 1.75, "y": 2},
- {"x": 2.75, "y": 2},
- {"x": 3.75, "y": 2},
- {"x": 4.75, "y": 2},
- {"x": 5.75, "y": 2},
- {"x": 6.75, "y": 2},
- {"x": 7.75, "y": 2},
- {"x": 8.75, "y": 2},
- {"x": 9.75, "y": 2},
- {"x": 10.75, "y": 2},
- {"x": 11.75, "y": 2},
- {"x": 12.75, "y": 2, "w": 2.25},
-
- {"x": 0, "y": 3, "w": 2.25},
- {"x": 2.25, "y": 3},
- {"x": 3.25, "y": 3},
- {"x": 4.25, "y": 3},
- {"x": 5.25, "y": 3},
- {"x": 6.25, "y": 3},
- {"x": 7.25, "y": 3},
- {"x": 8.25, "y": 3},
- {"x": 9.25, "y": 3},
- {"x": 10.25, "y": 3},
- {"x": 11.25, "y": 3},
- {"x": 12.25, "y": 3, "w": 2.25},
-
- {"x": 14.5, "y": 3},
-
- {"x": 0, "y": 4, "w": 1.25},
- {"x": 1.25, "y": 4, "w": 1.25},
- {"x": 2.5, "y": 4, "w": 1.25},
- {"x": 3.75, "y": 4, "w": 6.25},
- {"x": 10, "y": 4, "w": 1.25},
- {"x": 11.25, "y": 4},
- {"x": 12.25, "y": 4, "w": 1.25},
-
- {"x": 13.5, "y": 4},
- {"x": 14.5, "y": 4},
- {"x": 15.5, "y": 4}
- ]
- }
+ "manufacturer": "Clueboard",
+ "keyboard_name": "Clueboard 66% HotSwap Gen1",
+ "maintainer": "skullydazed",
+ "height": 5,
+ "width": 16.5,
+ "debounce": "5",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "audio": true,
+ "bootmagic": true,
+ "command": true,
+ "console": true,
+ "extrakey": true,
+ "led_matrix": "IS31FL3731",
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": ["B10", " B2", " B1", " B0", " A7", " B4", " B3", " B7"],
+ "rows": ["B11", " A6", " A3", " A2", " A1", " B5", " B6", " C15", " C14", " C13"]
+ },
+ "usb": {
+ "device_ver": "0x0001",
+ "pid": "0x2391",
+ "vid": "0xC1ED"
+ },
+ "community_layouts": [],
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_all"
+ },
+ "layouts": {
+ "LAYOUT_66_ansi": {
+ "key_count": 66,
+ "layout": [
+ { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
+ { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
+ { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
+ { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
+ { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 },
+ { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 },
+ { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 },
+ { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 },
+ { "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 },
+ { "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 },
+ { "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 },
+ { "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 },
+ { "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 },
+ { "label": "k55", "matrix": [5, 5], "w": 2, "x": 13, "y": 0 },
+ { "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 },
+ { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
+ { "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 },
+ { "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 },
+ { "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 },
+ { "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 },
+ { "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 },
+ { "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 },
+ { "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 },
+ { "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 },
+ { "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 },
+ { "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 },
+ { "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 },
+ { "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 },
+ { "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 },
+ { "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 },
+ { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
+ { "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 },
+ { "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 },
+ { "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 },
+ { "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 },
+ { "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 },
+ { "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 },
+ { "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 },
+ { "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 },
+ { "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 },
+ { "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 },
+ { "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 },
+ { "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 },
+ { "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
+ { "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 },
+ { "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 },
+ { "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 },
+ { "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 },
+ { "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 },
+ { "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 },
+ { "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 },
+ { "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 },
+ { "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 },
+ { "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 },
+ { "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 },
+ { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 },
+ { "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 },
+ { "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 },
+ { "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 },
+ { "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 },
+ { "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 },
+ { "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 },
+ { "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 },
+ { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 },
+ { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 },
+ { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 }
+ ]
+ },
+ "LAYOUT_all": {
+ "key_count": 68,
+ "layout": [
+ { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 },
+ { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 },
+ { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 },
+ { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 },
+ { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 },
+ { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 },
+ { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 },
+ { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 },
+ { "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 },
+ { "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 },
+ { "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 },
+ { "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 },
+ { "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 },
+ { "label": "k55", "matrix": [5, 5], "w": 2, "x": 13, "y": 0 },
+ { "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 },
+ { "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
+ { "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 },
+ { "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 },
+ { "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 },
+ { "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 },
+ { "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 },
+ { "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 },
+ { "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 },
+ { "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 },
+ { "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 },
+ { "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 },
+ { "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 },
+ { "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 },
+ { "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 },
+ { "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 },
+ { "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
+ { "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 },
+ { "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 },
+ { "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 },
+ { "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 },
+ { "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 },
+ { "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 },
+ { "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 },
+ { "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 },
+ { "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 },
+ { "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 },
+ { "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 },
+ { "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 },
+ { "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
+ { "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 },
+ { "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 },
+ { "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 },
+ { "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 },
+ { "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 },
+ { "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 },
+ { "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 },
+ { "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 },
+ { "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 },
+ { "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 },
+ { "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 },
+ { "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 },
+ { "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 },
+ { "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 },
+ { "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 },
+ { "label": "k45", "matrix": [4, 5], "w": 2.75, "x": 3.75, "y": 4 },
+ { "label": "k46", "matrix": [4, 6], "w": 2.25, "x": 6.5, "y": 4 },
+ { "label": "k90", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 },
+ { "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 },
+ { "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 },
+ { "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 },
+ { "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 },
+ { "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 },
+ { "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 }
+ ]
}
+ }
}
diff --git a/keyboards/clueboard/66_hotswap/gen1/readme.md b/keyboards/clueboard/66_hotswap/gen1/readme.md
new file mode 100644
index 0000000000..036df01c64
--- /dev/null
+++ b/keyboards/clueboard/66_hotswap/gen1/readme.md
@@ -0,0 +1,16 @@
+# Clueboard 66% HotSwap
+
+![Clueboard](https://i.imgur.com/8UmBoNx.jpg)
+
+A fully customizable 66% keyboard with Hot Swap sockets.
+
+* Keyboard Maintainer: [Zach White](https://github.com/skullydazed)
+* Hardware Supported: Clueboard 66% HotSwap PCB
+ * 2.9 (gen1)
+* Hardware Availability: [clueboard.co](https://clueboard.co/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make clueboard/66_hotswap/gen1:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/clueboard/66_hotswap/gen1/rules.mk b/keyboards/clueboard/66_hotswap/gen1/rules.mk
index 18e01fcd19..7e85acec65 100644
--- a/keyboards/clueboard/66_hotswap/gen1/rules.mk
+++ b/keyboards/clueboard/66_hotswap/gen1/rules.mk
@@ -2,21 +2,5 @@
MCU = STM32F303
BOARD = QMK_PROTON_C
-# LED Configuration
-LED_MATRIX_ENABLE = yes
-LED_MATRIX_DRIVER = IS31FL3731
-
-# Build Options
-# comment out to disable the options.
-#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE = yes # USB Nkey Rollover
-AUDIO_ENABLE = yes
-# SERIAL_LINK_ENABLE = yes
-
-LAYOUTS = 66_ansi
+# project specific files
+SRC = led.c