aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcole smith <38364556+daysgobye@users.noreply.github.com>2021-07-19 21:04:43 -0700
committerGitHub <noreply@github.com>2021-07-19 21:04:43 -0700
commit6ab0593f4497df7051e67a1b1323a664e726c5c4 (patch)
tree1502cfaf014b053e01fe59dc9b5e6f3750e15193
parent9941cf00519349c8487ac18fee92f5114150194a (diff)
downloadqmk_firmware-6ab0593f4497df7051e67a1b1323a664e726c5c4.tar.gz
qmk_firmware-6ab0593f4497df7051e67a1b1323a664e726c5c4.zip
[Keyboard] Boardsource technik (#13111)
Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/boardsource/technik_s/config.h121
-rw-r--r--keyboards/boardsource/technik_s/info.json58
-rw-r--r--keyboards/boardsource/technik_s/keymaps/default/keymap.c53
-rw-r--r--keyboards/boardsource/technik_s/keymaps/default/readme.md1
-rw-r--r--keyboards/boardsource/technik_s/keymaps/via/keymap.c53
-rw-r--r--keyboards/boardsource/technik_s/keymaps/via/readme.md1
-rw-r--r--keyboards/boardsource/technik_s/keymaps/via/rules.mk1
-rw-r--r--keyboards/boardsource/technik_s/readme.md22
-rw-r--r--keyboards/boardsource/technik_s/rules.mk25
-rw-r--r--keyboards/boardsource/technik_s/technik_s.c38
-rw-r--r--keyboards/boardsource/technik_s/technik_s.h31
11 files changed, 404 insertions, 0 deletions
diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h
new file mode 100644
index 000000000..97dec63ef
--- /dev/null
+++ b/keyboards/boardsource/technik_s/config.h
@@ -0,0 +1,121 @@
1/*
2Copyright 2020 Boardsource
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x4273
24#define PRODUCT_ID 0x0083
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Boardsource
27#define PRODUCT Technik-S
28
29/* key matrix size */
30#define MATRIX_ROWS 4
31#define MATRIX_COLS 12
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42 */
43#define MATRIX_ROW_PINS {B0, B1, B2, B3}
44#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6}
45#define UNUSED_PINS
46
47/* COL2ROW, ROW2COL */
48#define DIODE_DIRECTION COL2ROW
49
50//#define BACKLIGHT_PIN B7
51//#define BACKLIGHT_LEVELS 3
52#define BACKLIGHT_BREATHING
53#define RGBLIGHT_ANIMATIONS
54#define RGB_DI_PIN C6
55#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
56#ifdef RGBLIGHT_ENABLE
57#define RGBLED_NUM 10 // Number of LEDs
58#endif
59
60#define DRIVER_LED_TOTAL 55
61
62/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
63#define DEBOUNCE 5
64
65/* define if matrix has ghost (lacks anti-ghosting diodes) */
66//#define MATRIX_HAS_GHOST
67
68/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
69#define LOCKING_SUPPORT_ENABLE
70/* Locking resynchronize hack */
71#define LOCKING_RESYNC_ENABLE
72
73/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
74 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
75 */
76//#define GRAVE_ESC_CTRL_OVERRIDE
77
78/*
79 * Force NKRO
80 *
81 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
82 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
83 * makefile for this to work.)
84 *
85 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
86 * until the next keyboard reset.
87 *
88 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
89 * fully operational during normal computer usage.
90 *
91 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
92 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
93 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
94 * power-up.
95 *
96 */
97//#define FORCE_NKRO
98
99/*
100 * Feature disable options
101 * These options are also useful to firmware size reduction.
102 */
103
104/* disable debug print */
105//#define NO_DEBUG
106
107/* disable print */
108//#define NO_PRINT
109
110/* disable action features */
111//#define NO_ACTION_LAYER
112//#define NO_ACTION_TAPPING
113//#define NO_ACTION_ONESHOT
114
115/* disable these deprecated features by default */
116#define NO_ACTION_MACRO
117#define NO_ACTION_FUNCTION
118
119/* Bootmagic Lite key configuration */
120//#define BOOTMAGIC_LITE_ROW 0
121//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/boardsource/technik_s/info.json b/keyboards/boardsource/technik_s/info.json
new file mode 100644
index 000000000..a166c9ae2
--- /dev/null
+++ b/keyboards/boardsource/technik_s/info.json
@@ -0,0 +1,58 @@
1{
2 "keyboard_name": "Technik-S",
3 "url": "",
4 "maintainer": "Boardsource",
5 "width": 12,
6 "height": 4,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 { "label": "1", "x": 0, "y": 0 },
11 { "label": "2", "x": 1, "y": 0 },
12 { "label": "3", "x": 2, "y": 0 },
13 { "label": "4", "x": 3, "y": 0 },
14 { "label": "5", "x": 4, "y": 0 },
15 { "label": "6", "x": 5, "y": 0 },
16 { "label": "7", "x": 6, "y": 0 },
17 { "label": "8", "x": 7, "y": 0 },
18 { "label": "9", "x": 8, "y": 0 },
19 { "label": "10", "x": 9, "y": 0 },
20 { "label": "11", "x": 10, "y": 0 },
21 { "label": "12", "x": 11, "y": 0 },
22 { "label": "13", "x": 0, "y": 1, "w": 1.5 },
23 { "label": "14", "x": 1.5, "y": 1 },
24 { "label": "15", "x": 2.5, "y": 1 },
25 { "label": "16", "x": 3.5, "y": 1 },
26 { "label": "17", "x": 4.5, "y": 1 },
27 { "label": "18", "x": 5.5, "y": 1 },
28 { "label": "19", "x": 6.5, "y": 1 },
29 { "label": "20", "x": 7.5, "y": 1 },
30 { "label": "21", "x": 8.5, "y": 1 },
31 { "label": "22", "x": 9.5, "y": 1 },
32 { "label": "23", "x": 10.5, "y": 1, "w": 1.5 },
33 { "label": "24", "x": 0, "y": 2 },
34 { "label": "25", "x": 1, "y": 2 },
35 { "label": "26", "x": 2, "y": 2 },
36 { "label": "27", "x": 3, "y": 2 },
37 { "label": "28", "x": 4, "y": 2 },
38 { "label": "29", "x": 5, "y": 2 },
39 { "label": "30", "x": 6, "y": 2 },
40 { "label": "31", "x": 7, "y": 2 },
41 { "label": "32", "x": 8, "y": 2 },
42 { "label": "33", "x": 9, "y": 2 },
43 { "label": "34", "x": 10, "y": 2 },
44 { "label": "35", "x": 11, "y": 2 },
45 { "label": "36", "x": 0, "y": 3 },
46 { "label": "37", "x": 1, "y": 3 },
47 { "label": "38", "x": 2, "y": 3 },
48 { "label": "39", "x": 3, "y": 3, "w": 1.5 },
49 { "label": "40", "x": 4.5, "y": 3, "w": 1.5 },
50 { "label": "41", "x": 6, "y": 3, "w": 1.5 },
51 { "label": "42", "x": 7.5, "y": 3, "w": 1.5 },
52 { "label": "43", "x": 9, "y": 3 },
53 { "label": "44", "x": 10, "y": 3 },
54 { "label": "45", "x": 11, "y": 3 }
55 ]
56 }
57 }
58}
diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c
new file mode 100644
index 000000000..89dfaa4ac
--- /dev/null
+++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c
@@ -0,0 +1,53 @@
1/* Copyright 2020 Boardsource
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 layers {
20 _MAIN,
21 _RAISE,
22 _LOWER,
23};
24
25// Readability keycodes
26#define LOWER MO(_LOWER)
27#define RAISE MO(_RAISE)
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30
31 [_MAIN] = LAYOUT(
32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
33 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
34 KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT ,
35 RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT
36 ),
37
38 [_RAISE] = LAYOUT(
39 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
40 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
41 RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
42 RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
43 ),
44
45 [_LOWER] = LAYOUT(
46 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
47 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
48 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
50 )
51
52};
53
diff --git a/keyboards/boardsource/technik_s/keymaps/default/readme.md b/keyboards/boardsource/technik_s/keymaps/default/readme.md
new file mode 100644
index 000000000..0e6753504
--- /dev/null
+++ b/keyboards/boardsource/technik_s/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for Technik-S
diff --git a/keyboards/boardsource/technik_s/keymaps/via/keymap.c b/keyboards/boardsource/technik_s/keymaps/via/keymap.c
new file mode 100644
index 000000000..89dfaa4ac
--- /dev/null
+++ b/keyboards/boardsource/technik_s/keymaps/via/keymap.c
@@ -0,0 +1,53 @@
1/* Copyright 2020 Boardsource
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 layers {
20 _MAIN,
21 _RAISE,
22 _LOWER,
23};
24
25// Readability keycodes
26#define LOWER MO(_LOWER)
27#define RAISE MO(_RAISE)
28
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30
31 [_MAIN] = LAYOUT(
32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
33 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
34 KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT ,
35 RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT
36 ),
37
38 [_RAISE] = LAYOUT(
39 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
40 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
41 RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
42 RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
43 ),
44
45 [_LOWER] = LAYOUT(
46 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
47 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
48 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
50 )
51
52};
53
diff --git a/keyboards/boardsource/technik_s/keymaps/via/readme.md b/keyboards/boardsource/technik_s/keymaps/via/readme.md
new file mode 100644
index 000000000..54e975a5a
--- /dev/null
+++ b/keyboards/boardsource/technik_s/keymaps/via/readme.md
@@ -0,0 +1 @@
# The via keymap for Technik-S
diff --git a/keyboards/boardsource/technik_s/keymaps/via/rules.mk b/keyboards/boardsource/technik_s/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/boardsource/technik_s/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/boardsource/technik_s/readme.md b/keyboards/boardsource/technik_s/readme.md
new file mode 100644
index 000000000..9bc60d401
--- /dev/null
+++ b/keyboards/boardsource/technik_s/readme.md
@@ -0,0 +1,22 @@
1# Technik-S
2
3![Technik-S](https://i.imgur.com/0QLgu5V.jpeg)
4
5The technik-s is a 40% staggard keyboard that is designed to fit in the same case as the technik-o a 4x12 ortho
6
7* Keyboard Maintainer: [Boardsource](https://github.com/boardsource)
8* Hardware Supported: V1 pcb
9* Hardware Availability: [boardsource](https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make boardsource/technik_s:default
14
15Flashing example for this keyboard:
16
17 make boardsource/technik_s:default:flash
18
19Reset keyboard by pushing reset button on back of pcb through access hole. Or hold down top left key while you plug in the usb cable.
20Then run this command in your local qmk repo, or flash using qmk toolbox.
21
22See 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/boardsource/technik_s/rules.mk b/keyboards/boardsource/technik_s/rules.mk
new file mode 100644
index 000000000..293f8de84
--- /dev/null
+++ b/keyboards/boardsource/technik_s/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = no # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = yes
24RGB_MATRIX_DRIVER = WS2812
25LTO_ENABLE = yes
diff --git a/keyboards/boardsource/technik_s/technik_s.c b/keyboards/boardsource/technik_s/technik_s.c
new file mode 100644
index 000000000..63c77928a
--- /dev/null
+++ b/keyboards/boardsource/technik_s/technik_s.c
@@ -0,0 +1,38 @@
1/* Copyright 2020 Boardsource
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 "technik_s.h"
18#ifdef RGB_MATRIX_ENABLE
19led_config_t g_led_config = { {
20 {11,12,13,14,15,16,17,18,19,20,21,22},
21 {23,24,25,26,27,28,29,30,31,32,33},
22 {34,35,36,37,38,39,40,41,42,43,44,45},
23 {46,47,48,49,50,51,52,53,54,55}
24}, {
25 {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0},
26 {10.5, 1}, {9.5, 1}, {8.5, 1}, {7.5, 1}, {6.5, 1}, {5.5, 1}, {4.5, 1}, {3.5, 1}, {2.5, 1}, {1.5, 1}, {0.5, 1},
27 {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2},
28 {11, 3}, {10, 3}, {9, 3}, {8, 3}, {6.5, 3}, {5, 3}, {3.5, 3}, {2, 3}, {1, 3}, {0, 3},
29}, {
30 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
31 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
32 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
33 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
34 1, 1, 1, 1, 4, 4, 1, 1, 1, 1
35
36} };
37#endif
38
diff --git a/keyboards/boardsource/technik_s/technik_s.h b/keyboards/boardsource/technik_s/technik_s.h
new file mode 100644
index 000000000..97ee9a7f5
--- /dev/null
+++ b/keyboards/boardsource/technik_s/technik_s.h
@@ -0,0 +1,31 @@
1/* Copyright 2020 Boardsource
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#define LAYOUT( \
21 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, \
22 K12, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, \
23 K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, \
24 K36, K37, K38, K39, K40, K41, K42, K43, K44, K45 \
25 ) { \
26 {K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \
27 {K12, KC_NO, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23}, \
28 {K24, K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35}, \
29 {K36, K37, K38, K39,KC_NO,K40, K41,KC_NO,K42, K43, K44, K45} \
30 }
31