summaryrefslogtreecommitdiffstats
path: root/keyboards/tw40
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/tw40')
-rw-r--r--keyboards/tw40/config.h49
-rw-r--r--keyboards/tw40/info.json4478
-rw-r--r--keyboards/tw40/keymaps/default/keymap.c39
-rw-r--r--keyboards/tw40/keymaps/default/readme.md1
-rw-r--r--keyboards/tw40/readme.md20
-rw-r--r--keyboards/tw40/rules.mk22
-rw-r--r--keyboards/tw40/tw40.c17
-rw-r--r--keyboards/tw40/tw40.h233
8 files changed, 4859 insertions, 0 deletions
diff --git a/keyboards/tw40/config.h b/keyboards/tw40/config.h
new file mode 100644
index 0000000000..839babb920
--- /dev/null
+++ b/keyboards/tw40/config.h
@@ -0,0 +1,49 @@
+/*
+Copyright 2020 KnoblesseOblige
+
+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 "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x503D /* "P3D" */
+#define PRODUCT_ID 0x5457 /* "TW" */
+#define DEVICE_VER 0x0001
+#define MANUFACTURER KnoblesseOblige
+#define PRODUCT TW40
+
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 14
+
+#define MATRIX_ROW_PINS { B0, D5, D3, D2 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 }
+#define UNUSED_PINS
+
+#define DIODE_DIRECTION COL2ROW
+
+#define RGB_DI_PIN E6
+#define RGBLED_NUM 15
+#define RGBLIGHT_ANIMATIONS
+
+#define DEBOUNCE 5
+
+#define LOCKING_SUPPORT_ENABLE
+
+#define LOCKING_RESYNC_ENABLE
+
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
diff --git a/keyboards/tw40/info.json b/keyboards/tw40/info.json
new file mode 100644
index 0000000000..1162928362
--- /dev/null
+++ b/keyboards/tw40/info.json
@@ -0,0 +1,4478 @@
+{
+ "keyboard_name": "Training Wheel 40",
+ "url": "https://p3dstore.com/products/tw40-gb",
+ "maintainer": "KnoblesseOblige",
+ "width": 14,
+ "height": 4,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {
+ "label": "k00",
+ "x": 0,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k01",
+ "x": 1.5,
+ "y": 0
+ },
+ {
+ "label": "k02",
+ "x": 2.5,
+ "y": 0
+ },
+ {
+ "label": "k03",
+ "x": 3.5,
+ "y": 0
+ },
+ {
+ "label": "k04",
+ "x": 4.5,
+ "y": 0
+ },
+ {
+ "label": "k05",
+ "x": 5.5,
+ "y": 0
+ },
+ {
+ "label": "k06",
+ "x": 6.5,
+ "y": 0
+ },
+ {
+ "label": "k07",
+ "x": 7.5,
+ "y": 0
+ },
+ {
+ "label": "k08",
+ "x": 8.5,
+ "y": 0
+ },
+ {
+ "label": "k09",
+ "x": 9.5,
+ "y": 0
+ },
+ {
+ "label": "k0a",
+ "x": 10.5,
+ "y": 0
+ },
+ {
+ "label": "k0b",
+ "x": 11.5,
+ "y": 0
+ },
+ {
+ "label": "k0c",
+ "x": 12.5,
+ "y": 0
+ },
+ {
+ "label": "k0d",
+ "x": 13.5,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k10",
+ "x": 0,
+ "y": 1,
+ "w": 1.75
+ },
+ {
+ "label": "k11",
+ "x": 1.75,
+ "y": 1
+ },
+ {
+ "label": "k12",
+ "x": 2.75,
+ "y": 1
+ },
+ {
+ "label": "k13",
+ "x": 3.75,
+ "y": 1
+ },
+ {
+ "label": "k14",
+ "x": 4.75,
+ "y": 1
+ },
+ {
+ "label": "k15",
+ "x": 5.75,
+ "y": 1
+ },
+ {
+ "label": "k16",
+ "x": 6.75,
+ "y": 1
+ },
+ {
+ "label": "k17",
+ "x": 7.75,
+ "y": 1
+ },
+ {
+ "label": "k18",
+ "x": 8.75,
+ "y": 1
+ },
+ {
+ "label": "k19",
+ "x": 9.75,
+ "y": 1
+ },
+ {
+ "label": "k1a",
+ "x": 10.75,
+ "y": 1
+ },
+ {
+ "label": "k1b",
+ "x": 11.75,
+ "y": 1
+ },
+ {
+ "label": "k1c",
+ "x": 12.75,
+ "y": 1,
+ "w": 2.25
+ },
+ {
+ "label": "k20",
+ "x": 0,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "k21",
+ "x": 2.25,
+ "y": 2
+ },
+ {
+ "label": "k22",
+ "x": 3.25,
+ "y": 2
+ },
+ {
+ "label": "k23",
+ "x": 4.25,
+ "y": 2
+ },
+ {
+ "label": "k24",
+ "x": 5.25,
+ "y": 2
+ },
+ {
+ "label": "k25",
+ "x": 6.25,
+ "y": 2
+ },
+ {
+ "label": "k26",
+ "x": 7.25,
+ "y": 2
+ },
+ {
+ "label": "k27",
+ "x": 8.25,
+ "y": 2
+ },
+ {
+ "label": "k28",
+ "x": 9.25,
+ "y": 2
+ },
+ {
+ "label": "k29",
+ "x": 10.25,
+ "y": 2
+ },
+ {
+ "label": "k2b",
+ "x": 11.25,
+ "y": 2,
+ "w": 1.75
+ },
+ {
+ "label": "k2c",
+ "x": 13,
+ "y": 2
+ },
+ {
+ "label": "k2d",
+ "x": 14,
+ "y": 2
+ },
+ {
+ "label": "k30",
+ "x": 0,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k31",
+ "x": 1.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k32",
+ "x": 2.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k33",
+ "x": 3.75,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k34",
+ "x": 5,
+ "y": 3,
+ "w": 2.25
+ },
+ {
+ "label": "k35",
+ "x": 7.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k36",
+ "x": 8.5,
+ "y": 3,
+ "w": 1.5
+ },
+ {
+ "label": "k39",
+ "x": 10,
+ "y": 3
+ },
+ {
+ "label": "k3a",
+ "x": 11,
+ "y": 3
+ },
+ {
+ "label": "k3b",
+ "x": 12,
+ "y": 3
+ },
+ {
+ "label": "k3c",
+ "x": 13,
+ "y": 3
+ },
+ {
+ "label": "k3d",
+ "x": 14,
+ "y": 3
+ }
+ ]
+ },
+ "LAYOUT_3_split_space_standard_rshift_4x_125": {
+ "layout": [
+ {
+ "label": "k00",
+ "x": 0,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k01",
+ "x": 1.5,
+ "y": 0
+ },
+ {
+ "label": "k02",
+ "x": 2.5,
+ "y": 0
+ },
+ {
+ "label": "k03",
+ "x": 3.5,
+ "y": 0
+ },
+ {
+ "label": "k04",
+ "x": 4.5,
+ "y": 0
+ },
+ {
+ "label": "k05",
+ "x": 5.5,
+ "y": 0
+ },
+ {
+ "label": "k06",
+ "x": 6.5,
+ "y": 0
+ },
+ {
+ "label": "k07",
+ "x": 7.5,
+ "y": 0
+ },
+ {
+ "label": "k08",
+ "x": 8.5,
+ "y": 0
+ },
+ {
+ "label": "k09",
+ "x": 9.5,
+ "y": 0
+ },
+ {
+ "label": "k0a",
+ "x": 10.5,
+ "y": 0
+ },
+ {
+ "label": "k0b",
+ "x": 11.5,
+ "y": 0
+ },
+ {
+ "label": "k0c",
+ "x": 12.5,
+ "y": 0
+ },
+ {
+ "label": "k0d",
+ "x": 13.5,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k10",
+ "x": 0,
+ "y": 1,
+ "w": 1.75
+ },
+ {
+ "label": "k11",
+ "x": 1.75,
+ "y": 1
+ },
+ {
+ "label": "k12",
+ "x": 2.75,
+ "y": 1
+ },
+ {
+ "label": "k13",
+ "x": 3.75,
+ "y": 1
+ },
+ {
+ "label": "k14",
+ "x": 4.75,
+ "y": 1
+ },
+ {
+ "label": "k15",
+ "x": 5.75,
+ "y": 1
+ },
+ {
+ "label": "k16",
+ "x": 6.75,
+ "y": 1
+ },
+ {
+ "label": "k17",
+ "x": 7.75,
+ "y": 1
+ },
+ {
+ "label": "k18",
+ "x": 8.75,
+ "y": 1
+ },
+ {
+ "label": "k19",
+ "x": 9.75,
+ "y": 1
+ },
+ {
+ "label": "k1a",
+ "x": 10.75,
+ "y": 1
+ },
+ {
+ "label": "k1b",
+ "x": 11.75,
+ "y": 1
+ },
+ {
+ "label": "k1c",
+ "x": 12.75,
+ "y": 1,
+ "w": 2.25
+ },
+ {
+ "label": "k20",
+ "x": 0,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "k21",
+ "x": 2.25,
+ "y": 2
+ },
+ {
+ "label": "k22",
+ "x": 3.25,
+ "y": 2
+ },
+ {
+ "label": "k23",
+ "x": 4.25,
+ "y": 2
+ },
+ {
+ "label": "k24",
+ "x": 5.25,
+ "y": 2
+ },
+ {
+ "label": "k25",
+ "x": 6.25,
+ "y": 2
+ },
+ {
+ "label": "k26",
+ "x": 7.25,
+ "y": 2
+ },
+ {
+ "label": "k27",
+ "x": 8.25,
+ "y": 2
+ },
+ {
+ "label": "k28",
+ "x": 9.25,
+ "y": 2
+ },
+ {
+ "label": "k29",
+ "x": 10.25,
+ "y": 2
+ },
+ {
+ "label": "k2b",
+ "x": 11.25,
+ "y": 2
+ },
+ {
+ "label": "k2c",
+ "x": 12.25,
+ "y": 2,
+ "w": 2.75
+ },
+ {
+ "label": "k30",
+ "x": 0,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k31",
+ "x": 1.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k32",
+ "x": 2.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k33",
+ "x": 3.75,
+ "y": 3,
+ "w": 2.25
+ },
+ {
+ "label": "k34",
+ "x": 6,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k36",
+ "x": 7.25,
+ "y": 3,
+ "w": 2.75
+ },
+ {
+ "label": "k39",
+ "x": 10,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k3b",
+ "x": 11.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k3c",
+ "x": 12.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k3d",
+ "x": 13.75,
+ "y": 3,
+ "w": 1.25
+ }
+ ]
+ },
+ "LAYOUT_3_split_space_standard_rshift_5x_100": {
+ "layout": [
+ {
+ "label": "k00",
+ "x": 0,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k01",
+ "x": 1.5,
+ "y": 0
+ },
+ {
+ "label": "k02",
+ "x": 2.5,
+ "y": 0
+ },
+ {
+ "label": "k03",
+ "x": 3.5,
+ "y": 0
+ },
+ {
+ "label": "k04",
+ "x": 4.5,
+ "y": 0
+ },
+ {
+ "label": "k05",
+ "x": 5.5,
+ "y": 0
+ },
+ {
+ "label": "k06",
+ "x": 6.5,
+ "y": 0
+ },
+ {
+ "label": "k07",
+ "x": 7.5,
+ "y": 0
+ },
+ {
+ "label": "k08",
+ "x": 8.5,
+ "y": 0
+ },
+ {
+ "label": "k09",
+ "x": 9.5,
+ "y": 0
+ },
+ {
+ "label": "k0a",
+ "x": 10.5,
+ "y": 0
+ },
+ {
+ "label": "k0b",
+ "x": 11.5,
+ "y": 0
+ },
+ {
+ "label": "k0c",
+ "x": 12.5,
+ "y": 0
+ },
+ {
+ "label": "k0d",
+ "x": 13.5,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k10",
+ "x": 0,
+ "y": 1,
+ "w": 1.75
+ },
+ {
+ "label": "k11",
+ "x": 1.75,
+ "y": 1
+ },
+ {
+ "label": "k12",
+ "x": 2.75,
+ "y": 1
+ },
+ {
+ "label": "k13",
+ "x": 3.75,
+ "y": 1
+ },
+ {
+ "label": "k14",
+ "x": 4.75,
+ "y": 1
+ },
+ {
+ "label": "k15",
+ "x": 5.75,
+ "y": 1
+ },
+ {
+ "label": "k16",
+ "x": 6.75,
+ "y": 1
+ },
+ {
+ "label": "k17",
+ "x": 7.75,
+ "y": 1
+ },
+ {
+ "label": "k18",
+ "x": 8.75,
+ "y": 1
+ },
+ {
+ "label": "k19",
+ "x": 9.75,
+ "y": 1
+ },
+ {
+ "label": "k1a",
+ "x": 10.75,
+ "y": 1
+ },
+ {
+ "label": "k1b",
+ "x": 11.75,
+ "y": 1
+ },
+ {
+ "label": "k1c",
+ "x": 12.75,
+ "y": 1,
+ "w": 2.25
+ },
+ {
+ "label": "k20",
+ "x": 0,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "k21",
+ "x": 2.25,
+ "y": 2
+ },
+ {
+ "label": "k22",
+ "x": 3.25,
+ "y": 2
+ },
+ {
+ "label": "k23",
+ "x": 4.25,
+ "y": 2
+ },
+ {
+ "label": "k24",
+ "x": 5.25,
+ "y": 2
+ },
+ {
+ "label": "k25",
+ "x": 6.25,
+ "y": 2
+ },
+ {
+ "label": "k26",
+ "x": 7.25,
+ "y": 2
+ },
+ {
+ "label": "k27",
+ "x": 8.25,
+ "y": 2
+ },
+ {
+ "label": "k28",
+ "x": 9.25,
+ "y": 2
+ },
+ {
+ "label": "k29",
+ "x": 10.25,
+ "y": 2
+ },
+ {
+ "label": "k2b",
+ "x": 11.25,
+ "y": 2
+ },
+ {
+ "label": "k2c",
+ "x": 12.25,
+ "y": 2,
+ "w": 2.75
+ },
+ {
+ "label": "k30",
+ "x": 0,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k31",
+ "x": 1.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k32",
+ "x": 2.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k33",
+ "x": 3.75,
+ "y": 3,
+ "w": 2.25
+ },
+ {
+ "label": "k34",
+ "x": 6,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k36",
+ "x": 7.25,
+ "y": 3,
+ "w": 2.75
+ },
+ {
+ "label": "k39",
+ "x": 10,
+ "y": 3
+ },
+ {
+ "label": "k3a",
+ "x": 11,
+ "y": 3
+ },
+ {
+ "label": "k3b",
+ "x": 12,
+ "y": 3
+ },
+ {
+ "label": "k3c",
+ "x": 13,
+ "y": 3
+ },
+ {
+ "label": "k3d",
+ "x": 14,
+ "y": 3
+ }
+ ]
+ },
+ "LAYOUT_3_split_space_split_rshift_4x_125": {
+ "layout": [
+ {
+ "label": "k00",
+ "x": 0,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k01",
+ "x": 1.5,
+ "y": 0
+ },
+ {
+ "label": "k02",
+ "x": 2.5,
+ "y": 0
+ },
+ {
+ "label": "k03",
+ "x": 3.5,
+ "y": 0
+ },
+ {
+ "label": "k04",
+ "x": 4.5,
+ "y": 0
+ },
+ {
+ "label": "k05",
+ "x": 5.5,
+ "y": 0
+ },
+ {
+ "label": "k06",
+ "x": 6.5,
+ "y": 0
+ },
+ {
+ "label": "k07",
+ "x": 7.5,
+ "y": 0
+ },
+ {
+ "label": "k08",
+ "x": 8.5,
+ "y": 0
+ },
+ {
+ "label": "k09",
+ "x": 9.5,
+ "y": 0
+ },
+ {
+ "label": "k0a",
+ "x": 10.5,
+ "y": 0
+ },
+ {
+ "label": "k0b",
+ "x": 11.5,
+ "y": 0
+ },
+ {
+ "label": "k0c",
+ "x": 12.5,
+ "y": 0
+ },
+ {
+ "label": "k0d",
+ "x": 13.5,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k10",
+ "x": 0,
+ "y": 1,
+ "w": 1.75
+ },
+ {
+ "label": "k11",
+ "x": 1.75,
+ "y": 1
+ },
+ {
+ "label": "k12",
+ "x": 2.75,
+ "y": 1
+ },
+ {
+ "label": "k13",
+ "x": 3.75,
+ "y": 1
+ },
+ {
+ "label": "k14",
+ "x": 4.75,
+ "y": 1
+ },
+ {
+ "label": "k15",
+ "x": 5.75,
+ "y": 1
+ },
+ {
+ "label": "k16",
+ "x": 6.75,
+ "y": 1
+ },
+ {
+ "label": "k17",
+ "x": 7.75,
+ "y": 1
+ },
+ {
+ "label": "k18",
+ "x": 8.75,
+ "y": 1
+ },
+ {
+ "label": "k19",
+ "x": 9.75,
+ "y": 1
+ },
+ {
+ "label": "k1a",
+ "x": 10.75,
+ "y": 1
+ },
+ {
+ "label": "k1b",
+ "x": 11.75,
+ "y": 1
+ },
+ {
+ "label": "k1c",
+ "x": 12.75,
+ "y": 1,
+ "w": 2.25
+ },
+ {
+ "label": "k20",
+ "x": 0,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "k21",
+ "x": 2.25,
+ "y": 2
+ },
+ {
+ "label": "k22",
+ "x": 3.25,
+ "y": 2
+ },
+ {
+ "label": "k23",
+ "x": 4.25,
+ "y": 2
+ },
+ {
+ "label": "k24",
+ "x": 5.25,
+ "y": 2
+ },
+ {
+ "label": "k25",
+ "x": 6.25,
+ "y": 2
+ },
+ {
+ "label": "k26",
+ "x": 7.25,
+ "y": 2
+ },
+ {
+ "label": "k27",
+ "x": 8.25,
+ "y": 2
+ },
+ {
+ "label": "k28",
+ "x": 9.25,
+ "y": 2
+ },
+ {
+ "label": "k29",
+ "x": 10.25,
+ "y": 2
+ },
+ {
+ "label": "k2b",
+ "x": 11.25,
+ "y": 2,
+ "w": 1.75
+ },
+ {
+ "label": "k2c",
+ "x": 13,
+ "y": 2
+ },
+ {
+ "label": "k2d",
+ "x": 14,
+ "y": 2
+ },
+ {
+ "label": "k30",
+ "x": 0,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k31",
+ "x": 1.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k32",
+ "x": 2.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k33",
+ "x": 3.75,
+ "y": 3,
+ "w": 2.25
+ },
+ {
+ "label": "k34",
+ "x": 6,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k36",
+ "x": 7.25,
+ "y": 3,
+ "w": 2.75
+ },
+ {
+ "label": "k39",
+ "x": 10,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k3b",
+ "x": 11.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k3c",
+ "x": 12.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k3d",
+ "x": 13.75,
+ "y": 3,
+ "w": 1.25
+ }
+ ]
+ },
+ "LAYOUT_3_split_space_split_rshift_5x_100": {
+ "layout": [
+ {
+ "label": "k00",
+ "x": 0,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k01",
+ "x": 1.5,
+ "y": 0
+ },
+ {
+ "label": "k02",
+ "x": 2.5,
+ "y": 0
+ },
+ {
+ "label": "k03",
+ "x": 3.5,
+ "y": 0
+ },
+ {
+ "label": "k04",
+ "x": 4.5,
+ "y": 0
+ },
+ {
+ "label": "k05",
+ "x": 5.5,
+ "y": 0
+ },
+ {
+ "label": "k06",
+ "x": 6.5,
+ "y": 0
+ },
+ {
+ "label": "k07",
+ "x": 7.5,
+ "y": 0
+ },
+ {
+ "label": "k08",
+ "x": 8.5,
+ "y": 0
+ },
+ {
+ "label": "k09",
+ "x": 9.5,
+ "y": 0
+ },
+ {
+ "label": "k0a",
+ "x": 10.5,
+ "y": 0
+ },
+ {
+ "label": "k0b",
+ "x": 11.5,
+ "y": 0
+ },
+ {
+ "label": "k0c",
+ "x": 12.5,
+ "y": 0
+ },
+ {
+ "label": "k0d",
+ "x": 13.5,
+ "y": 0,
+ "w": 1.5
+ },
+ {
+ "label": "k10",
+ "x": 0,
+ "y": 1,
+ "w": 1.75
+ },
+ {
+ "label": "k11",
+ "x": 1.75,
+ "y": 1
+ },
+ {
+ "label": "k12",
+ "x": 2.75,
+ "y": 1
+ },
+ {
+ "label": "k13",
+ "x": 3.75,
+ "y": 1
+ },
+ {
+ "label": "k14",
+ "x": 4.75,
+ "y": 1
+ },
+ {
+ "label": "k15",
+ "x": 5.75,
+ "y": 1
+ },
+ {
+ "label": "k16",
+ "x": 6.75,
+ "y": 1
+ },
+ {
+ "label": "k17",
+ "x": 7.75,
+ "y": 1
+ },
+ {
+ "label": "k18",
+ "x": 8.75,
+ "y": 1
+ },
+ {
+ "label": "k19",
+ "x": 9.75,
+ "y": 1
+ },
+ {
+ "label": "k1a",
+ "x": 10.75,
+ "y": 1
+ },
+ {
+ "label": "k1b",
+ "x": 11.75,
+ "y": 1
+ },
+ {
+ "label": "k1c",
+ "x": 12.75,
+ "y": 1,
+ "w": 2.25
+ },
+ {
+ "label": "k20",
+ "x": 0,
+ "y": 2,
+ "w": 2.25
+ },
+ {
+ "label": "k21",
+ "x": 2.25,
+ "y": 2
+ },
+ {
+ "label": "k22",
+ "x": 3.25,
+ "y": 2
+ },
+ {
+ "label": "k23",
+ "x": 4.25,
+ "y": 2
+ },
+ {
+ "label": "k24",
+ "x": 5.25,
+ "y": 2
+ },
+ {
+ "label": "k25",
+ "x": 6.25,
+ "y": 2
+ },
+ {
+ "label": "k26",
+ "x": 7.25,
+ "y": 2
+ },
+ {
+ "label": "k27",
+ "x": 8.25,
+ "y": 2
+ },
+ {
+ "label": "k28",
+ "x": 9.25,
+ "y": 2
+ },
+ {
+ "label": "k29",
+ "x": 10.25,
+ "y": 2
+ },
+ {
+ "label": "k2b",
+ "x": 11.25,
+ "y": 2,
+ "w": 1.75
+ },
+ {
+ "label": "k2c",
+ "x": 13,
+ "y": 2
+ },
+ {
+ "label": "k2d",
+ "x": 14,
+ "y": 2
+ },
+ {
+ "label": "k30",
+ "x": 0,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k31",
+ "x": 1.25,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k32",
+ "x": 2.5,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k33",
+ "x": 3.75,
+ "y": 3,
+ "w": 2.25
+ },
+ {
+ "label": "k34",
+ "x": 6,
+ "y": 3,
+ "w": 1.25
+ },
+ {
+ "label": "k36",
+ "x": 7.25,
+ "y": 3,
+ "w": 2.75
+ },
+ {
+ "label": "k39",
+ "x": 10,
+ "y": 3
+ },
+ {
+ "label": "k3a",
+ "x": 11,