M README.md => README.md +2 -1
@@ 4,6 4,7 @@ cd qmk_firmware
make git-submodule
git clone https://git.sr.ht/~unwox/kbrds keyboards/unwox
# make sure udev has needed rules: https://docs.qmk.fm/#/faq_build?id=linux-udev-rules
-./util/docker_cmd.sh make unwox/crkbd:default
+./util/docker_cmd.sh make unwox/crkbd:default:flash
+# or ./util/docker_cmd.sh make unwox/planck/rev6:default:flash
# press RESET button on keyboard
```
M planck/config.h => planck/config.h +62 -55
@@ 1,64 1,71 @@
-#pragma once
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
-#define E1M1 \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E4 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_D4 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_C4 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_BF3), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_B3 ), \
- Q__NOTE(_C4 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E4 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_D4 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_C4 ), \
- Q__NOTE(_E3 ), \
- Q__NOTE(_E3 ), \
- H__NOTE(_BF3),
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(E1M1)
- // #define STARTUP_SONG SONG(NO_SOUND)
-#endif
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
-/*
- * MIDI options
- */
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define MIDI_BASIC
+#pragma once
+
+#include "config_common.h"
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/* Planck PCB default pin-out */
+#define MATRIX_ROW_PINS { D0, D5, B5, B6 }
+#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
+
+#define QMK_ESC_OUTPUT F1
+#define QMK_ESC_INPUT D5
+#define QMK_LED E6
+#define QMK_SPEAKER C6
+
+#define AUDIO_VOICES
+#define AUDIO_PIN C6
+
+#define BACKLIGHT_PIN B7
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 3
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
+/* disable debug print */
+//#define NO_DEBUG
-// Most tactile encoders have detents every 4 stages
-// #define ENCODER_RESOLUTION 4
+/* disable print */
+//#define NO_PRINT
-#define TAPPING_TERM 200
-#define TAPPING_FORCE_HOLD
-#define IGNORE_MOD_TAP_INTERRUPT
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
A planck/info.json => planck/info.json +107 -0
@@ 0,0 1,107 @@
+{
+ "url": "https://olkb.com/planck",
+ "maintainer": "jackhumbert",
+ "layouts": {
+ "LAYOUT_planck_1x2uC": {
+ "layout": [
+ { "w": 1, "x": 0, "y": 0 },
+ { "w": 1, "x": 1, "y": 0 },
+ { "w": 1, "x": 2, "y": 0 },
+ { "w": 1, "x": 3, "y": 0 },
+ { "w": 1, "x": 4, "y": 0 },
+ { "w": 1, "x": 5, "y": 0 },
+ { "w": 1, "x": 6, "y": 0 },
+ { "w": 1, "x": 7, "y": 0 },
+ { "w": 1, "x": 8, "y": 0 },
+ { "w": 1, "x": 9, "y": 0 },
+ { "w": 1, "x": 10, "y": 0 },
+ { "w": 1, "x": 11, "y": 0 },
+ { "w": 1, "x": 0, "y": 1 },
+ { "w": 1, "x": 1, "y": 1 },
+ { "w": 1, "x": 2, "y": 1 },
+ { "w": 1, "x": 3, "y": 1 },
+ { "w": 1, "x": 4, "y": 1 },
+ { "w": 1, "x": 5, "y": 1 },
+ { "w": 1, "x": 6, "y": 1 },
+ { "w": 1, "x": 7, "y": 1 },
+ { "w": 1, "x": 8, "y": 1 },
+ { "w": 1, "x": 9, "y": 1 },
+ { "w": 1, "x": 10, "y": 1 },
+ { "w": 1, "x": 11, "y": 1 },
+ { "w": 1, "x": 0, "y": 2 },
+ { "w": 1, "x": 1, "y": 2 },
+ { "w": 1, "x": 2, "y": 2 },
+ { "w": 1, "x": 3, "y": 2 },
+ { "w": 1, "x": 4, "y": 2 },
+ { "w": 1, "x": 5, "y": 2 },
+ { "w": 1, "x": 6, "y": 2 },
+ { "w": 1, "x": 7, "y": 2 },
+ { "w": 1, "x": 8, "y": 2 },
+ { "w": 1, "x": 9, "y": 2 },
+ { "w": 1, "x": 10, "y": 2 },
+ { "w": 1, "x": 11, "y": 2 },
+ { "w": 1, "x": 0, "y": 3 },
+ { "w": 1, "x": 1, "y": 3 },
+ { "w": 1, "x": 2, "y": 3 },
+ { "w": 1, "x": 3, "y": 3 },
+ { "w": 1, "x": 4, "y": 3 },
+ { "w": 2, "x": 5, "y": 3 },
+ { "w": 1, "x": 7, "y": 3 },
+ { "w": 1, "x": 8, "y": 3 },
+ { "w": 1, "x": 9, "y": 3 },
+ { "w": 1, "x": 10, "y": 3 },
+ { "w": 1, "x": 11, "y": 3 } ]
+ },
+ "LAYOUT_ortho_4x12": {
+ "layout": [
+ { "w": 1, "x": 0, "y": 0 },
+ { "w": 1, "x": 1, "y": 0 },
+ { "w": 1, "x": 2, "y": 0 },
+ { "w": 1, "x": 3, "y": 0 },
+ { "w": 1, "x": 4, "y": 0 },
+ { "w": 1, "x": 5, "y": 0 },
+ { "w": 1, "x": 6, "y": 0 },
+ { "w": 1, "x": 7, "y": 0 },
+ { "w": 1, "x": 8, "y": 0 },
+ { "w": 1, "x": 9, "y": 0 },
+ { "w": 1, "x": 10, "y": 0 },
+ { "w": 1, "x": 11, "y": 0 },
+ { "w": 1, "x": 0, "y": 1 },
+ { "w": 1, "x": 1, "y": 1 },
+ { "w": 1, "x": 2, "y": 1 },
+ { "w": 1, "x": 3, "y": 1 },
+ { "w": 1, "x": 4, "y": 1 },
+ { "w": 1, "x": 5, "y": 1 },
+ { "w": 1, "x": 6, "y": 1 },
+ { "w": 1, "x": 7, "y": 1 },
+ { "w": 1, "x": 8, "y": 1 },
+ { "w": 1, "x": 9, "y": 1 },
+ { "w": 1, "x": 10, "y": 1 },
+ { "w": 1, "x": 11, "y": 1 },
+ { "w": 1, "x": 0, "y": 2 },
+ { "w": 1, "x": 1, "y": 2 },
+ { "w": 1, "x": 2, "y": 2 },
+ { "w": 1, "x": 3, "y": 2 },
+ { "w": 1, "x": 4, "y": 2 },
+ { "w": 1, "x": 5, "y": 2 },
+ { "w": 1, "x": 6, "y": 2 },
+ { "w": 1, "x": 7, "y": 2 },
+ { "w": 1, "x": 8, "y": 2 },
+ { "w": 1, "x": 9, "y": 2 },
+ { "w": 1, "x": 10, "y": 2 },
+ { "w": 1, "x": 11, "y": 2 },
+ { "w": 1, "x": 0, "y": 3 },
+ { "w": 1, "x": 1, "y": 3 },
+ { "w": 1, "x": 2, "y": 3 },
+ { "w": 1, "x": 3, "y": 3 },
+ { "w": 1, "x": 4, "y": 3 },
+ { "w": 1, "x": 5, "y": 3 },
+ { "w": 1, "x": 6, "y": 3 },
+ { "w": 1, "x": 7, "y": 3 },
+ { "w": 1, "x": 8, "y": 3 },
+ { "w": 1, "x": 9, "y": 3 },
+ { "w": 1, "x": 10, "y": 3 },
+ { "w": 1, "x": 11, "y": 3 } ]
+ }
+ }
+}
D planck/keymap.c => planck/keymap.c +0 -46
@@ 1,46 0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = KEYMAP(
- MEH(KC_NO), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET,
- LCTL_T(KC_ESC), KC_A, KC_S, KC_D, LT(5,KC_F), LT(6,KC_G), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_NO, KC_Z, KC_X, KC_C, LT(4,KC_V), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLASH,
- KC_NO, KC_NO, KC_LALT, KC_BSPC, KC_LGUI, LSFT_T(KC_SPC), KC_ENT, LT(3,KC_TAB), KC_RGUI, KC_NO, KC_NO, KC_NO
- ),
- [1] = KEYMAP(
- MEH(KC_NO), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRACKET,
- LCTL_T(KC_ESC), KC_A, KC_R, KC_S, LT(5,KC_T), LT(6,KC_G), KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_NO, KC_Z, KC_X, KC_C, LT(4,KC_D), KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_BSLASH,
- KC_NO, KC_NO, KC_LALT, KC_BSPC, KC_LGUI, LSFT_T(KC_SPC), KC_ENT, LT(3,KC_TAB), KC_RGUI, KC_NO, KC_NO, KC_NO
- ),
- [2] = KEYMAP(
- MEH(KC_NO), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRACKET,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLASH,
- KC_ESC, KC_NO, KC_LALT, KC_BSPC, KC_LGUI, KC_SPC, KC_ENT, KC_TAB, KC_RGUI, KC_NO, KC_NO, DF(0)
- ),
- [3] = KEYMAP(
- KC_NO, KC_NO, KC_LT, KC_LCBR, KC_DLR, KC_TILD, KC_PERC, KC_AT, KC_RCBR, KC_GT, KC_NO, KC_NO,
- KC_NO, KC_QUOT, KC_EQL, KC_MINS, KC_LPRN, KC_PLUS, KC_ASTR, KC_RPRN, KC_UNDS, KC_SLSH, KC_DQUO, KC_NO,
- KC_NO, KC_GRV, KC_QUES, KC_HASH, KC_LBRC, KC_PIPE, KC_AMPR, KC_RBRC, KC_DLR, KC_EXLM, KC_CIRC, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- ),
- [4] = KEYMAP(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- ),
- [5] = KEYMAP(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_4, KC_5, KC_6, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_DOT, KC_NO, KC_NO, KC_NO, KC_NO
- ),
- [6] = KEYMAP(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, DF(0), DF(1), DF(2), KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- )
-};
A planck/keymaps/default/config.h => planck/keymaps/default/config.h +66 -0
@@ 0,0 1,66 @@
+#pragma once
+
+/* #define E1M1 \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E4 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_D4 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_C4 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_BF3), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_B3 ), \ */
+/* Q__NOTE(_C4 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E4 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_D4 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_C4 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* Q__NOTE(_E3 ), \ */
+/* H__NOTE(_BF3), */
+
+/* #ifdef AUDIO_ENABLE */
+/* #define STARTUP_SONG SONG(E1M1) */
+/* #define STARTUP_SONG SONG(NO_SOUND) */
+/* #endif */
+
+/*
+ * MIDI options
+ */
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+
+/* #define MIDI_BASIC */
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
+
+// Most tactile encoders have detents every 4 stages
+// #define ENCODER_RESOLUTION 4
+
+#define TAPPING_TERM 200
+#define TAPPING_FORCE_HOLD
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#define MK_KINETIC_SPEED
A planck/keymaps/default/keymap.c => planck/keymaps/default/keymap.c +65 -0
@@ 0,0 1,65 @@
+#include QMK_KEYBOARD_H
+
+#define _____ KC_NO
+
+enum layers {
+ _QWERTY,
+ _COLEMAK,
+ _GAMES,
+ _SYMBOLS,
+ _ARROWS,
+ _NUMPAD,
+ _MOUSE,
+ _MENU
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_planck_grid(
+MEH(_____), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+LCTL_T(KC_ESC), KC_A, KC_S, KC_D, LT(_NUMPAD,KC_F), LT(_MENU,KC_G), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+_____, KC_Z, KC_X, KC_C, LT(_ARROWS,KC_V), KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BACKSLASH,
+_____, _____, KC_LALT, KC_LGUI, LSFT_T(KC_SPC), LT(_MOUSE,KC_BSPC), KC_ENT, LT(3,KC_TAB), KC_RGUI, _____, _____, _____
+ ),
+ [_COLEMAK] = LAYOUT_planck_grid(
+MEH(_____), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC,
+LCTL_T(KC_ESC), KC_A, KC_R, KC_S, LT(_NUMPAD,KC_F), LT(_MENU,KC_G), KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+_____, KC_Z, KC_X, KC_C, LT(_ARROWS,KC_V), KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_BACKSLASH,
+_____, _____, KC_LALT, KC_LGUI, LSFT_T(KC_SPC), LT(_MOUSE,KC_BSPC), KC_ENT, LT(3,KC_TAB), KC_RGUI, _____, _____, _____
+ ),
+ [_GAMES] = LAYOUT_planck_grid(
+MEH(_____), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BACKSLASH,
+KC_ESC, _____, KC_LALT, KC_LGUI, KC_SPC, KC_BSPC, KC_ENT, KC_TAB, KC_RGUI, _____, _____, DF(_QWERTY)
+ ),
+ [_SYMBOLS] = LAYOUT_planck_grid(
+_____, _____, KC_LT, KC_LCBR, KC_DLR, KC_TILD, KC_PERC, KC_AT, KC_RCBR, KC_GT, _____, _____,
+_____, KC_QUOT, KC_EQL, KC_MINS, KC_LPRN, KC_PLUS, KC_ASTR, KC_RPRN, KC_UNDS, KC_SLSH, KC_DQUO, _____,
+_____, KC_GRV, KC_QUES, KC_HASH, KC_LBRC, KC_PIPE, KC_AMPR, KC_RBRC, KC_DLR, KC_EXLM, KC_CIRC, _____,
+_____, _____, _____, KC_BSPC, _____, _____, _____, _____, _____, _____, _____, _____
+ ),
+ [_ARROWS] = LAYOUT_planck_grid(
+_____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
+_____, _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _____, _____,
+_____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
+_____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____
+ ),
+ [_NUMPAD] = LAYOUT_planck_grid(
+_____, _____, _____, _____, _____, _____, _____, KC_7, KC_8, KC_9, _____, _____,
+_____, _____, _____, _____, _____, _____, KC_0, KC_4, KC_5, KC_6, _____, _____,
+_____, _____, _____, _____, _____, _____, _____, KC_1, KC_2, KC_3, _____, _____,
+_____, _____, _____, _____, _____, _____, KC_0, KC_DOT, _____, _____, _____, _____
+ ),
+ [_MOUSE] = LAYOUT(
+_____, _____, _____, _____, _____, _____, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, _____, _____,
+_____, _____, _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, _____, _____,
+_____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
+_____, _____, _____, _____, _____, _____, KC_MS_BTN2, KC_MS_BTN1, _____, _____, _____, _____
+ ),
+ [_MENU] = LAYOUT_planck_grid(
+ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
+ _____, _____, _____, _____, _____, _____, _____, DF(_QWERTY), DF(_COLEMAK), DF(_GAMES), _____, _____,
+ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
+ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____
+ ),
+};
R planck/rules.mk => planck/keymaps/default/rules.mk +0 -0
A planck/planck.c => planck/planck.c +39 -0
@@ 0,0 1,39 @@
+#include "planck.h"
+
+__attribute__ ((weak))
+void matrix_init_kb(void) {
+ // Turn status LED on, with the exception of THK
+ #if defined(__AVR_ATmega32U4__)
+ setPinOutput(E6);
+ writePinHigh(E6);
+ #endif
+
+ matrix_init_user();
+}
+
+const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_planck_grid(
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
+);
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) { return false; }
+ if (get_highest_layer(layer_state) > 0) {
+ if (clockwise) {
+ tap_code_delay(KC_VOLU, 10);
+ } else {
+ tap_code_delay(KC_VOLD, 10);
+ }
+ } else {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ return true;
+}
+#endif
A planck/planck.h => planck/planck.h +20 -0
@@ 0,0 1,20 @@
+/* Copyright 2018 Jack Humbert <jack.humb@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+#include "rev6.h"
A planck/rev6/chconf.h => planck/rev6/chconf.h +29 -0
@@ 0,0 1,29 @@
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This file was auto-generated by:
+ * `qmk chibios-confmigrate -i keyboards/planck/rev6/chconf.h -r platforms/chibios/QMK_PROTON_C/configs/chconf.h`
+ */
+
+#pragma once
+
+#define CH_CFG_ST_RESOLUTION 16
+
+#define CH_CFG_ST_FREQUENCY 10000
+
+#include_next <chconf.h>
+
A planck/rev6/config.h => planck/rev6/config.h +114 -0
@@ 0,0 1,114 @@
+/*
+ * Copyright 2018 Jack Humbert <jack.humb@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#undef MATRIX_ROWS
+#undef MATRIX_COLS
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 6
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+/* Note: These are not used for arm boards. They're here purely as documentation. */
+#undef MATRIX_ROW_PINS
+#undef MATRIX_COL_PINS
+
+#define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2 }
+#define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 }
+
+
+#define ENCODERS_PAD_A { B12 }
+#define ENCODERS_PAD_B { B13 }
+
+#define DIP_SWITCH_PINS { B14, A15, A0, B9 }
+
+#define MUSIC_MAP
+#undef AUDIO_VOICES
+#undef AUDIO_PIN
+#define AUDIO_PIN A5
+#define AUDIO_PIN_ALT A4
+#define AUDIO_PIN_ALT_AS_NEGATIVE
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+// #define DEBOUNCE 6
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+//#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+//#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/*
+ * WS2812 Underglow Matrix options
+ */
+#define RGB_DI_PIN A1
+#define RGBLED_NUM 9
+#define RGB_MATRIX_LED_COUNT RGBLED_NUM
+
+#define WS2812_PWM_DRIVER PWMD2
+#define WS2812_PWM_CHANNEL 2
+#define WS2812_PWM_PAL_MODE 1
+#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
+#define WS2812_DMA_CHANNEL 2
+
+#define RGB_DISABLE_WHEN_USB_SUSPENDED
A planck/rev6/info.json => planck/rev6/info.json +268 -0
@@ 0,0 1,268 @@
+{
+ "keyboard_name": "Planck",
+ "manufacturer": "OLKB",
+ "url": "https://olkb.com/planck",
+ "maintainer": "jackhumbert",
+ "usb": {
+ "vid": "0x03A8",
+ "pid": "0xA4F9",
+ "device_version": "0.0.6"
+ },
+ "layouts": {
+ "LAYOUT_ortho_4x12": {
+ "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 }
+ ]
+ },
+ "LAYOUT_planck_1x2uC": {
+ "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_planck_1x2uL": {
+ "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, "w": 2 },
+ { "x": 6, "y": 3 },
+ { "x": 7, "y": 3 },
+ { "x": 8, "y": 3 },
+ { "x": 9, "y": 3 },
+ { "x": 10, "y": 3 },
+ { "x": 11, "y": 3 }
+ ]
+ },
+ "LAYOUT_planck_1x2uR": {
+ "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, "w": 2 },
+ { "x": 8, "y": 3 },
+ { "x": 9, "y": 3 },
+ { "x": 10, "y": 3 },
+ { "x": 11, "y": 3 }
+ ]
+ },
+ "LAYOUT_planck_2x2u": {
+ "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, "w": 2 },
+ { "x": 6, "y": 3, "w": 2 },
+ { "x": 8, "y": 3 },
+ { "x": 9, "y": 3 },
+ { "x": 10, "y": 3 },
+ { "x": 11, "y": 3 }
+ ]
+ }
+ }
+}
A planck/rev6/mcuconf.h => planck/rev6/mcuconf.h +30 -0
@@ 0,0 1,30 @@
+/* Copyright 2020 QMK Contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include_next "mcuconf.h"
+
+// The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used
+// on the Planck requires the use of TIM2 to run PWM -- rework which timers are
+// allocated for PWM usage.
+#undef STM32_PWM_USE_TIM2
+#undef STM32_PWM_USE_TIM3
+#define STM32_PWM_USE_TIM2 TRUE
+#define STM32_PWM_USE_TIM3 FALSE
+
+// As mentioned above, we need to reallocate the SysTick timer used from
+// TIM2 to TIM3.
+#undef STM32_ST_USE_TIMER
+#define STM32_ST_USE_TIMER 3
A planck/rev6/readme.md => 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).
A planck/rev6/rev6.c => planck/rev6/rev6.c +62 -0
@@ 0,0 1,62 @@
+/* Copyright 2018 Jack Humbert <jack.humb@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "rev6.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
+ { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
+ { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+
+// LED physical location index
+// 6 5 4 3
+// 0
+// 7 8 1 2
+
+#endif
+
+#ifdef SWAP_HANDS_ENABLE
+__attribute__ ((weak))
+const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
+ {{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
+ {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
+ {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
+ {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
+
+ {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
+ {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
+ {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
+ {{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}},
+};
+
+# ifdef ENCODER_MAP_ENABLE
+const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {0};
+# endif
+#endif
A planck/rev6/rev6.h => planck/rev6/rev6.h +104 -0
@@ 0,0 1,104 @@
+/* Copyright 2018 Jack Humbert <jack.humb@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "planck.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_planck_1x2uC( \
+ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+ k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+ k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+ k30, k31, k32, k73, k74, k70, k71, k72, k33, k34, k35 \
+) { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { k70, k71, k72, k73, k74, XXX } \
+}
+
+#define LAYOUT_planck_1x2uR( \
+ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+ k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+ k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+ k30, k31, k32, k73, k74, k75, k71, k72, k33, k34, k35 \
+) { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { XXX, k71, k72, k73, k74, k75 } \
+}
+
+#define LAYOUT_planck_1x2uL( \
+ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+ k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+ k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+ k30, k31, k32, k73, k75, k70, k71, k72, k33, k34, k35 \
+) { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { k70, k71, k72, k73, XXX, k75 } \
+}
+
+#define LAYOUT_planck_2x2u( \
+ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+ k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+ k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+ k30, k31, k32, k73, k75, k71, k72, k33, k34, k35 \
+) { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { XXX, k71, k72, k73, XXX, k75 } \
+}
+
+#define LAYOUT_ortho_4x12( \
+ k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \
+ k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \
+ k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \
+ k30, k31, k32, k73, k74, k75, k70, k71, k72, k33, k34, k35 \
+) { \
+ { k00, k01, k02, k03, k04, k05 }, \
+ { k10, k11, k12, k13, k14, k15 }, \
+ { k20, k21, k22, k23, k24, k25 }, \
+ { k30, k31, k32, k33, k34, k35 }, \
+ { k40, k41, k42, k43, k44, k45 }, \
+ { k50, k51, k52, k53, k54, k55 }, \
+ { k60, k61, k62, k63, k64, k65 }, \
+ { k70, k71, k72, k73, k74, k75 } \
+}
+
+#define LAYOUT LAYOUT_ortho_4x12
+#define LAYOUT_planck_mit LAYOUT_planck_1x2uC
+#define LAYOUT_planck_grid LAYOUT_ortho_4x12
A planck/rev6/rules.mk => planck/rev6/rules.mk +28 -0
@@ 0,0 1,28 @@
+# MCU name
+MCU = STM32F303
+BOARD = QMK_PROTON_C
+
+# Bootloader selection
+BOOTLOADER = stm32-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = yes # Audio output
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+WS2812_DRIVER = pwm
+
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
+ENCODER_ENABLE = yes
+DIP_SWITCH_ENABLE = yes
+
+LAYOUTS = ortho_4x12 planck_mit
+LAYOUTS_HAS_RGB = no