aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/planck/ez/ez.h95
-rw-r--r--keyboards/planck/ez/info.json115
-rw-r--r--keyboards/planck/ez/readme.md15
-rw-r--r--keyboards/planck/light/info.json113
-rw-r--r--keyboards/planck/light/light.h46
-rw-r--r--keyboards/planck/light/readme.md15
-rw-r--r--keyboards/planck/planck.h157
-rw-r--r--keyboards/planck/readme.md2
-rw-r--r--keyboards/planck/rev1/info.json115
-rw-r--r--keyboards/planck/rev1/readme.md13
-rw-r--r--keyboards/planck/rev1/rev1.h49
-rw-r--r--keyboards/planck/rev2/info.json115
-rw-r--r--keyboards/planck/rev2/readme.md13
-rw-r--r--keyboards/planck/rev2/rev2.h49
-rw-r--r--keyboards/planck/rev3/info.json115
-rw-r--r--keyboards/planck/rev3/readme.md13
-rw-r--r--keyboards/planck/rev3/rev3.h49
-rw-r--r--keyboards/planck/rev4/info.json115
-rw-r--r--keyboards/planck/rev4/readme.md13
-rw-r--r--keyboards/planck/rev4/rev4.h49
-rw-r--r--keyboards/planck/rev5/info.json115
-rw-r--r--keyboards/planck/rev5/readme.md13
-rw-r--r--keyboards/planck/rev5/rev5.h49
-rw-r--r--keyboards/planck/rev6/info.json4
-rw-r--r--keyboards/planck/rev6/readme.md13
-rw-r--r--keyboards/planck/rev6/rev6.h106
26 files changed, 1346 insertions, 220 deletions
diff --git a/keyboards/planck/ez/ez.h b/keyboards/planck/ez/ez.h
index a3ca2b6ec..55c403242 100644
--- a/keyboards/planck/ez/ez.h
+++ b/keyboards/planck/ez/ez.h
@@ -21,87 +21,32 @@
21 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ 21 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
22 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ 22 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
23 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ 23 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
24 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \ 24 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
25) \ 25) \
26{ \ 26{ \
27 { k00, k01, k02, k03, k04, k05 }, \ 27 { k00, k01, k02, k03, k04, k05 }, \
28 { k10, k11, k12, k13, k14, k15 }, \ 28 { k10, k11, k12, k13, k14, k15 }, \
29 { k20, k21, k22, k23, k24, k25 }, \ 29 { k20, k21, k22, k23, k24, k25 }, \
30 { k30, k31, k32, k39, k3a, k3b }, \ 30 { k30, k31, k32, k3a, k3b, KC_NO }, \
31 { k06, k07, k08, k09, k0a, k0b }, \ 31 { k06, k07, k08, k09, k0a, k0b }, \
32 { k16, k17, k18, k19, k1a, k1b }, \ 32 { k16, k17, k18, k19, k1a, k1b }, \
33 { k26, k27, k28, k29, k2a, k2b }, \ 33 { k26, k27, k28, k29, k2a, k2b }, \
34 { k36, k37, k38, k33, k34, k35 } \ 34 { k37, k38, k39, k33, k34, k35 } \
35} 35}
36 36
37#define LAYOUT_planck_1x2uR( \ 37#define LAYOUT_ortho_4x12( \
38 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ 38 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
39 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ 39 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
40 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ 40 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
41 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \ 41 k30, k31, k32, k33, k34, k35, KC_NO, k37, k38, k39, k3a, k3b \
42) \ 42) \
43{ \ 43LAYOUT_planck_1x2uC( \
44 { k00, k01, k02, k03, k04, k05 }, \
45 { k10, k11, k12, k13, k14, k15 }, \
46 { k20, k21, k22, k23, k24, k25 }, \
47 { k30, k31, k32, k39, k3a, k3b }, \
48 { k06, k07, k08, k09, k0a, k0b }, \
49 { k16, k17, k18, k19, k1a, k1b }, \
50 { k26, k27, k28, k29, k2a, k2b }, \
51 { k36, k37, k38, k33, k34, k35 } \
52}
53
54#define LAYOUT_planck_1x2uL( \
55 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ 44 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
56 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ 45 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
57 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ 46 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
58 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \ 47 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
59) \ 48)
60{ \
61 { k00, k01, k02, k03, k04, k05 }, \
62 { k10, k11, k12, k13, k14, k15 }, \
63 { k20, k21, k22, k23, k24, k25 }, \
64 { k30, k31, k32, k39, k3a, k3b }, \
65 { k06, k07, k08, k09, k0a, k0b }, \
66 { k16, k17, k18, k19, k1a, k1b }, \
67 { k26, k27, k28, k29, k2a, k2b }, \
68 { k36, k37, k38, k33, k34, k35 } \
69}
70
71#define LAYOUT_planck_2x2u( \
72 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
73 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
74 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
75 k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a \
76) \
77{ \
78 { k00, k01, k02, k03, k04, k05 }, \
79 { k10, k11, k12, k13, k14, k15 }, \
80 { k20, k21, k22, k23, k24, k25 }, \
81 { k30, k31, k32, k39, k3a, k3b }, \
82 { k06, k07, k08, k09, k0a, k0b }, \
83 { k16, k17, k18, k19, k1a, k1b }, \
84 { k26, k27, k28, k29, k2a, k2b }, \
85 { k36, k37, k38, k33, k34, k35 } \
86}
87
88#define LAYOUT_planck_grid( \
89 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
90 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
91 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
92 k30, k31, k32, k33, k34, k35, KC_NO, k36, k37, k38, k39, k3a \
93) \
94{ \
95 { k00, k01, k02, k03, k04, k05 }, \
96 { k10, k11, k12, k13, k14, k15 }, \
97 { k20, k21, k22, k23, k24, k25 }, \
98 { k30, k31, k32, k39, k3a, KC_NO }, \
99 { k06, k07, k08, k09, k0a, k0b }, \
100 { k16, k17, k18, k19, k1a, k1b }, \
101 { k26, k27, k28, k29, k2a, k2b }, \
102 { k36, k37, k38, k33, k34, k35 } \
103}
104 49
105#define KEYMAP LAYOUT_planck_grid 50#define KEYMAP LAYOUT_ortho_4x12
106#define LAYOUT_ortho_4x12 LAYOUT_planck_grid 51#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
107#define KC_LAYOUT_ortho_4x12 KC_KEYMAP 52#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
index 000000000..b8382bfe0
--- /dev/null
+++ b/keyboards/planck/ez/info.json
@@ -0,0 +1,115 @@
1{
2 "keyboard_name": "Planck EZ",
3 "keyboard_folder": "planck/ez",
4 "url": "https://ergodox-ez.com/pages/planck",
5 "maintainer": "jackhumbert",
6 "width": 12,
7 "height": 4,
8 "layouts": {
9 "LAYOUT_planck_1x2uC": {
10 "key_count": 47,
11 "layout": [
12 { "x": 0, "y": 0 },
13 { "x": 1, "y": 0 },
14 { "x": 2, "y": 0 },
15 { "x": 3, "y": 0 },
16 { "x": 4, "y": 0 },
17 { "x": 5, "y": 0 },
18 { "x": 6, "y": 0 },
19 { "x": 7, "y": 0 },
20 { "x": 8, "y": 0 },
21 { "x": 9, "y": 0 },
22 { "x": 10, "y": 0 },
23 { "x": 11, "y": 0 },
24 { "x": 0, "y": 1 },
25 { "x": 1, "y": 1 },
26 { "x": 2, "y": 1 },
27 { "x": 3, "y": 1 },
28 { "x": 4, "y": 1 },
29 { "x": 5, "y": 1 },
30 { "x": 6, "y": 1 },
31 { "x": 7, "y": 1 },
32 { "x": 8, "y": 1 },
33 { "x": 9, "y": 1 },
34 { "x": 10, "y": 1 },
35 { "x": 11, "y": 1 },
36 { "x": 0, "y": 2 },
37 { "x": 1, "y": 2 },
38 { "x": 2, "y": 2 },
39 { "x": 3, "y": 2 },
40 { "x": 4, "y": 2 },
41 { "x": 5, "y": 2 },
42 { "x": 6, "y": 2 },
43 { "x": 7, "y": 2 },
44 { "x": 8, "y": 2 },
45 { "x": 9, "y": 2 },
46 { "x": 10, "y": 2 },
47 { "x": 11, "y": 2 },
48 { "x": 0, "y": 3 },
49 { "x": 1, "y": 3 },
50 { "x": 2, "y": 3 },
51 { "x": 3, "y": 3 },
52 { "x": 4, "y": 3 },
53 { "x": 5, "y": 3, "w": 2 },
54 { "x": 7, "y": 3 },
55 { "x": 8, "y": 3 },
56 { "x": 9, "y": 3 },
57 { "x": 10, "y": 3 },
58 { "x": 11, "y": 3 }
59 ]
60 },
61 "LAYOUT_ortho_4x12": {
62 "key_count": 48,
63 "layout": [
64 { "x": 0, "y": 0 },
65 { "x": 1, "y": 0 },
66 { "x": 2, "y": 0 },
67 { "x": 3, "y": 0 },
68 { "x": 4, "y": 0 },
69 { "x": 5, "y": 0 },
70 { "x": 6, "y": 0 },
71 { "x": 7, "y": 0 },
72 { "x": 8, "y": 0 },
73 { "x": 9, "y": 0 },
74 { "x": 10, "y": 0 },
75 { "x": 11, "y": 0 },
76 { "x": 0, "y": 1 },
77 { "x": 1, "y": 1 },
78 { "x": 2, "y": 1 },
79 { "x": 3, "y": 1 },
80 { "x": 4, "y": 1 },
81 { "x": 5, "y": 1 },
82 { "x": 6, "y": 1 },
83 { "x": 7, "y": 1 },
84 { "x": 8, "y": 1 },
85 { "x": 9, "y": 1 },
86 { "x": 10, "y": 1 },
87 { "x": 11, "y": 1 },
88 { "x": 0, "y": 2 },
89 { "x": 1, "y": 2 },
90 { "x": 2, "y": 2 },
91 { "x": 3, "y": 2 },
92 { "x": 4, "y": 2 },
93 { "x": 5, "y": 2 },
94 { "x": 6, "y": 2 },
95 { "x": 7, "y": 2 },
96 { "x": 8, "y": 2 },
97 { "x": 9, "y": 2 },
98 { "x": 10, "y": 2 },
99 { "x": 11, "y": 2 },
100 { "x": 0, "y": 3 },
101 { "x": 1, "y": 3 },
102 { "x": 2, "y": 3 },
103 { "x": 3, "y": 3 },
104 { "x": 4, "y": 3 },
105 { "x": 5, "y": 3 },
106 { "x": 6, "y": 3 },
107 { "x": 7, "y": 3 },
108 { "x": 8, "y": 3 },
109 { "x": 9, "y": 3 },
110 { "x": 10, "y": 3 },
111 { "x": 11, "y": 3 }
112 ]
113 }
114 }
115}
diff --git a/keyboards/planck/ez/readme.md b/keyboards/planck/ez/readme.md
new file mode 100644
index 000000000..9bd161abd
--- /dev/null
+++ b/keyboards/planck/ez/readme.md
@@ -0,0 +1,15 @@
1# Planck EZ
2
3![Planck EZ](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/planck/ez/neat-planck-banner.png)
4
5A variant of the Planck featuring a 2u spacebar and per-key RGB backlighting.
6
7Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
8Hardware Supported: Planck EZ
9Hardware Availability: [ergodox-ez.com](https://ergodox-ez.com/pages/planck)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make planck/ez:default
14
15See 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/light/info.json b/keyboards/planck/light/info.json
index 34566f85d..fa8f4c43b 100644
--- a/keyboards/planck/light/info.json
+++ b/keyboards/planck/light/info.json
@@ -1,4 +1,115 @@
1{ 1{
2 "keyboard_name": "Planck Light", 2 "keyboard_name": "Planck Light",
3 "keyboard_folder": "planck/light" 3 "keyboard_folder": "planck/light",
4 "url": "https://olkb.com/planck",
5 "maintainer": "jackhumbert",
6 "width": 12,
7 "height": 4,
8 "layouts": {
9 "LAYOUT_planck_1x2uC": {
10 "key_count": 47,
11 "layout": [
12 { "x": 0, "y": 0 },
13 { "x": 1, "y": 0 },
14 { "x": 2, "y": 0 },
15 { "x": 3, "y": 0 },
16 { "x": 4, "y": 0 },
17 { "x": 5, "y": 0 },
18 { "x": 6, "y": 0 },
19 { "x": 7, "y": 0 },
20 { "x": 8, "y": 0 },
21 { "x": 9, "y": 0 },
22 { "x": 10, "y": 0 },
23 { "x": 11, "y": 0 },
24 { "x": 0, "y": 1 },
25 { "x": 1, "y": 1 },
26 { "x": 2, "y": 1 },
27 { "x": 3, "y": 1 },
28 { "x": 4, "y": 1 },
29 { "x": 5, "y": 1 },
30 { "x": 6, "y": 1 },
31 { "x": 7, "y": 1 },
32 { "x": 8, "y": 1 },
33 { "x": 9, "y": 1 },
34 { "x": 10, "y": 1 },
35 { "x": 11, "y": 1 },
36 { "x": 0, "y": 2 },
37 { "x": 1, "y": 2 },
38 { "x": 2, "y": 2 },
39 { "x": 3, "y": 2 },
40 { "x": 4, "y": 2 },
41 { "x": 5, "y": 2 },
42 { "x": 6, "y": 2 },
43 { "x": 7, "y": 2 },
44 { "x": 8, "y": 2 },
45 { "x": 9, "y": 2 },
46 { "x": 10, "y": 2 },
47 { "x": 11, "y": 2 },
48 { "x": 0, "y": 3 },
49 { "x": 1, "y": 3 },
50 { "x": 2, "y": 3 },
51 { "x": 3, "y": 3 },
52 { "x": 4, "y": 3 },
53 { "x": 5, "y": 3, "w": 2 },
54 { "x": 7, "y": 3 },
55 { "x": 8, "y": 3 },
56 { "x": 9, "y": 3 },
57 { "x": 10, "y": 3 },
58 { "x": 11, "y": 3 }
59 ]
60 },
61 "LAYOUT_ortho_4x12": {
62 "key_count": 48,
63 "layout": [
64 { "x": 0, "y": 0 },
65 { "x": 1, "y": 0 },
66 { "x": 2, "y": 0 },
67 { "x": 3, "y": 0 },
68 { "x": 4, "y": 0 },
69 { "x": 5, "y": 0 },
70 { "x": 6, "y": 0 },
71 { "x": 7, "y": 0 },
72 { "x": 8, "y": 0 },
73 { "x": 9, "y": 0 },
74 { "x": 10, "y": 0 },
75 { "x": 11, "y": 0 },
76 { "x": 0, "y": 1 },
77 { "x": 1, "y": 1 },
78 { "x": 2, "y": 1 },
79 { "x": 3, "y": 1 },
80 { "x": 4, "y": 1 },
81 { "x": 5, "y": 1 },
82 { "x": 6, "y": 1 },
83 { "x": 7, "y": 1 },
84 { "x": 8, "y": 1 },
85 { "x": 9, "y": 1 },
86 { "x": 10, "y": 1 },
87 { "x": 11, "y": 1 },
88 { "x": 0, "y": 2 },
89 { "x": 1, "y": 2 },
90 { "x": 2, "y": 2 },
91 { "x": 3, "y": 2 },
92 { "x": 4, "y": 2 },
93 { "x": 5, "y": 2 },
94 { "x": 6, "y": 2 },
95 { "x": 7, "y": 2 },
96 { "x": 8, "y": 2 },
97 { "x": 9, "y": 2 },
98 { "x": 10, "y": 2 },
99 { "x": 11, "y": 2 },
100 { "x": 0, "y": 3 },
101 { "x": 1, "y": 3 },
102 { "x": 2, "y": 3 },
103 { "x": 3, "y": 3 },
104 { "x": 4, "y": 3 },
105 { "x": 5, "y": 3 },
106 { "x": 6, "y": 3 },
107 { "x": 7, "y": 3 },
108 { "x": 8, "y": 3 },
109 { "x": 9, "y": 3 },
110 { "x": 10, "y": 3 },
111 { "x": 11, "y": 3 }
112 ]
113 }
114 }
4} 115}
diff --git a/keyboards/planck/light/light.h b/keyboards/planck/light/light.h
index a395f30e8..2cf46c2a2 100644
--- a/keyboards/planck/light/light.h
+++ b/keyboards/planck/light/light.h
@@ -20,4 +20,50 @@
20#include "planck.h" 20#include "planck.h"
21#include "rgb_matrix.h" 21#include "rgb_matrix.h"
22 22
23#define LAYOUT_planck_1x2uC( \
24 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
25 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
26 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
27 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
28) \
29{ \
30 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
31 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
32 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
33 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
34}
35
36#define LAYOUT_ortho_4x12( \
37 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
38 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
39 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
40 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
41) \
42{ \
43 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
44 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
45 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
46 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
47}
48
49// Used to create a keymap using only KC_ prefixed keys
50#define LAYOUT_kc( \
51 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
52 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
53 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
54 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
55) \
56LAYOUT_ortho_4x12( \
57 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
58 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
59 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
60 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
61)
62
63#define KEYMAP LAYOUT_ortho_4x12
64#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
65#define LAYOUT_planck_grid LAYOUT_ortho_4x12
66#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
67#define KC_KEYMAP LAYOUT_kc
68
23#endif \ No newline at end of file 69#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
index 000000000..f372e1fcc
--- /dev/null
+++ b/keyboards/planck/light/readme.md
@@ -0,0 +1,15 @@
1# Planck Light
2
3![Planck Light](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/planck/light/planck_light.jpg)
4
5A 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/)
6
7Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
8Hardware Supported: Planck Light
9Hardware Availability: [Massdrop](https://www.massdrop.com/buy/massdrop-x-olkb-planck-light-mechanical-keyboard?mode=guest_open)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make planck/light:default
14
15See 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/planck.h b/keyboards/planck/planck.h
index 09ac0c607..1beafa776 100644
--- a/keyboards/planck/planck.h
+++ b/keyboards/planck/planck.h
@@ -5,147 +5,22 @@
5 5
6#define encoder_update(clockwise) encoder_update_user(uint8_t index, clockwise) 6#define encoder_update(clockwise) encoder_update_user(uint8_t index, clockwise)
7 7
8#ifdef KEYBOARD_planck_ez 8#if defined(KEYBOARD_planck_ez)
9 #include "ez.h" 9 #include "ez.h"
10#endif 10#elif defined(KEYBOARD_planck_light)
11 11 #include "light.h"
12#ifdef __AVR__ // Planck revs. 1-5 12#elif defined(KEYBOARD_planck_rev1)
13 13 #include "rev1.h"
14 #define LAYOUT_planck_1x2uC( \ 14#elif defined(KEYBOARD_planck_rev2)
15 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ 15 #include "rev2.h"
16 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ 16#elif defined(KEYBOARD_planck_rev3)
17 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ 17 #include "rev3.h"
18 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ 18#elif defined(KEYBOARD_planck_rev4)
19 ) \ 19 #include "rev4.h"
20 { \ 20#elif defined(KEYBOARD_planck_rev5)
21 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ 21 #include "rev5.h"
22 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ 22#elif defined(KEYBOARD_planck_rev6)
23 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ 23 #include "rev6.h"
24 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ 24#endif // Planck revisions
25 }
26
27 #define LAYOUT_ortho_4x12( \
28 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
29 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
30 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
31 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
32 ) \
33 { \
34 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
35 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
36 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
37 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
38 }
39
40#elif KEYBOARD_planck_rev6
41
42 #define LAYOUT_planck_1x2uC( \
43 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
44 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
45 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
46 k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b \
47 ) \
48 { \
49 { k00, k01, k02, k03, k04, k05 }, \
50 { k10, k11, k12, k13, k14, k15 }, \
51 { k20, k21, k22, k23, k24, k25 }, \
52 { k30, k31, k32, k39, k3a, k3b }, \
53 { k06, k07, k08, k09, k0a, k0b }, \
54 { k16, k17, k18, k19, k1a, k1b }, \
55 { k26, k27, k28, k29, k2a, k2b }, \
56 { k36, k37, k38, k33, k34, KC_NO } \
57 }
58
59 #define LAYOUT_planck_1x2uR( \
60 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
61 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
62 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
63 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
64 ) \
65 { \
66 { k00, k01, k02, k03, k04, k05 }, \
67 { k10, k11, k12, k13, k14, k15 }, \
68 { k20, k21, k22, k23, k24, k25 }, \
69 { k30, k31, k32, k39, k3a, k3b }, \
70 { k06, k07, k08, k09, k0a, k0b }, \
71 { k16, k17, k18, k19, k1a, k1b }, \
72 { k26, k27, k28, k29, k2a, k2b }, \
73 { KC_NO, k37, k38, k33, k34, k35 } \
74 }
75
76 #define LAYOUT_planck_1x2uL( \
77 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
78 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
79 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
80 k30, k31, k32, k33, k35, k36, k37, k38, k39, k3a, k3b \
81 ) \
82 { \
83 { k00, k01, k02, k03, k04, k05 }, \
84 { k10, k11, k12, k13, k14, k15 }, \
85 { k20, k21, k22, k23, k24, k25 }, \
86 { k30, k31, k32, k39, k3a, k3b }, \
87 { k06, k07, k08, k09, k0a, k0b }, \
88 { k16, k17, k18, k19, k1a, k1b }, \
89 { k26, k27, k28, k29, k2a, k2b }, \
90 { k36, k37, k38, k33, KC_NO, k35 } \
91 }
92
93 #define LAYOUT_planck_2x2u( \
94 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
95 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
96 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
97 k30, k31, k32, k33, k35, k37, k38, k39, k3a, k3b \
98 ) \
99 { \
100 { k00, k01, k02, k03, k04, k05 }, \
101 { k10, k11, k12, k13, k14, k15 }, \
102 { k20, k21, k22, k23, k24, k25 }, \
103 { k30, k31, k32, k39, k3a, k3b }, \
104 { k06, k07, k08, k09, k0a, k0b }, \
105 { k16, k17, k18, k19, k1a, k1b }, \
106 { k26, k27, k28, k29, k2a, k2b }, \
107 { KC_NO, k37, k38, k33, KC_NO, k35 } \
108 }
109
110 #define LAYOUT_ortho_4x12( \
111 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
112 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
113 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
114 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
115 ) \
116 { \
117 { k00, k01, k02, k03, k04, k05 }, \
118 { k10, k11, k12, k13, k14, k15 }, \
119 { k20, k21, k22, k23, k24, k25 }, \
120 { k30, k31, k32, k39, k3a, k3b }, \
121 { k06, k07, k08, k09, k0a, k0b }, \
122 { k16, k17, k18, k19, k1a, k1b }, \
123 { k26, k27, k28, k29, k2a, k2b }, \
124 { k36, k37, k38, k33, k34, k35 } \
125 }
126
127#endif
128
129// all Planck keyboards
130
131// Used to create a keymap using only KC_ prefixed keys
132#define LAYOUT_kc( \
133 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
134 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
135 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
136 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
137) \
138LAYOUT_ortho_4x12( \
139 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
140 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
141 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
142 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
143)
144
145#define KEYMAP LAYOUT_ortho_4x12
146#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
147#define LAYOUT_planck_grid LAYOUT_ortho_4x12
148#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
149#define KC_KEYMAP LAYOUT_kc
150 25
151#endif 26#endif
diff --git a/keyboards/planck/readme.md b/keyboards/planck/readme.md
index 94b256c74..0d836563c 100644
--- a/keyboards/planck/readme.md
+++ b/keyboards/planck/readme.md
@@ -6,7 +6,7 @@ Planck
6A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/) 6A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
7 7
8Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert) 8Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
9Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6; Planck Light 9Hardware Supported: Planck PCB rev1, rev2, rev3, rev4, rev5, rev6; Planck Light, Planck EZ
10Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open) 10Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
11 11
12Make example for this keyboard (after setting up your build environment): 12Make 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
index 000000000..c64cdbfde
--- /dev/null
+++ b/keyboards/planck/rev1/info.json
@@ -0,0 +1,115 @@
1{
2 "keyboard_name": "Planck rev 1",
3 "keyboard_folder": "planck/rev1",
4 "url": "https://olkb.com/planck",
5 "maintainer": "jackhumbert",
6 "width": 12,
7 "height": 4,
8 "layouts": {
9 "LAYOUT_planck_1x2uC": {
10 "key_count": 47,
11 "layout": [
12 { "x": 0, "y": 0 },
13 { "x": 1, "y": 0 },
14 { "x": 2, "y": 0 },
15 { "x": 3, "y": 0 },
16 { "x": 4, "y": 0 },
17 { "x": 5, "y": 0 },
18 { "x": 6, "y": 0 },
19 { "x": 7, "y": 0 },
20 { "x": 8, "y": 0 },
21 { "x": 9, "y": 0 },
22 { "x": 10, "y": 0 },
23 { "x": 11, "y": 0 },
24 { "x": 0, "y": 1 },
25 { "x": 1, "y": 1 },
26 { "x": 2, "y": 1 },
27 { "x": 3, "y": 1 },
28 { "x": 4, "y": 1 },
29 { "x": 5, "y": 1 },
30 { "x": 6, "y": 1 },
31 { "x": 7, "y": 1 },
32 { "x": 8, "y": 1 },
33 { "x": 9, "y": 1 },
34 { "x": 10, "y": 1 },
35 { "x": 11, "y": 1 },
36 { "x": 0, "y": 2 },
37 { "x": 1, "y": 2 },
38 { "x": 2, "y": 2 },
39 { "x": 3, "y": 2 },
40 { "x": 4, "y": 2 },
41 { "x": 5, "y": 2 },
42 { "x": 6, "y": 2 },
43 { "x": 7, "y": 2 },
44 { "x": 8, "y": 2 },
45 { "x": 9, "y": 2 },
46 { "x": 10, "y": 2 },
47 { "x": 11, "y": 2 },
48 { "x": 0, "y": 3 },
49 { "x": 1, "y": 3 },
50 { "x": 2, "y": 3 },
51 { "x": 3, "y": 3 },
52 { "x": 4, "y": 3 },
53 { "x": 5, "y": 3, "w": 2 },
54 { "x": 7, "y": 3 },
55 { "x": 8, "y": 3 },
56 { "x": 9, "y": 3 },
57 { "x": 10, "y": 3 },
58 { "x": 11, "y": 3 }
59 ]
60 },
61 "LAYOUT_ortho_4x12": {
62 "key_count": 48,
63 "layout": [
64 { "x": 0, "y": 0 },
65 { "x": 1, "y": 0 },
66 { "x": 2, "y": 0 },
67 { "x": 3, "y": 0 },
68 { "x": 4, "y": 0 },
69 { "x": 5, "y": 0 },
70 { "x": 6, "y": 0 },
71 { "x": 7, "y": 0 },
72 { "x": 8, "y": 0 },
73 { "x": 9, "y": 0 },
74 { "x": 10, "y": 0 },
75 { "x": 11, "y": 0 },
76 { "x": 0, "y": 1 },
77 { "x": 1, "y": 1 },
78 { "x": 2, "y": 1 },
79 { "x": 3, "y": 1 },
80 { "x": 4, "y": 1 },
81 { "x": 5, "y": 1 },
82 { "x": 6, "y": 1 },
83 { "x": 7, "y": 1 },
84 { "x": 8, "y": 1 },
85 { "x": 9, "y": 1 },
86 { "x": 10, "y": 1 },
87 { "x": 11, "y": 1 },
88 { "x": 0, "y": 2 },
89 { "x": 1, "y": 2 },
90 { "x": 2, "y": 2 },
91 { "x": 3, "y": 2 },
92 { "x": 4, "y": 2 },
93 { "x": 5, "y": 2 },
94 { "x": 6, "y": 2 },
95 { "x": 7, "y": 2 },
96 { "x": 8, "y": 2 },
97 { "x": 9, "y": 2 },
98 { "x": 10, "y": 2 },
99 { "x": 11, "y": 2 },
100 { "x": 0, "y": 3 },
101 { "x": 1, "y": 3 },
102 { "x": 2, "y": 3 },
103 { "x": 3, "y": 3 },
104 { "x": 4, "y": 3 },
105 { "x": 5, "y": 3 },
106 { "x": 6, "y": 3 },
107 { "x": 7, "y": 3 },
108 { "x": 8, "y": 3 },
109 { "x": 9, "y": 3 },
110 { "x": 10, "y": 3 },
111 { "x": 11, "y": 3 }
112 ]
113 }
114 }
115}
diff --git a/keyboards/planck/rev1/readme.md b/keyboards/planck/rev1/readme.md
new file mode 100644
index 000000000..b5561fc1a
--- /dev/null
+++ b/keyboards/planck/rev1/readme.md
@@ -0,0 +1,13 @@
1# Planck
2
3A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
4
5Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
6Hardware Supported: Planck PCB rev1
7Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make planck/rev1:default
12
13See 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
index 000000000..f81b36b31
--- /dev/null
+++ b/keyboards/planck/rev1/rev1.h
@@ -0,0 +1,49 @@
1#pragma once
2
3#include "planck.h"
4
5#define LAYOUT_planck_1x2uC( \
6 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
7 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
8 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
9 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
10) \
11{ \
12 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
13 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
14 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
15 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
16}
17
18#define LAYOUT_ortho_4x12( \
19 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
20 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
21 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
22 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
23) \
24{ \
25 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
26 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
27 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
28 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
29}
30
31// Used to create a keymap using only KC_ prefixed keys
32#define LAYOUT_kc( \
33 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
34 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
35 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
36 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
37) \
38LAYOUT_ortho_4x12( \
39 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
40 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
41 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
42 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
43)
44
45#define KEYMAP LAYOUT_ortho_4x12
46#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
47#define LAYOUT_planck_grid LAYOUT_ortho_4x12
48#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
49#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev2/info.json b/keyboards/planck/rev2/info.json
new file mode 100644
index 000000000..68f89f601
--- /dev/null
+++ b/keyboards/planck/rev2/info.json
@@ -0,0 +1,115 @@
1{
2 "keyboard_name": "Planck rev 2",
3 "keyboard_folder": "planck/rev2",
4 "url": "https://olkb.com/planck",
5 "maintainer": "jackhumbert",
6 "width": 12,
7 "height": 4,
8 "layouts": {
9 "LAYOUT_planck_1x2uC": {
10 "key_count": 47,
11 "layout": [
12 { "x": 0, "y": 0 },
13 { "x": 1, "y": 0 },
14 { "x": 2, "y": 0 },
15 { "x": 3, "y": 0 },
16 { "x": 4, "y": 0 },
17 { "x": 5, "y": 0 },
18 { "x": 6, "y": 0 },
19 { "x": 7, "y": 0 },
20 { "x": 8, "y": 0 },
21 { "x": 9, "y": 0 },
22 { "x": 10, "y": 0 },
23 { "x": 11, "y": 0 },
24 { "x": 0, "y": 1 },
25 { "x": 1, "y": 1 },
26 { "x": 2, "y": 1 },
27 { "x": 3, "y": 1 },
28 { "x": 4, "y": 1 },
29 { "x": 5, "y": 1 },
30 { "x": 6, "y": 1 },
31 { "x": 7, "y": 1 },
32 { "x": 8, "y": 1 },
33 { "x": 9, "y": 1 },
34 { "x": 10, "y": 1 },
35 { "x": 11, "y": 1 },
36 { "x": 0, "y": 2 },
37 { "x": 1, "y": 2 },
38 { "x": 2, "y": 2 },
39 { "x": 3, "y": 2 },
40 { "x": 4, "y": 2 },
41 { "x": 5, "y": 2 },
42 { "x": 6, "y": 2 },
43 { "x": 7, "y": 2 },
44 { "x": 8, "y": 2 },
45 { "x": 9, "y": 2 },
46 { "x": 10, "y": 2 },
47 { "x": 11, "y": 2 },
48 { "x": 0, "y": 3 },
49 { "x": 1, "y": 3 },
50 { "x": 2, "y": 3 },
51 { "x": 3, "y": 3 },
52 { "x": 4, "y": 3 },
53 { "x": 5, "y": 3, "w": 2 },
54 { "x": 7, "y": 3 },
55 { "x": 8, "y": 3 },
56 { "x": 9, "y": 3 },
57 { "x": 10, "y": 3 },
58 { "x": 11, "y": 3 }
59 ]
60 },
61 "LAYOUT_ortho_4x12": {
62 "key_count": 48,
63 "layout": [
64 { "x": 0, "y": 0 },
65 { "x": 1, "y": 0 },
66 { "x": 2, "y": 0 },
67 { "x": 3, "y": 0 },
68 { "x": 4, "y": 0 },
69 { "x": 5, "y": 0 },
70 { "x": 6, "y": 0 },
71 { "x": 7, "y": 0 },
72 { "x": 8, "y": 0 },
73 { "x": 9, "y": 0 },
74 { "x": 10, "y": 0 },
75 { "x": 11, "y": 0 },
76 { "x": 0, "y": 1 },
77 { "x": 1, "y": 1 },
78 { "x": 2, "y": 1 },
79 { "x": 3, "y": 1 },
80 { "x": 4, "y": 1 },
81 { "x": 5, "y": 1 },
82 { "x": 6, "y": 1 },
83 { "x": 7, "y": 1 },
84 { "x": 8, "y": 1 },
85 { "x": 9, "y": 1 },
86 { "x": 10, "y": 1 },
87 { "x": 11, "y": 1 },
88 { "x": 0, "y": 2 },
89 { "x": 1, "y": 2 },
90 { "x": 2, "y": 2 },
91 { "x": 3, "y": 2 },
92 { "x": 4, "y": 2 },
93 { "x": 5, "y": 2 },
94 { "x": 6, "y": 2 },
95 { "x": 7, "y": 2 },
96 { "x": 8, "y": 2 },
97 { "x": 9, "y": 2 },
98 { "x": 10, "y": 2 },
99 { "x": 11, "y": 2 },
100 { "x": 0, "y": 3 },
101 { "x": 1, "y": 3 },
102 { "x": 2, "y": 3 },
103 { "x": 3, "y": 3 },
104 { "x": 4, "y": 3 },
105 { "x": 5, "y": 3 },
106 { "x": 6, "y": 3 },
107 { "x": 7, "y": 3 },
108 { "x": 8, "y": 3 },
109 { "x": 9, "y": 3 },
110 { "x": 10, "y": 3 },
111 { "x": 11, "y": 3 }
112 ]
113 }
114 }
115}
diff --git a/keyboards/planck/rev2/readme.md b/keyboards/planck/rev2/readme.md
new file mode 100644
index 000000000..16fa8b7fd
--- /dev/null
+++ b/keyboards/planck/rev2/readme.md
@@ -0,0 +1,13 @@
1# Planck
2
3A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
4
5Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
6Hardware Supported: Planck PCB rev2
7Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make planck/rev2:default
12
13See 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
index 000000000..f81b36b31
--- /dev/null
+++ b/keyboards/planck/rev2/rev2.h
@@ -0,0 +1,49 @@
1#pragma once
2
3#include "planck.h"
4
5#define LAYOUT_planck_1x2uC( \
6 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
7 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
8 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
9 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
10) \
11{ \
12 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
13 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
14 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
15 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
16}
17
18#define LAYOUT_ortho_4x12( \
19 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
20 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
21 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
22 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
23) \
24{ \
25 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
26 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
27 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
28 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
29}
30
31// Used to create a keymap using only KC_ prefixed keys
32#define LAYOUT_kc( \
33 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
34 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
35 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
36 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
37) \
38LAYOUT_ortho_4x12( \
39 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
40 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
41 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
42 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
43)
44
45#define KEYMAP LAYOUT_ortho_4x12
46#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
47#define LAYOUT_planck_grid LAYOUT_ortho_4x12
48#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
49#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev3/info.json b/keyboards/planck/rev3/info.json
new file mode 100644
index 000000000..65e59adc8
--- /dev/null
+++ b/keyboards/planck/rev3/info.json
@@ -0,0 +1,115 @@
1{
2 "keyboard_name": "Planck rev 3",
3 "keyboard_folder": "planck/rev3",
4 "url": "https://olkb.com/planck",
5 "maintainer": "jackhumbert",
6 "width": 12,
7 "height": 4,
8 "layouts": {
9 "LAYOUT_planck_1x2uC": {
10 "key_count": 47,
11 "layout": [
12 { "x": 0, "y": 0 },
13 { "x": 1, "y": 0 },
14 { "x": 2, "y": 0 },
15 { "x": 3, "y": 0 },
16 { "x": 4, "y": 0 },
17 { "x": 5, "y": 0 },
18 { "x": 6, "y": 0 },
19 { "x": 7, "y": 0 },
20 { "x": 8, "y": 0 },
21 { "x": 9, "y": 0 },
22 { "x": 10, "y": 0 },
23 { "x": 11, "y": 0 },
24 { "x": 0, "y": 1 },
25 { "x": 1, "y": 1 },
26 { "x": 2, "y": 1 },
27 { "x": 3, "y": 1 },
28 { "x": 4, "y": 1 },
29 { "x": 5, "y": 1 },
30 { "x": 6, "y": 1 },
31 { "x": 7, "y": 1 },
32 { "x": 8, "y": 1 },
33 { "x": 9, "y": 1 },
34 { "x": 10, "y": 1 },
35 { "x": 11, "y": 1 },
36 { "x": 0, "y": 2 },
37 { "x": 1, "y": 2 },
38 { "x": 2, "y": 2 },
39 { "x": 3, "y": 2 },
40 { "x": 4, "y": 2 },
41 { "x": 5, "y": 2 },
42 { "x": 6, "y": 2 },
43 { "x": 7, "y": 2 },
44 { "x": 8, "y": 2 },
45 { "x": 9, "y": 2 },
46 { "x": 10, "y": 2 },
47 { "x": 11, "y": 2 },
48 { "x": 0, "y": 3 },
49 { "x": 1, "y": 3 },
50 { "x": 2, "y": 3 },
51 { "x": 3, "y": 3 },
52 { "x": 4, "y": 3 },
53 { "x": 5, "y": 3, "w": 2 },
54 { "x": 7, "y": 3 },
55 { "x": 8, "y": 3 },
56 { "x": 9, "y": 3 },
57 { "x": 10, "y": 3 },
58 { "x": 11, "y": 3 }
59 ]
60 },
61 "LAYOUT_ortho_4x12": {
62 "key_count": 48,
63 "layout": [
64 { "x": 0, "y": 0 },
65 { "x": 1, "y": 0 },
66 { "x": 2, "y": 0 },
67 { "x": 3, "y": 0 },
68 { "x": 4, "y": 0 },
69 { "x": 5, "y": 0 },
70 { "x": 6, "y": 0 },
71 { "x": 7, "y": 0 },
72 { "x": 8, "y": 0 },
73 { "x": 9, "y": 0 },
74 { "x": 10, "y": 0 },
75 { "x": 11, "y": 0 },
76 { "x": 0, "y": 1 },
77 { "x": 1, "y": 1 },
78 { "x": 2, "y": 1 },
79 { "x": 3, "y": 1 },
80 { "x": 4, "y": 1 },
81 { "x": 5, "y": 1 },
82 { "x": 6, "y": 1 },
83 { "x": 7, "y": 1 },
84 { "x": 8, "y": 1 },
85 { "x": 9, "y": 1 },
86 { "x": 10, "y": 1 },
87 { "x": 11, "y": 1 },
88 { "x": 0, "y": 2 },
89 { "x": 1, "y": 2 },
90 { "x": 2, "y": 2 },
91 { "x": 3, "y": 2 },
92 { "x": 4, "y": 2 },
93 { "x": 5, "y": 2 },
94 { "x": 6, "y": 2 },
95 { "x": 7, "y": 2 },
96 { "x": 8, "y": 2 },
97 { "x": 9, "y": 2 },
98 { "x": 10, "y": 2 },
99 { "x": 11, "y": 2 },
100 { "x": 0, "y": 3 },
101 { "x": 1, "y": 3 },
102 { "x": 2, "y": 3 },
103 { "x": 3, "y": 3 },
104 { "x": 4, "y": 3 },
105 { "x": 5, "y": 3 },
106 { "x": 6, "y": 3 },
107 { "x": 7, "y": 3 },
108 { "x": 8, "y": 3 },
109 { "x": 9, "y": 3 },
110 { "x": 10, "y": 3 },
111 { "x": 11, "y": 3 }
112 ]
113 }
114 }
115}
diff --git a/keyboards/planck/rev3/readme.md b/keyboards/planck/rev3/readme.md
new file mode 100644
index 000000000..26ef89831
--- /dev/null
+++ b/keyboards/planck/rev3/readme.md
@@ -0,0 +1,13 @@
1# Planck
2
3A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
4
5Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
6Hardware Supported: Planck PCB rev3
7Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make planck/rev3:default
12
13See 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
index 000000000..f81b36b31
--- /dev/null
+++ b/keyboards/planck/rev3/rev3.h
@@ -0,0 +1,49 @@
1#pragma once
2
3#include "planck.h"
4
5#define LAYOUT_planck_1x2uC( \
6 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
7 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
8 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
9 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
10) \
11{ \
12 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
13 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
14 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
15 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
16}
17
18#define LAYOUT_ortho_4x12( \
19 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
20 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
21 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
22 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
23) \
24{ \
25 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
26 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
27 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
28 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
29}
30
31// Used to create a keymap using only KC_ prefixed keys
32#define LAYOUT_kc( \
33 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
34 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
35 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
36 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
37) \
38LAYOUT_ortho_4x12( \
39 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
40 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
41 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
42 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
43)
44
45#define KEYMAP LAYOUT_ortho_4x12
46#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
47#define LAYOUT_planck_grid LAYOUT_ortho_4x12
48#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
49#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev4/info.json b/keyboards/planck/rev4/info.json
new file mode 100644
index 000000000..ad135b6cb
--- /dev/null
+++ b/keyboards/planck/rev4/info.json
@@ -0,0 +1,115 @@
1{
2 "keyboard_name": "Planck rev 4",
3 "keyboard_folder": "planck/rev4",
4 "url": "https://olkb.com/planck",
5 "maintainer": "jackhumbert",
6 "width": 12,
7 "height": 4,
8 "layouts": {
9 "LAYOUT_planck_1x2uC": {
10 "key_count": 47,
11 "layout": [
12 { "x": 0, "y": 0 },
13 { "x": 1, "y": 0 },
14 { "x": 2, "y": 0 },
15 { "x": 3, "y": 0 },
16 { "x": 4, "y": 0 },
17 { "x": 5, "y": 0 },
18 { "x": 6, "y": 0 },
19 { "x": 7, "y": 0 },
20 { "x": 8, "y": 0 },
21 { "x": 9, "y": 0 },
22 { "x": 10, "y": 0 },
23 { "x": 11, "y": 0 },
24 { "x": 0, "y": 1 },
25 { "x": 1, "y": 1 },
26 { "x": 2, "y": 1 },
27 { "x": 3, "y": 1 },
28 { "x": 4, "y": 1 },
29 { "x": 5, "y": 1 },
30 { "x": 6, "y": 1 },
31 { "x": 7, "y": 1 },
32 { "x": 8, "y": 1 },
33 { "x": 9, "y": 1 },
34 { "x": 10, "y": 1 },
35 { "x": 11, "y": 1 },
36 { "x": 0, "y": 2 },
37 { "x": 1, "y": 2 },
38 { "x": 2, "y": 2 },
39 { "x": 3, "y": 2 },
40 { "x": 4, "y": 2 },
41 { "x": 5, "y": 2 },
42 { "x": 6, "y": 2 },
43 { "x": 7, "y": 2 },
44 { "x": 8, "y": 2 },
45 { "x": 9, "y": 2 },
46 { "x": 10, "y": 2 },
47 { "x": 11, "y": 2 },
48 { "x": 0, "y": 3 },
49 { "x": 1, "y": 3 },
50 { "x": 2, "y": 3 },
51 { "x": 3, "y": 3 },
52 { "x": 4, "y": 3 },
53 { "x": 5, "y": 3, "w": 2 },
54 { "x": 7, "y": 3 },
55 { "x": 8, "y": 3 },
56 { "x": 9, "y": 3 },
57 { "x": 10, "y": 3 },
58 { "x": 11, "y": 3 }
59 ]
60 },
61 "LAYOUT_ortho_4x12": {
62 "key_count": 48,
63 "layout": [
64 { "x": 0, "y": 0 },
65 { "x": 1, "y": 0 },
66 { "x": 2, "y": 0 },
67 { "x": 3, "y": 0 },
68 { "x": 4, "y": 0 },
69 { "x": 5, "y": 0 },
70 { "x": 6, "y": 0 },
71 { "x": 7, "y": 0 },
72 { "x": 8, "y": 0 },
73 { "x": 9, "y": 0 },
74 { "x": 10, "y": 0 },
75 { "x": 11, "y": 0 },
76 { "x": 0, "y": 1 },
77 { "x": 1, "y": 1 },
78 { "x": 2, "y": 1 },
79 { "x": 3, "y": 1 },
80 { "x": 4, "y": 1 },
81 { "x": 5, "y": 1 },
82 { "x": 6, "y": 1 },
83 { "x": 7, "y": 1 },
84 { "x": 8, "y": 1 },
85 { "x": 9, "y": 1 },
86 { "x": 10, "y": 1 },
87 { "x": 11, "y": 1 },
88 { "x": 0, "y": 2 },
89 { "x": 1, "y": 2 },
90 { "x": 2, "y": 2 },
91 { "x": 3, "y": 2 },
92 { "x": 4, "y": 2 },
93 { "x": 5, "y": 2 },
94 { "x": 6, "y": 2 },
95 { "x": 7, "y": 2 },
96 { "x": 8, "y": 2 },
97 { "x": 9, "y": 2 },
98 { "x": 10, "y": 2 },
99 { "x": 11, "y": 2 },
100 { "x": 0, "y": 3 },
101 { "x": 1, "y": 3 },
102 { "x": 2, "y": 3 },
103 { "x": 3, "y": 3 },
104 { "x": 4, "y": 3 },
105 { "x": 5, "y": 3 },
106 { "x": 6, "y": 3 },
107 { "x": 7, "y": 3 },
108 { "x": 8, "y": 3 },
109 { "x": 9, "y": 3 },
110 { "x": 10, "y": 3 },
111 { "x": 11, "y": 3 }
112 ]
113 }
114 }
115}
diff --git a/keyboards/planck/rev4/readme.md b/keyboards/planck/rev4/readme.md
new file mode 100644
index 000000000..4cf6e8cf2
--- /dev/null
+++ b/keyboards/planck/rev4/readme.md
@@ -0,0 +1,13 @@
1# Planck
2
3A 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/)
4
5Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
6Hardware Supported: Planck PCB rev4
7Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make planck/rev4:default
12
13See 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
index 000000000..f81b36b31
--- /dev/null
+++ b/keyboards/planck/rev4/rev4.h
@@ -0,0 +1,49 @@
1#pragma once
2
3#include "planck.h"
4
5#define LAYOUT_planck_1x2uC( \
6 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
7 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
8 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
9 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
10) \
11{ \
12 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
13 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
14 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
15 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
16}
17
18#define LAYOUT_ortho_4x12( \
19 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
20 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
21 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
22 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
23) \
24{ \
25 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
26 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
27 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
28 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
29}
30
31// Used to create a keymap using only KC_ prefixed keys
32#define LAYOUT_kc( \
33 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
34 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
35 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
36 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
37) \
38LAYOUT_ortho_4x12( \
39 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
40 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
41 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
42 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
43)
44
45#define KEYMAP LAYOUT_ortho_4x12
46#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
47#define LAYOUT_planck_grid LAYOUT_ortho_4x12
48#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
49#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev5/info.json b/keyboards/planck/rev5/info.json
new file mode 100644
index 000000000..6f31472f5
--- /dev/null
+++ b/keyboards/planck/rev5/info.json
@@ -0,0 +1,115 @@
1{
2 "keyboard_name": "Planck rev 5",
3 "keyboard_folder": "planck/rev5",
4 "url": "https://olkb.com/planck",
5 "maintainer": "jackhumbert",
6 "width": 12,
7 "height": 4,
8 "layouts": {
9 "LAYOUT_planck_1x2uC": {
10 "key_count": 47,
11 "layout": [
12 { "x": 0, "y": 0 },
13 { "x": 1, "y": 0 },
14 { "x": 2, "y": 0 },
15 { "x": 3, "y": 0 },
16 { "x": 4, "y": 0 },
17 { "x": 5, "y": 0 },
18 { "x": 6, "y": 0 },
19 { "x": 7, "y": 0 },
20 { "x": 8, "y": 0 },
21 { "x": 9, "y": 0 },
22 { "x": 10, "y": 0 },
23 { "x": 11, "y": 0 },
24 { "x": 0, "y": 1 },
25 { "x": 1, "y": 1 },
26 { "x": 2, "y": 1 },
27 { "x": 3, "y": 1 },
28 { "x": 4, "y": 1 },
29 { "x": 5, "y": 1 },
30 { "x": 6, "y": 1 },
31 { "x": 7, "y": 1 },
32 { "x": 8, "y": 1 },
33 { "x": 9, "y": 1 },
34 { "x": 10, "y": 1 },
35 { "x": 11, "y": 1 },
36 { "x": 0, "y": 2 },
37 { "x": 1, "y": 2 },
38 { "x": 2, "y": 2 },
39 { "x": 3, "y": 2 },
40 { "x": 4, "y": 2 },
41 { "x": 5, "y": 2 },
42 { "x": 6, "y": 2 },
43 { "x": 7, "y": 2 },
44 { "x": 8, "y": 2 },
45 { "x": 9, "y": 2 },
46 { "x": 10, "y": 2 },
47 { "x": 11, "y": 2 },
48 { "x": 0, "y": 3 },
49 { "x": 1, "y": 3 },
50 { "x": 2, "y": 3 },
51 { "x": 3, "y": 3 },
52 { "x": 4, "y": 3 },
53 { "x": 5, "y": 3, "w": 2 },
54 { "x": 7, "y": 3 },
55 { "x": 8, "y": 3 },
56 { "x": 9, "y": 3 },
57 { "x": 10, "y": 3 },
58 { "x": 11, "y": 3 }
59 ]
60 },
61 "LAYOUT_ortho_4x12": {
62 "key_count": 48,
63 "layout": [
64 { "x": 0, "y": 0 },
65 { "x": 1, "y": 0 },
66 { "x": 2, "y": 0 },
67 { "x": 3, "y": 0 },
68 { "x": 4, "y": 0 },
69 { "x": 5, "y": 0 },
70 { "x": 6, "y": 0 },
71 { "x": 7, "y": 0 },
72 { "x": 8, "y": 0 },
73 { "x": 9, "y": 0 },
74 { "x": 10, "y": 0 },
75 { "x": 11, "y": 0 },
76 { "x": 0, "y": 1 },
77 { "x": 1, "y": 1 },
78 { "x": 2, "y": 1 },
79 { "x": 3, "y": 1 },
80 { "x": 4, "y": 1 },
81 { "x": 5, "y": 1 },
82 { "x": 6, "y": 1 },
83 { "x": 7, "y": 1 },
84 { "x": 8, "y": 1 },
85 { "x": 9, "y": 1 },
86 { "x": 10, "y": 1 },
87 { "x": 11, "y": 1 },
88 { "x": 0, "y": 2 },
89 { "x": 1, "y": 2 },
90 { "x": 2, "y": 2 },
91 { "x": 3, "y": 2 },
92 { "x": 4, "y": 2 },
93 { "x": 5, "y": 2 },
94 { "x": 6, "y": 2 },
95 { "x": 7, "y": 2 },
96 { "x": 8, "y": 2 },
97 { "x": 9, "y": 2 },
98 { "x": 10, "y": 2 },
99 { "x": 11, "y": 2 },
100 { "x": 0, "y": 3 },
101 { "x": 1, "y": 3 },
102 { "x": 2, "y": 3 },
103 { "x": 3, "y": 3 },
104 { "x": 4, "y": 3 },
105 { "x": 5, "y": 3 },
106 { "x": 6, "y": 3 },
107 { "x": 7, "y": 3 },
108 { "x": 8, "y": 3 },
109 { "x": 9, "y": 3 },
110 { "x": 10, "y": 3 },
111 { "x": 11, "y": 3 }
112 ]
113 }
114 }
115}
diff --git a/keyboards/planck/rev5/readme.md b/keyboards/planck/rev5/readme.md
new file mode 100644
index 000000000..fed975a39
--- /dev/null
+++ b/keyboards/planck/rev5/readme.md
@@ -0,0 +1,13 @@
1# Planck
2
3A compact 40% (12x4) ortholinear keyboard kit made and sold by OLKB and Massdrop. [More info on qmk.fm](http://qmk.fm/planck/)
4
5Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
6Hardware Supported: Planck PCB rev5
7Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make planck/rev5:default
12
13See 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
index 000000000..f81b36b31
--- /dev/null
+++ b/keyboards/planck/rev5/rev5.h
@@ -0,0 +1,49 @@
1#pragma once
2
3#include "planck.h"
4
5#define LAYOUT_planck_1x2uC( \
6 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
7 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
8 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
9 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
10) \
11{ \
12 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
13 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
14 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
15 { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \
16}
17
18#define LAYOUT_ortho_4x12( \
19 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
20 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
21 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
22 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
23) \
24{ \
25 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
26 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
27 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
28 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
29}
30
31// Used to create a keymap using only KC_ prefixed keys
32#define LAYOUT_kc( \
33 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
34 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
35 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
36 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
37) \
38LAYOUT_ortho_4x12( \
39 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
40 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
41 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
42 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
43)
44
45#define KEYMAP LAYOUT_ortho_4x12
46#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
47#define LAYOUT_planck_grid LAYOUT_ortho_4x12
48#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
49#define KC_KEYMAP LAYOUT_kc
diff --git a/keyboards/planck/rev6/info.json b/keyboards/planck/rev6/info.json
index 81eacabc3..66dd8f575 100644
--- a/keyboards/planck/rev6/info.json
+++ b/keyboards/planck/rev6/info.json
@@ -1,6 +1,6 @@
1{ 1{
2 "keyboard_name": "Planck", 2 "keyboard_name": "Planck rev 6",
3 "keyboard_folder": "planck", 3 "keyboard_folder": "planck/rev6",
4 "url": "https://olkb.com/planck", 4 "url": "https://olkb.com/planck",
5 "maintainer": "jackhumbert", 5 "maintainer": "jackhumbert",
6 "width": 12, 6 "width": 12,
diff --git a/keyboards/planck/rev6/readme.md b/keyboards/planck/rev6/readme.md
new file mode 100644
index 000000000..1034eb9d7
--- /dev/null
+++ b/keyboards/planck/rev6/readme.md
@@ -0,0 +1,13 @@
1# Planck
2
3A 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/)
4
5Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
6Hardware Supported: Planck PCB rev6
7Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.massdrop.com/buy/planck-mechanical-keyboard?mode=guest_open)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make planck/rev6:default
12
13See 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/rev6/rev6.h b/keyboards/planck/rev6/rev6.h
index 75c2904c5..601e347f5 100644
--- a/keyboards/planck/rev6/rev6.h
+++ b/keyboards/planck/rev6/rev6.h
@@ -18,4 +18,110 @@
18 18
19#include "planck.h" 19#include "planck.h"
20 20
21#define LAYOUT_planck_1x2uC( \
22 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
23 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
24 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
25 k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b \
26) \
27{ \
28 { k00, k01, k02, k03, k04, k05 }, \
29 { k10, k11, k12, k13, k14, k15 }, \
30 { k20, k21, k22, k23, k24, k25 }, \
31 { k30, k31, k32, k39, k3a, k3b }, \
32 { k06, k07, k08, k09, k0a, k0b }, \
33 { k16, k17, k18, k19, k1a, k1b }, \
34 { k26, k27, k28, k29, k2a, k2b }, \
35 { k36, k37, k38, k33, k34, KC_NO } \
36}
37
38#define LAYOUT_planck_1x2uR( \
39 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
40 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
41 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
42 k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
43) \
44{ \
45 { k00, k01, k02, k03, k04, k05 }, \
46 { k10, k11, k12, k13, k14, k15 }, \
47 { k20, k21, k22, k23, k24, k25 }, \
48 { k30, k31, k32, k39, k3a, k3b }, \
49 { k06, k07, k08, k09, k0a, k0b }, \
50 { k16, k17, k18, k19, k1a, k1b }, \
51 { k26, k27, k28, k29, k2a, k2b }, \
52 { KC_NO, k37, k38, k33, k34, k35 } \
53}
54
55#define LAYOUT_planck_1x2uL( \
56 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
57 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
58 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
59 k30, k31, k32, k33, k35, k36, k37, k38, k39, k3a, k3b \
60) \
61{ \
62 { k00, k01, k02, k03, k04, k05 }, \
63 { k10, k11, k12, k13, k14, k15 }, \
64 { k20, k21, k22, k23, k24, k25 }, \
65 { k30, k31, k32, k39, k3a, k3b }, \
66 { k06, k07, k08, k09, k0a, k0b }, \
67 { k16, k17, k18, k19, k1a, k1b }, \
68 { k26, k27, k28, k29, k2a, k2b }, \
69 { k36, k37, k38, k33, KC_NO, k35 } \
70}
71
72#define LAYOUT_planck_2x2u( \
73 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
74 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
75 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
76 k30, k31, k32, k33, k35, k37, k38, k39, k3a, k3b \
77) \
78{ \
79 { k00, k01, k02, k03, k04, k05 }, \
80 { k10, k11, k12, k13, k14, k15 }, \
81 { k20, k21, k22, k23, k24, k25 }, \
82 { k30, k31, k32, k39, k3a, k3b }, \
83 { k06, k07, k08, k09, k0a, k0b }, \
84 { k16, k17, k18, k19, k1a, k1b }, \
85 { k26, k27, k28, k29, k2a, k2b }, \
86 { KC_NO, k37, k38, k33, KC_NO, k35 } \
87}
88
89#define LAYOUT_ortho_4x12( \
90 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
91 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
92 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
93 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
94) \
95{ \
96 { k00, k01, k02, k03, k04, k05 }, \
97 { k10, k11, k12, k13, k14, k15 }, \
98 { k20, k21, k22, k23, k24, k25 }, \
99 { k30, k31, k32, k39, k3a, k3b }, \
100 { k06, k07, k08, k09, k0a, k0b }, \
101 { k16, k17, k18, k19, k1a, k1b }, \
102 { k26, k27, k28, k29, k2a, k2b }, \
103 { k36, k37, k38, k33, k34, k35 } \
104}
105
106
107// Used to create a keymap using only KC_ prefixed keys
108#define LAYOUT_kc( \
109 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
110 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
111 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
112 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
113) \
114LAYOUT_ortho_4x12( \
115 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
116 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
117 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
118 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
119)
120
121#define KEYMAP LAYOUT_ortho_4x12
122#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
123#define LAYOUT_planck_grid LAYOUT_ortho_4x12
124#define LAYOUT_kc_ortho_4x12 LAYOUT_kc
125#define KC_KEYMAP LAYOUT_kc
126
21#endif 127#endif