~ruther/qmk_firmware

5f0ab5a24b4ec9ea01a5fd95bda9315ac6e96142 — noroadsleft 6 years ago a825bbf
[Keyboard] Planck Layout Macro Refactor, Part II (#6156)

* 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>
M keyboards/planck/ez/ez.h => keyboards/planck/ez/ez.h +20 -75
@@ 21,87 21,32 @@
    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

A keyboards/planck/ez/info.json => keyboards/planck/ez/info.json +115 -0
@@ 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 }
      ]
    }
  }
}

A keyboards/planck/ez/readme.md => keyboards/planck/ez/readme.md +15 -0
@@ 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).

M keyboards/planck/light/info.json => keyboards/planck/light/info.json +112 -1
@@ 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 }
      ]
    }
  }
}

M keyboards/planck/light/light.h => keyboards/planck/light/light.h +46 -0
@@ 20,4 20,50 @@
#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

A keyboards/planck/light/readme.md => keyboards/planck/light/readme.md +15 -0
@@ 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).

M keyboards/planck/planck.h => keyboards/planck/planck.h +16 -141
@@ 5,147 5,22 @@

#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

M keyboards/planck/readme.md => keyboards/planck/readme.md +1 -1
@@ 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):

A keyboards/planck/rev1/info.json => keyboards/planck/rev1/info.json +115 -0
@@ 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 }
      ]
    }
  }
}

A keyboards/planck/rev1/readme.md => keyboards/planck/rev1/readme.md +13 -0
@@ 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).

A keyboards/planck/rev1/rev1.h => keyboards/planck/rev1/rev1.h +49 -0
@@ 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

A keyboards/planck/rev2/info.json => keyboards/planck/rev2/info.json +115 -0
@@ 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 }
      ]
    }
  }
}

A keyboards/planck/rev2/readme.md => keyboards/planck/rev2/readme.md +13 -0
@@ 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).

A keyboards/planck/rev2/rev2.h => keyboards/planck/rev2/rev2.h +49 -0
@@ 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

A keyboards/planck/rev3/info.json => keyboards/planck/rev3/info.json +115 -0
@@ 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 }
      ]
    }
  }
}

A keyboards/planck/rev3/readme.md => keyboards/planck/rev3/readme.md +13 -0
@@ 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).

A keyboards/planck/rev3/rev3.h => keyboards/planck/rev3/rev3.h +49 -0
@@ 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

A keyboards/planck/rev4/info.json => keyboards/planck/rev4/info.json +115 -0
@@ 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 }
      ]
    }
  }
}

A keyboards/planck/rev4/readme.md => keyboards/planck/rev4/readme.md +13 -0
@@ 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).

A keyboards/planck/rev4/rev4.h => keyboards/planck/rev4/rev4.h +49 -0
@@ 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

A keyboards/planck/rev5/info.json => keyboards/planck/rev5/info.json +115 -0
@@ 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 }
      ]
    }
  }
}

A keyboards/planck/rev5/readme.md => keyboards/planck/rev5/readme.md +13 -0
@@ 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).

A keyboards/planck/rev5/rev5.h => keyboards/planck/rev5/rev5.h +49 -0
@@ 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

M keyboards/planck/rev6/info.json => keyboards/planck/rev6/info.json +2 -2
@@ 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,

A keyboards/planck/rev6/readme.md => keyboards/planck/rev6/readme.md +13 -0
@@ 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).

M keyboards/planck/rev6/rev6.h => keyboards/planck/rev6/rev6.h +106 -0
@@ 18,4 18,110 @@

#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