]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
[Keyboard] Planck Layout Macro Refactor, Part II (#6156)
authornoroadsleft <18669334+noroadsleft@users.noreply.github.com>
Wed, 19 Jun 2019 17:56:20 +0000 (10:56 -0700)
committerDrashna Jaelre <drashna@live.com>
Wed, 19 Jun 2019 17:56:20 +0000 (10:56 -0700)
* Move layout macros to revision folders

* Update Planck EZ layout macros

Planck EZ only supports one layout (centered 2u spacebar). Deleted all the other macros.

* Flesh out QMK Configurator support

Give each Planck revision its own info.json file.

* Readme updates

- give each revision its own readme
- add the Planck EZ to the main Planck readme

* Fix layout macro for Planck EZ

Previous matrix didn't compile because the electrical matrix defined a k3b location, which was unused by the physical arguments.

Drashna was kind enough to confirm the Planck EZ's matrix for me.

Co-authored-by: Drashna Jaelre <drashna@live.com>
* Pretend the Planck EZ supports ortho_4x12 layout

The hardware doesn't, but doing so prevents CI errors because the default keymap uses LAYOUT_planck_grid.

Going to pretend LAYOUT_ortho_4x12 is a valid layout for the Planck EZ.

* Update Planck EZ's URL in info.json

Co-Authored-By: Drashna Jaelre <drashna@live.com>
26 files changed:
keyboards/planck/ez/ez.h
keyboards/planck/ez/info.json [new file with mode: 0644]
keyboards/planck/ez/readme.md [new file with mode: 0644]
keyboards/planck/light/info.json
keyboards/planck/light/light.h
keyboards/planck/light/readme.md [new file with mode: 0644]
keyboards/planck/planck.h
keyboards/planck/readme.md
keyboards/planck/rev1/info.json [new file with mode: 0644]
keyboards/planck/rev1/readme.md [new file with mode: 0644]
keyboards/planck/rev1/rev1.h [new file with mode: 0644]
keyboards/planck/rev2/info.json [new file with mode: 0644]
keyboards/planck/rev2/readme.md [new file with mode: 0644]
keyboards/planck/rev2/rev2.h [new file with mode: 0644]
keyboards/planck/rev3/info.json [new file with mode: 0644]
keyboards/planck/rev3/readme.md [new file with mode: 0644]
keyboards/planck/rev3/rev3.h [new file with mode: 0644]
keyboards/planck/rev4/info.json [new file with mode: 0644]
keyboards/planck/rev4/readme.md [new file with mode: 0644]
keyboards/planck/rev4/rev4.h [new file with mode: 0644]
keyboards/planck/rev5/info.json [new file with mode: 0644]
keyboards/planck/rev5/readme.md [new file with mode: 0644]
keyboards/planck/rev5/rev5.h [new file with mode: 0644]
keyboards/planck/rev6/info.json
keyboards/planck/rev6/readme.md [new file with mode: 0644]
keyboards/planck/rev6/rev6.h

index a3ca2b6ecebd5c7925aef280ec666d90040be9db..55c4032422ab2061cb251cdb42e16df41a25c644 100644 (file)
     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
     k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
     k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34,    k35,   k36, k37, k38, k39, k3a \
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
 ) \
 { \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k39, k3a, k3b }, \
-    { k06, k07, k08, k09, k0a, k0b }, \
-    { k16, k17, k18, k19, k1a, k1b }, \
-    { k26, k27, k28, k29, k2a, k2b }, \
-    { k36, k37, k38, k33, k34, k35 } \
+    { k00, k01, k02, k03, k04, k05   }, \
+    { k10, k11, k12, k13, k14, k15   }, \
+    { k20, k21, k22, k23, k24, k25   }, \
+    { k30, k31, k32, k3a, k3b, KC_NO }, \
+    { k06, k07, k08, k09, k0a, k0b   }, \
+    { k16, k17, k18, k19, k1a, k1b   }, \
+    { k26, k27, k28, k29, k2a, k2b   }, \
+    { k37, k38, k39, k33, k34, k35   } \
 }
 
-#define LAYOUT_planck_1x2uR( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34, k35,   k36,    k37, k38, k39, k3a \
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06,   k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16,   k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26,   k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, KC_NO, k37, k38, k39, k3a, k3b  \
 ) \
-{ \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k39, k3a, k3b }, \
-    { k06, k07, k08, k09, k0a, k0b }, \
-    { k16, k17, k18, k19, k1a, k1b }, \
-    { k26, k27, k28, k29, k2a, k2b }, \
-    { k36, k37, k38, k33, k34, k35 } \
-}
-
-#define LAYOUT_planck_1x2uL( \
+LAYOUT_planck_1x2uC( \
     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
     k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
     k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33,   k34,    k35, k36, k37, k38, k39, k3a \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k39, k3a, k3b }, \
-    { k06, k07, k08, k09, k0a, k0b }, \
-    { k16, k17, k18, k19, k1a, k1b }, \
-    { k26, k27, k28, k29, k2a, k2b }, \
-    { k36, k37, k38, k33, k34, k35 } \
-}
-
-#define LAYOUT_planck_2x2u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33,   k34,      k36,    k37, k38, k39, k3a \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k39, k3a, k3b }, \
-    { k06, k07, k08, k09, k0a, k0b }, \
-    { k16, k17, k18, k19, k1a, k1b }, \
-    { k26, k27, k28, k29, k2a, k2b }, \
-    { k36, k37, k38, k33, k34, k35 } \
-}
-
-#define LAYOUT_planck_grid( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34, k35, KC_NO, k36, k37, k38, k39, k3a \
-) \
-{ \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k39, k3a, KC_NO }, \
-    { k06, k07, k08, k09, k0a, k0b }, \
-    { k16, k17, k18, k19, k1a, k1b }, \
-    { k26, k27, k28, k29, k2a, k2b }, \
-    { k36, k37, k38, k33, k34, k35 } \
-}
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b  \
+)
 
-#define KEYMAP LAYOUT_planck_grid
-#define LAYOUT_ortho_4x12 LAYOUT_planck_grid
-#define KC_LAYOUT_ortho_4x12 KC_KEYMAP
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
diff --git a/keyboards/planck/ez/info.json b/keyboards/planck/ez/info.json
new file mode 100644 (file)
index 0000000..b8382bf
--- /dev/null
@@ -0,0 +1,115 @@
+{
+  "keyboard_name": "Planck EZ",
+  "keyboard_folder": "planck/ez",
+  "url": "https://ergodox-ez.com/pages/planck",
+  "maintainer": "jackhumbert",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_planck_1x2uC": {
+      "key_count": 47,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3, "w": 2 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    },
+    "LAYOUT_ortho_4x12": {
+      "key_count": 48,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3 },
+        { "x": 6, "y": 3 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    }
+  }
+}
diff --git a/keyboards/planck/ez/readme.md b/keyboards/planck/ez/readme.md
new file mode 100644 (file)
index 0000000..9bd161a
--- /dev/null
@@ -0,0 +1,15 @@
+# Planck EZ
+
+![Planck EZ](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/planck/ez/neat-planck-banner.png)
+
+A variant of the Planck featuring a 2u spacebar and per-key RGB backlighting.
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck EZ  
+Hardware Availability: [ergodox-ez.com](https://ergodox-ez.com/pages/planck)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/ez: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).
index 34566f85d3c886964ab3b5e9d12267a2f23e2a53..fa8f4c43beab4f9047e49396f72f7c11adaf645f 100644 (file)
@@ -1,4 +1,115 @@
 {
   "keyboard_name": "Planck Light",
-  "keyboard_folder": "planck/light"
+  "keyboard_folder": "planck/light",
+  "url": "https://olkb.com/planck",
+  "maintainer": "jackhumbert",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_planck_1x2uC": {
+      "key_count": 47,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3, "w": 2 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    },
+    "LAYOUT_ortho_4x12": {
+      "key_count": 48,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3 },
+        { "x": 6, "y": 3 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    }
+  }
 }
index a395f30e8877c89196621ab80a22542fbc3b5cd9..2cf46c2a2769fd9ad163b286a92c708ba990af4a 100644 (file)
 #include "planck.h"
 #include "rgb_matrix.h"
 
+#define LAYOUT_planck_1x2uC( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
+}
+
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
+}
+
+// Used to create a keymap using only KC_ prefixed keys
+#define LAYOUT_kc( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+LAYOUT_ortho_4x12( \
+    KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+    KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+    KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+    KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+)
+
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
+#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
+#define KC_KEYMAP LAYOUT_kc
+
 #endif
\ No newline at end of file
diff --git a/keyboards/planck/light/readme.md b/keyboards/planck/light/readme.md
new file mode 100644 (file)
index 0000000..f372e1f
--- /dev/null
@@ -0,0 +1,15 @@
+# Planck Light
+
+![Planck Light](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/planck/light/planck_light.jpg)
+
+A Planck variant sold by Massdrop. Designed for Kailh PG1350 "Choc" switches, the Planck Light Features per-key RGB backlighting and a dual-channel speaker. [More info on qmk.fm](http://qmk.fm/planck/)
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck Light  
+Hardware Availability: [Massdrop](https://www.massdrop.com/buy/massdrop-x-olkb-planck-light-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/light: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).
index 09ac0c6077d1ffa4383d87a6ac3263e49b10f43a..1beafa7764a481d0af9563683bd16337115eb16c 100644 (file)
 
 #define encoder_update(clockwise) encoder_update_user(uint8_t index, clockwise)
 
-#ifdef KEYBOARD_planck_ez
+#if defined(KEYBOARD_planck_ez)
   #include "ez.h"
-#endif
-
-#ifdef __AVR__ // Planck revs. 1-5
-
-  #define LAYOUT_planck_1x2uC( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
-  ) \
-  { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
-    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
-  }
-
-  #define LAYOUT_ortho_4x12( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
-  ) \
-  { \
-    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
-    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
-    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
-    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
-  }
-
-#elif KEYBOARD_planck_rev6
-
-  #define LAYOUT_planck_1x2uC( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34,    k36,   k37, k38, k39, k3a, k3b \
-  ) \
-  { \
-    { k00, k01, k02, k03, k04, k05   }, \
-    { k10, k11, k12, k13, k14, k15   }, \
-    { k20, k21, k22, k23, k24, k25   }, \
-    { k30, k31, k32, k39, k3a, k3b   }, \
-    { k06, k07, k08, k09, k0a, k0b   }, \
-    { k16, k17, k18, k19, k1a, k1b   }, \
-    { k26, k27, k28, k29, k2a, k2b   }, \
-    { k36, k37, k38, k33, k34, KC_NO } \
-  }
-
-  #define LAYOUT_planck_1x2uR( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34, k35,   k37,    k38, k39, k3a, k3b \
-  ) \
-  { \
-    { k00,   k01, k02, k03, k04, k05 }, \
-    { k10,   k11, k12, k13, k14, k15 }, \
-    { k20,   k21, k22, k23, k24, k25 }, \
-    { k30,   k31, k32, k39, k3a, k3b }, \
-    { k06,   k07, k08, k09, k0a, k0b }, \
-    { k16,   k17, k18, k19, k1a, k1b }, \
-    { k26,   k27, k28, k29, k2a, k2b }, \
-    { KC_NO, k37, k38, k33, k34, k35 } \
-  }
-
-  #define LAYOUT_planck_1x2uL( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33,   k35,    k36, k37, k38, k39, k3a, k3b \
-  ) \
-  { \
-    { k00, k01, k02, k03, k04,   k05 }, \
-    { k10, k11, k12, k13, k14,   k15 }, \
-    { k20, k21, k22, k23, k24,   k25 }, \
-    { k30, k31, k32, k39, k3a,   k3b }, \
-    { k06, k07, k08, k09, k0a,   k0b }, \
-    { k16, k17, k18, k19, k1a,   k1b }, \
-    { k26, k27, k28, k29, k2a,   k2b }, \
-    { k36, k37, k38, k33, KC_NO, k35 } \
-  }
-
-  #define LAYOUT_planck_2x2u( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33,   k35,      k37,    k38, k39, k3a, k3b \
-  ) \
-  { \
-    { k00,   k01, k02, k03, k04,   k05 }, \
-    { k10,   k11, k12, k13, k14,   k15 }, \
-    { k20,   k21, k22, k23, k24,   k25 }, \
-    { k30,   k31, k32, k39, k3a,   k3b }, \
-    { k06,   k07, k08, k09, k0a,   k0b }, \
-    { k16,   k17, k18, k19, k1a,   k1b }, \
-    { k26,   k27, k28, k29, k2a,   k2b }, \
-    { KC_NO, k37, k38, k33, KC_NO, k35 } \
-  }
-
-  #define LAYOUT_ortho_4x12( \
-    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
-  ) \
-  { \
-    { k00, k01, k02, k03, k04, k05 }, \
-    { k10, k11, k12, k13, k14, k15 }, \
-    { k20, k21, k22, k23, k24, k25 }, \
-    { k30, k31, k32, k39, k3a, k3b }, \
-    { k06, k07, k08, k09, k0a, k0b }, \
-    { k16, k17, k18, k19, k1a, k1b }, \
-    { k26, k27, k28, k29, k2a, k2b }, \
-    { k36, k37, k38, k33, k34, k35 } \
-  }
-
-#endif
-
-// all Planck keyboards
-
-// Used to create a keymap using only KC_ prefixed keys
-#define LAYOUT_kc( \
-  k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
-  k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
-  k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
-  k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
-) \
-LAYOUT_ortho_4x12( \
-  KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
-  KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
-  KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
-  KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
-)
-
-#define KEYMAP LAYOUT_ortho_4x12
-#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
-#define LAYOUT_planck_grid LAYOUT_ortho_4x12
-#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
-#define KC_KEYMAP LAYOUT_kc
+#elif defined(KEYBOARD_planck_light)
+  #include "light.h"
+#elif defined(KEYBOARD_planck_rev1)
+  #include "rev1.h"
+#elif defined(KEYBOARD_planck_rev2)
+  #include "rev2.h"
+#elif defined(KEYBOARD_planck_rev3)
+  #include "rev3.h"
+#elif defined(KEYBOARD_planck_rev4)
+  #include "rev4.h"
+#elif defined(KEYBOARD_planck_rev5)
+  #include "rev5.h"
+#elif defined(KEYBOARD_planck_rev6)
+  #include "rev6.h"
+#endif // Planck revisions
 
 #endif
index 94b256c74518b20831f1b34c7da05d59e86f2e78..0d836563c4112409eb6976dc37e4f1ae7d83c9ec 100644 (file)
@@ -6,7 +6,7 @@ Planck
 A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
 
 Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
-Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6; Planck Light  
+Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6; Planck Light, Planck EZ  
 Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
 
 Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/planck/rev1/info.json b/keyboards/planck/rev1/info.json
new file mode 100644 (file)
index 0000000..c64cdbf
--- /dev/null
@@ -0,0 +1,115 @@
+{
+  "keyboard_name": "Planck rev 1",
+  "keyboard_folder": "planck/rev1",
+  "url": "https://olkb.com/planck",
+  "maintainer": "jackhumbert",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_planck_1x2uC": {
+      "key_count": 47,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3, "w": 2 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    },
+    "LAYOUT_ortho_4x12": {
+      "key_count": 48,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3 },
+        { "x": 6, "y": 3 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    }
+  }
+}
diff --git a/keyboards/planck/rev1/readme.md b/keyboards/planck/rev1/readme.md
new file mode 100644 (file)
index 0000000..b5561fc
--- /dev/null
@@ -0,0 +1,13 @@
+# Planck
+
+A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck PCB rev1  
+Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/rev1:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/planck/rev1/rev1.h b/keyboards/planck/rev1/rev1.h
new file mode 100644 (file)
index 0000000..f81b36b
--- /dev/null
@@ -0,0 +1,49 @@
+#pragma once
+
+#include "planck.h"
+
+#define LAYOUT_planck_1x2uC( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
+}
+
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
+}
+
+// Used to create a keymap using only KC_ prefixed keys
+#define LAYOUT_kc( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+LAYOUT_ortho_4x12( \
+    KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+    KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+    KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+    KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+)
+
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
+#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
+#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev2/info.json b/keyboards/planck/rev2/info.json
new file mode 100644 (file)
index 0000000..68f89f6
--- /dev/null
@@ -0,0 +1,115 @@
+{
+  "keyboard_name": "Planck rev 2",
+  "keyboard_folder": "planck/rev2",
+  "url": "https://olkb.com/planck",
+  "maintainer": "jackhumbert",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_planck_1x2uC": {
+      "key_count": 47,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3, "w": 2 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    },
+    "LAYOUT_ortho_4x12": {
+      "key_count": 48,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3 },
+        { "x": 6, "y": 3 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    }
+  }
+}
diff --git a/keyboards/planck/rev2/readme.md b/keyboards/planck/rev2/readme.md
new file mode 100644 (file)
index 0000000..16fa8b7
--- /dev/null
@@ -0,0 +1,13 @@
+# Planck
+
+A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck PCB rev2  
+Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/rev2: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/planck/rev2/rev2.h b/keyboards/planck/rev2/rev2.h
new file mode 100644 (file)
index 0000000..f81b36b
--- /dev/null
@@ -0,0 +1,49 @@
+#pragma once
+
+#include "planck.h"
+
+#define LAYOUT_planck_1x2uC( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
+}
+
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
+}
+
+// Used to create a keymap using only KC_ prefixed keys
+#define LAYOUT_kc( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+LAYOUT_ortho_4x12( \
+    KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+    KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+    KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+    KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+)
+
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
+#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
+#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev3/info.json b/keyboards/planck/rev3/info.json
new file mode 100644 (file)
index 0000000..65e59ad
--- /dev/null
@@ -0,0 +1,115 @@
+{
+  "keyboard_name": "Planck rev 3",
+  "keyboard_folder": "planck/rev3",
+  "url": "https://olkb.com/planck",
+  "maintainer": "jackhumbert",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_planck_1x2uC": {
+      "key_count": 47,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3, "w": 2 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    },
+    "LAYOUT_ortho_4x12": {
+      "key_count": 48,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3 },
+        { "x": 6, "y": 3 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    }
+  }
+}
diff --git a/keyboards/planck/rev3/readme.md b/keyboards/planck/rev3/readme.md
new file mode 100644 (file)
index 0000000..26ef898
--- /dev/null
@@ -0,0 +1,13 @@
+# Planck
+
+A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck PCB rev3  
+Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/rev3: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/planck/rev3/rev3.h b/keyboards/planck/rev3/rev3.h
new file mode 100644 (file)
index 0000000..f81b36b
--- /dev/null
@@ -0,0 +1,49 @@
+#pragma once
+
+#include "planck.h"
+
+#define LAYOUT_planck_1x2uC( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
+}
+
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
+}
+
+// Used to create a keymap using only KC_ prefixed keys
+#define LAYOUT_kc( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+LAYOUT_ortho_4x12( \
+    KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+    KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+    KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+    KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+)
+
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
+#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
+#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev4/info.json b/keyboards/planck/rev4/info.json
new file mode 100644 (file)
index 0000000..ad135b6
--- /dev/null
@@ -0,0 +1,115 @@
+{
+  "keyboard_name": "Planck rev 4",
+  "keyboard_folder": "planck/rev4",
+  "url": "https://olkb.com/planck",
+  "maintainer": "jackhumbert",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_planck_1x2uC": {
+      "key_count": 47,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3, "w": 2 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    },
+    "LAYOUT_ortho_4x12": {
+      "key_count": 48,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3 },
+        { "x": 6, "y": 3 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    }
+  }
+}
diff --git a/keyboards/planck/rev4/readme.md b/keyboards/planck/rev4/readme.md
new file mode 100644 (file)
index 0000000..4cf6e8c
--- /dev/null
@@ -0,0 +1,13 @@
+# Planck
+
+A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. The first revision of the Planck to support Audio. [More info on qmk.fm](http://qmk.fm/planck/)
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck PCB rev4  
+Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/rev4: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/planck/rev4/rev4.h b/keyboards/planck/rev4/rev4.h
new file mode 100644 (file)
index 0000000..f81b36b
--- /dev/null
@@ -0,0 +1,49 @@
+#pragma once
+
+#include "planck.h"
+
+#define LAYOUT_planck_1x2uC( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
+}
+
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
+}
+
+// Used to create a keymap using only KC_ prefixed keys
+#define LAYOUT_kc( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+LAYOUT_ortho_4x12( \
+    KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+    KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+    KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+    KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+)
+
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
+#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
+#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev5/info.json b/keyboards/planck/rev5/info.json
new file mode 100644 (file)
index 0000000..6f31472
--- /dev/null
@@ -0,0 +1,115 @@
+{
+  "keyboard_name": "Planck rev 5",
+  "keyboard_folder": "planck/rev5",
+  "url": "https://olkb.com/planck",
+  "maintainer": "jackhumbert",
+  "width": 12,
+  "height": 4,
+  "layouts": {
+    "LAYOUT_planck_1x2uC": {
+      "key_count": 47,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3, "w": 2 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    },
+    "LAYOUT_ortho_4x12": {
+      "key_count": 48,
+      "layout": [
+        { "x": 0, "y": 0 },
+        { "x": 1, "y": 0 },
+        { "x": 2, "y": 0 },
+        { "x": 3, "y": 0 },
+        { "x": 4, "y": 0 },
+        { "x": 5, "y": 0 },
+        { "x": 6, "y": 0 },
+        { "x": 7, "y": 0 },
+        { "x": 8, "y": 0 },
+        { "x": 9, "y": 0 },
+        { "x": 10, "y": 0 },
+        { "x": 11, "y": 0 },
+        { "x": 0, "y": 1 },
+        { "x": 1, "y": 1 },
+        { "x": 2, "y": 1 },
+        { "x": 3, "y": 1 },
+        { "x": 4, "y": 1 },
+        { "x": 5, "y": 1 },
+        { "x": 6, "y": 1 },
+        { "x": 7, "y": 1 },
+        { "x": 8, "y": 1 },
+        { "x": 9, "y": 1 },
+        { "x": 10, "y": 1 },
+        { "x": 11, "y": 1 },
+        { "x": 0, "y": 2 },
+        { "x": 1, "y": 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": 0, "y": 3 },
+        { "x": 1, "y": 3 },
+        { "x": 2, "y": 3 },
+        { "x": 3, "y": 3 },
+        { "x": 4, "y": 3 },
+        { "x": 5, "y": 3 },
+        { "x": 6, "y": 3 },
+        { "x": 7, "y": 3 },
+        { "x": 8, "y": 3 },
+        { "x": 9, "y": 3 },
+        { "x": 10, "y": 3 },
+        { "x": 11, "y": 3 }
+      ]
+    }
+  }
+}
diff --git a/keyboards/planck/rev5/readme.md b/keyboards/planck/rev5/readme.md
new file mode 100644 (file)
index 0000000..fed975a
--- /dev/null
@@ -0,0 +1,13 @@
+# Planck
+
+A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck PCB rev5  
+Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/rev5:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/planck/rev5/rev5.h b/keyboards/planck/rev5/rev5.h
new file mode 100644 (file)
index 0000000..f81b36b
--- /dev/null
@@ -0,0 +1,49 @@
+#pragma once
+
+#include "planck.h"
+
+#define LAYOUT_planck_1x2uC( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34,    k35,   k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
+}
+
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
+    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
+    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
+    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
+}
+
+// Used to create a keymap using only KC_ prefixed keys
+#define LAYOUT_kc( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+LAYOUT_ortho_4x12( \
+    KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+    KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+    KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+    KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+)
+
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
+#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
+#define KC_KEYMAP LAYOUT_kc
index 81eacabc39859b511d55911c26ee8bd8aad657f6..66dd8f575a60cf38ac46ac11c04fb10e49d89df7 100644 (file)
@@ -1,6 +1,6 @@
 {
-  "keyboard_name": "Planck",
-  "keyboard_folder": "planck",
+  "keyboard_name": "Planck rev 6",
+  "keyboard_folder": "planck/rev6",
   "url": "https://olkb.com/planck",
   "maintainer": "jackhumbert",
   "width": 12,
diff --git a/keyboards/planck/rev6/readme.md b/keyboards/planck/rev6/readme.md
new file mode 100644 (file)
index 0000000..1034eb9
--- /dev/null
@@ -0,0 +1,13 @@
+# Planck
+
+A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. A complete hardware rework of the Planck, sporting a faster and more powerful STM32 ARM Cortex-M4 microcontroller, with support for rotary encoders and three additional layouts. [More info on qmk.fm](http://qmk.fm/planck/)
+
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Planck PCB rev6  
+Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make planck/rev6: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).
index 75c2904c5c9c05f4be0c3ce726a9e3fe60b3914c..601e347f5e1df3838550d6f6bde193caef7cad2e 100644 (file)
 
 #include "planck.h"
 
+#define LAYOUT_planck_1x2uC( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34,    k36,   k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05   }, \
+    { k10, k11, k12, k13, k14, k15   }, \
+    { k20, k21, k22, k23, k24, k25   }, \
+    { k30, k31, k32, k39, k3a, k3b   }, \
+    { k06, k07, k08, k09, k0a, k0b   }, \
+    { k16, k17, k18, k19, k1a, k1b   }, \
+    { k26, k27, k28, k29, k2a, k2b   }, \
+    { k36, k37, k38, k33, k34, KC_NO } \
+}
+
+#define LAYOUT_planck_1x2uR( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35,   k37,    k38, k39, k3a, k3b \
+) \
+{ \
+    { k00,   k01, k02, k03, k04, k05 }, \
+    { k10,   k11, k12, k13, k14, k15 }, \
+    { k20,   k21, k22, k23, k24, k25 }, \
+    { k30,   k31, k32, k39, k3a, k3b }, \
+    { k06,   k07, k08, k09, k0a, k0b }, \
+    { k16,   k17, k18, k19, k1a, k1b }, \
+    { k26,   k27, k28, k29, k2a, k2b }, \
+    { KC_NO, k37, k38, k33, k34, k35 } \
+}
+
+#define LAYOUT_planck_1x2uL( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33,   k35,    k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04,   k05 }, \
+    { k10, k11, k12, k13, k14,   k15 }, \
+    { k20, k21, k22, k23, k24,   k25 }, \
+    { k30, k31, k32, k39, k3a,   k3b }, \
+    { k06, k07, k08, k09, k0a,   k0b }, \
+    { k16, k17, k18, k19, k1a,   k1b }, \
+    { k26, k27, k28, k29, k2a,   k2b }, \
+    { k36, k37, k38, k33, KC_NO, k35 } \
+}
+
+#define LAYOUT_planck_2x2u( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33,   k35,      k37,    k38, k39, k3a, k3b \
+) \
+{ \
+    { k00,   k01, k02, k03, k04,   k05 }, \
+    { k10,   k11, k12, k13, k14,   k15 }, \
+    { k20,   k21, k22, k23, k24,   k25 }, \
+    { k30,   k31, k32, k39, k3a,   k3b }, \
+    { k06,   k07, k08, k09, k0a,   k0b }, \
+    { k16,   k17, k18, k19, k1a,   k1b }, \
+    { k26,   k27, k28, k29, k2a,   k2b }, \
+    { KC_NO, k37, k38, k33, KC_NO, k35 } \
+}
+
+#define LAYOUT_ortho_4x12( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+{ \
+    { k00, k01, k02, k03, k04, k05 }, \
+    { k10, k11, k12, k13, k14, k15 }, \
+    { k20, k21, k22, k23, k24, k25 }, \
+    { k30, k31, k32, k39, k3a, k3b }, \
+    { k06, k07, k08, k09, k0a, k0b }, \
+    { k16, k17, k18, k19, k1a, k1b }, \
+    { k26, k27, k28, k29, k2a, k2b }, \
+    { k36, k37, k38, k33, k34, k35 } \
+}
+
+
+// Used to create a keymap using only KC_ prefixed keys
+#define LAYOUT_kc( \
+    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+) \
+LAYOUT_ortho_4x12( \
+    KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+    KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+    KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+    KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+)
+
+#define KEYMAP LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit  LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
+#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
+#define KC_KEYMAP LAYOUT_kc
+
 #endif