aboutsummaryrefslogtreecommitdiff
path: root/keyboards/handwired/selene
diff options
context:
space:
mode:
authorDavid Camp <Bpendragon@users.noreply.github.com>2020-08-07 13:31:22 -0700
committerGitHub <noreply@github.com>2020-08-07 13:31:22 -0700
commit78fef0a46aa29e3fd97ba1723f652c5cd79ad2b3 (patch)
treee27e11b9ee3b3605c4f7d432eedef0ae6eed2476 /keyboards/handwired/selene
parent245797f6b998fb4f52df61e38151c80b05615740 (diff)
downloadqmk_firmware-78fef0a46aa29e3fd97ba1723f652c5cd79ad2b3.tar.gz
qmk_firmware-78fef0a46aa29e3fd97ba1723f652c5cd79ad2b3.zip
[Keyboard] Add "Selene" to the handwired section (#9920)
* Added handwired/selene based on handwired/106_with_trackpoint * now at least parially working * Selene Firmware 1, ready * Updated Readme to align more with Template * Added URL to info.json * Fix status Lights being wired incorrectly * Update keyboards/handwired/selene/config.h * Update keyboards/handwired/selene/keymaps/Bpendragon/keymap.c * Update keyboards/handwired/selene/selene.c * Update keyboards/handwired/selene/selene.h * Changes for PR requested by fauxpark * Adds `default` keymap * Renames `Bpendragon` to `bpendragon` * Removes uneeded descriptors and options * Simplifies return statement in `keymap.c` * Removes trailing slashes from layout in `keymap.c` * Updates `readme.mk` to reflect default keymap * Aligns comments in `rules.mk` * Forced folder name update to lowercase * Apply suggestions from code review
Diffstat (limited to 'keyboards/handwired/selene')
-rw-r--r--keyboards/handwired/selene/config.h43
-rw-r--r--keyboards/handwired/selene/info.json121
-rw-r--r--keyboards/handwired/selene/keymaps/bpendragon/keymap.c43
-rw-r--r--keyboards/handwired/selene/keymaps/default/keymap.c43
-rw-r--r--keyboards/handwired/selene/readme.md17
-rw-r--r--keyboards/handwired/selene/rules.mk20
-rw-r--r--keyboards/handwired/selene/selene.c38
-rw-r--r--keyboards/handwired/selene/selene.h39
8 files changed, 364 insertions, 0 deletions
diff --git a/keyboards/handwired/selene/config.h b/keyboards/handwired/selene/config.h
new file mode 100644
index 000000000..ced93e516
--- /dev/null
+++ b/keyboards/handwired/selene/config.h
@@ -0,0 +1,43 @@
1/* Copyright 2020 Bpendragon
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21#define VENDOR_ID 0x4244 //-B-pen-D-ragon
22#define PRODUCT_ID 0x0001
23#define DEVICE_VER 0x0001
24#define MANUFACTURER Bpendragon
25#define PRODUCT Selene
26
27#define MATRIX_ROWS 6
28#define MATRIX_COLS 21
29
30#define MATRIX_ROW_PINS { B10, B9, B15, B14, B13, B8}
31#define MATRIX_COL_PINS { A9, A10, B11, B7, B6, B5, B4, B3, B2, B1, B0, C14, A4, A5, A6, A7, A8, A15, A13, A14, B12 }
32#define UNUSED_PINS
33#define RGB_DI_PIN A3
34#define RGBLED_NUM 50
35
36
37/* COL2ROW or ROW2COL */
38#define DIODE_DIRECTION COL2ROW
39
40#define DEBOUNCE 5
41
42#define LOCKING_SUPPORT_ENABLE
43#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/handwired/selene/info.json b/keyboards/handwired/selene/info.json
new file mode 100644
index 000000000..8df57f936
--- /dev/null
+++ b/keyboards/handwired/selene/info.json
@@ -0,0 +1,121 @@
1{
2 "keyboard_name": "Selene",
3 "url": "https://github.com/Bpendragon/Selene-Keyboard",
4 "maintainer": "Bpendragon",
5 "width": 22.5,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"Esc", "x":0, "y":0},
11 {"label":"F1", "x":2, "y":0},
12 {"label":"F2", "x":3, "y":0},
13 {"label":"F3", "x":4, "y":0},
14 {"label":"F4", "x":5, "y":0},
15 {"label":"F5", "x":6.5, "y":0},
16 {"label":"F6", "x":7.5, "y":0},
17 {"label":"F7", "x":8.5, "y":0},
18 {"label":"F8", "x":9.5, "y":0},
19 {"label":"F9", "x":11, "y":0},
20 {"label":"F10", "x":12, "y":0},
21 {"label":"F11", "x":13, "y":0},
22 {"label":"F12", "x":14, "y":0},
23 {"label":"Print", "x":15.25, "y":0},
24 {"label":"Scroll Lock", "x":16.25, "y":0},
25 {"label":"Pause", "x":17.25, "y":0},
26 {"label":"Out", "x":18.5, "y":0},
27 {"label":"+", "x":19.5, "y":0},
28 {"label":"-", "x":20.5, "y":0},
29 {"label":"~", "x":21.5, "y":0},
30 {"label":"~", "x":0, "y":1.5},
31 {"label":"!", "x":1, "y":1.5},
32 {"label":"@", "x":2, "y":1.5},
33 {"label":"#", "x":3, "y":1.5},
34 {"label":"$", "x":4, "y":1.5},
35 {"label":"%", "x":5, "y":1.5},
36 {"label":"^", "x":6, "y":1.5},
37 {"label":"&", "x":7, "y":1.5},
38 {"label":"*", "x":8, "y":1.5},
39 {"label":"(", "x":9, "y":1.5},
40 {"label":")", "x":10, "y":1.5},
41 {"label":"_", "x":11, "y":1.5},
42 {"label":"+", "x":12, "y":1.5},
43 {"label":"<i class=\"fa fa-long-arrow-left\"></i>", "x":13, "y":1.5, "w":2},
44 {"label":"Insert", "x":15.25, "y":1.5},
45 {"label":"Home", "x":16.25, "y":1.5},
46 {"label":"Pg Up", "x":17.25, "y":1.5},
47 {"label":"Num", "x":18.5, "y":1.5},
48 {"label":"\u00f7", "x":19.5, "y":1.5},
49 {"label":"\u00d7", "x":20.5, "y":1.5},
50 {"label":"-", "x":21.5, "y":1.5},
51 {"label":"<i class='kb kb-Line-Start-End'></i>", "x":0, "y":2.5, "w":1.5},
52 {"label":"Q", "x":1.5, "y":2.5},
53 {"label":"W", "x":2.5, "y":2.5},
54 {"label":"E", "x":3.5, "y":2.5},
55 {"label":"R", "x":4.5, "y":2.5},
56 {"label":"T", "x":5.5, "y":2.5},
57 {"label":"Y", "x":6.5, "y":2.5},
58 {"label":"U", "x":7.5, "y":2.5},
59 {"label":"I", "x":8.5, "y":2.5},
60 {"label":"O", "x":9.5, "y":2.5},
61 {"label":"P", "x":10.5, "y":2.5},
62 {"label":"{", "x":11.5, "y":2.5},
63 {"label":"}", "x":12.5, "y":2.5},
64 {"label":"|", "x":13.5, "y":2.5, "w":1.5},
65 {"label":"Delete", "x":15.25, "y":2.5},
66 {"label":"End", "x":16.25, "y":2.5},
67 {"label":"Pg Dn", "x":17.25, "y":2.5},
68 {"label":"7", "x":18.5, "y":2.5},
69 {"label":"8", "x":19.5, "y":2.5},
70 {"label":"9", "x":20.5, "y":2.5},
71 {"label":"+", "x":21.5, "y":2.5, "h":2},
72 {"label":"\u21e9", "x":0, "y":3.5, "w":1.25},
73 {"label":"A", "x":1.75, "y":3.5},
74 {"label":"S", "x":2.75, "y":3.5},
75 {"label":"D", "x":3.75, "y":3.5},
76 {"label":"F", "x":4.75, "y":3.5},
77 {"label":"G", "x":5.75, "y":3.5},
78 {"label":"H", "x":6.75, "y":3.5},
79 {"label":"J", "x":7.75, "y":3.5},
80 {"label":"K", "x":8.75, "y":3.5},
81 {"label":"L", "x":9.75, "y":3.5},
82 {"label":":", "x":10.75, "y":3.5},
83 {"label":"\"", "x":11.75, "y":3.5},
84 {"label":"<i class='kb kb-Return-2'></i>", "x":12.75, "y":3.5, "w":2.25},
85 {"label":"4", "x":18.5, "y":3.5},
86 {"label":"5", "x":19.5, "y":3.5},
87 {"label":"6", "x":20.5, "y":3.5},
88 {"label":"\u21e7", "x":0, "y":4.5, "w":2.25},
89 {"label":"Z", "x":2.25, "y":4.5},
90 {"label":"X", "x":3.25, "y":4.5},
91 {"label":"C", "x":4.25, "y":4.5},
92 {"label":"V", "x":5.25, "y":4.5},
93 {"label":"B", "x":6.25, "y":4.5},
94 {"label":"N", "x":7.25, "y":4.5},
95 {"label":"M", "x":8.25, "y":4.5},
96 {"label":"<", "x":9.25, "y":4.5},
97 {"label":">", "x":10.25, "y":4.5},
98 {"label":"?", "x":11.25, "y":4.5},
99 {"label":"\u21e7", "x":12.25, "y":4.5, "w":2.75},
100 {"label":"\u2191", "x":16.25, "y":4.5},
101 {"label":"1", "x":18.5, "y":4.5},
102 {"label":"2", "x":19.5, "y":4.5},
103 {"label":"3", "x":20.5, "y":4.5},
104 {"label":"<i class='kb kb-Return-2'></i>", "x":21.5, "y":4.5, "h":2},
105 {"label":"Control", "x":0, "y":5.5, "w":1.25},
106 {"label":"Super", "x":1.25, "y":5.5, "w":1.25},
107 {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
108 {"x":3.75, "y":5.5, "w":6.25},
109 {"label":"Alt", "x":10, "y":5.5, "w":1.25},
110 {"label":"Super", "x":11.25, "y":5.5, "w":1.25},
111 {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
112 {"label":"Control", "x":13.75, "y":5.5, "w":1.25},
113 {"label":"\u2190", "x":15.25, "y":5.5},
114 {"label":"\u2193", "x":16.25, "y":5.5},
115 {"label":"\u2192", "x":17.25, "y":5.5},
116 {"label":"0", "x":18.5, "y":5.5},
117 {"label":"00", "x":19.5, "y":5.5},
118 {"label":".", "x":20.5, "y":5.5}]
119 }
120 }
121}
diff --git a/keyboards/handwired/selene/keymaps/bpendragon/keymap.c b/keyboards/handwired/selene/keymaps/bpendragon/keymap.c
new file mode 100644
index 000000000..cdafc003e
--- /dev/null
+++ b/keyboards/handwired/selene/keymaps/bpendragon/keymap.c
@@ -0,0 +1,43 @@
1/* Copyright 2020 Bpendragon
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19enum custom_keycodes {
20 DBL_0 = SAFE_RANGE,
21};
22
23bool process_record_user(uint16_t keycode, keyrecord_t *record) {
24 switch (keycode) {
25 case DBL_0:
26 if(record->event.pressed) {
27 SEND_STRING("00");
28 }
29 break;
30 }
31 return true;
32};
33
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 [0] = LAYOUT (
36 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY,
37 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
38 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
39 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
41 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, DBL_0, KC_PDOT
42 )
43};
diff --git a/keyboards/handwired/selene/keymaps/default/keymap.c b/keyboards/handwired/selene/keymaps/default/keymap.c
new file mode 100644
index 000000000..cdafc003e
--- /dev/null
+++ b/keyboards/handwired/selene/keymaps/default/keymap.c
@@ -0,0 +1,43 @@
1/* Copyright 2020 Bpendragon
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19enum custom_keycodes {
20 DBL_0 = SAFE_RANGE,
21};
22
23bool process_record_user(uint16_t keycode, keyrecord_t *record) {
24 switch (keycode) {
25 case DBL_0:
26 if(record->event.pressed) {
27 SEND_STRING("00");
28 }
29 break;
30 }
31 return true;
32};
33
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 [0] = LAYOUT (
36 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY,
37 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
38 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
39 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
41 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, DBL_0, KC_PDOT
42 )
43};
diff --git a/keyboards/handwired/selene/readme.md b/keyboards/handwired/selene/readme.md
new file mode 100644
index 000000000..47e3e4a86
--- /dev/null
+++ b/keyboards/handwired/selene/readme.md
@@ -0,0 +1,17 @@
1# Selene
2
3![Selene](https://i.imgur.com/qLyaZtWl.jpg)
4
5A 109 key Full size with Media and 00 Keys
6
7[Layout](http://www.keyboard-layout-editor.com/#/gists/7abe0f9944f72517c9f9f7b989548eb5)
8
9* Keyboard Maintainer: [Bpendragon](https://github.com/Bpendragon)
10* Hardware Supported: Proton-C
11* Hardware Availability: DXF files for the plates may be downloded [From the Project Repo](https://github.com/Bpendragon/Selene-Keyboard/releases/tag/1.0). You'll have to source the plates yourself. (I used Ponoko for the Acrylic and Elevated Materials for the Carbon Fiber)
12
13Make example for this keyboard (after setting up your build environment):
14
15 make handwired/selene:default
16
17See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs)
diff --git a/keyboards/handwired/selene/rules.mk b/keyboards/handwired/selene/rules.mk
new file mode 100644
index 000000000..9416bc5fd
--- /dev/null
+++ b/keyboards/handwired/selene/rules.mk
@@ -0,0 +1,20 @@
1# MCU name
2MCU = STM32F303
3
4# Build Options
5# change yes to no to disable
6#
7BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
8MOUSEKEY_ENABLE = no # Mouse keys
9EXTRAKEY_ENABLE = yes # Audio control and System control
10CONSOLE_ENABLE = yes # Console for debug
11COMMAND_ENABLE = yes # Commands for debug and configuration
12# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
13SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
14# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
15NKRO_ENABLE = yes # USB Nkey Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
18WS2812_DRIVER = bitbang
19BLUETOOTH_ENABLE = no # Enable Bluetooth
20AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/handwired/selene/selene.c b/keyboards/handwired/selene/selene.c
new file mode 100644
index 000000000..a3702ce02
--- /dev/null
+++ b/keyboards/handwired/selene/selene.c
@@ -0,0 +1,38 @@
1/* Copyright 2020 Bpendragon
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17
18#include "selene.h"
19
20void matrix_init_kb(void){
21 setPinOutput(NUM_LOCK_PIN);
22 setPinOutput(CAPS_LOCK_PIN);
23 setPinOutput(SCROLL_LOCK_PIN);
24}
25
26void keyboard_post_init_user(void) {
27 rgblight_setrgb(0xff, 0xff, 0xff);
28}
29
30bool led_update_kb(led_t led_state) {
31 bool res = led_update_user(led_state);
32 if(res) {
33 writePin(NUM_LOCK_PIN, led_state.num_lock);
34 writePin(CAPS_LOCK_PIN, led_state.caps_lock);
35 writePin(SCROLL_LOCK_PIN, led_state.scroll_lock);
36 }
37 return res;
38}
diff --git a/keyboards/handwired/selene/selene.h b/keyboards/handwired/selene/selene.h
new file mode 100644
index 000000000..1cffc76c1
--- /dev/null
+++ b/keyboards/handwired/selene/selene.h
@@ -0,0 +1,39 @@
1/* Copyright 2020 Bpendragon
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define NUM_LOCK_PIN A0
22#define CAPS_LOCK_PIN A2
23#define SCROLL_LOCK_PIN A1
24
25#define LAYOUT( \
26 K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, K020, \
27 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, \
28 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, K220, \
29 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K317, K318, K319, \
30 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K415, K417, K418, K419, K420, \
31 K500, K501, K502, K505, K509, K510, K511, K513, K514, K515, K516, K517, K518, K519 \
32) { \
33 { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, K020 }, \
34 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120 }, \
35 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, K220 }, \
36 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO, K317, K318, K319, KC_NO }, \
37 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, KC_NO, K412, KC_NO, KC_NO, K415, KC_NO, K417, K418, K419, K420 }, \
38 { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, KC_NO, K513, K514, K515, K516, K517, K518, K519, KC_NO } \
39}