summaryrefslogtreecommitdiff
path: root/keyboards/orthograph
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/orthograph')
-rw-r--r--keyboards/orthograph/config.h22
-rw-r--r--keyboards/orthograph/info.json226
-rw-r--r--keyboards/orthograph/keymaps/default/keymap.json24
-rw-r--r--keyboards/orthograph/orthograph.c128
-rw-r--r--keyboards/orthograph/readme.md25
-rw-r--r--keyboards/orthograph/rules.mk1
6 files changed, 426 insertions, 0 deletions
diff --git a/keyboards/orthograph/config.h b/keyboards/orthograph/config.h
new file mode 100644
index 0000000000..ba357d2dc7
--- /dev/null
+++ b/keyboards/orthograph/config.h
@@ -0,0 +1,22 @@
+/*
+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
+
+#define EE_HANDS // need to flash eeprom with eeprom-lefthand.eep for left, etc
+
+#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_BAND_VAL
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define RGB_MATRIX_LED_COUNT 82
diff --git a/keyboards/orthograph/info.json b/keyboards/orthograph/info.json
new file mode 100644
index 0000000000..9d209953d3
--- /dev/null
+++ b/keyboards/orthograph/info.json
@@ -0,0 +1,226 @@
+{
+ "keyboard_name": "Orthograph",
+ "url": "https://github.com/vladkvit",
+ "maintainer": "vladkvit",
+ "manufacturer": "vladkvit",
+ "build": {
+ "debounce_type": "asym_eager_defer_pk",
+ "lto": true
+ },
+ "debounce": 4,
+ "usb": {
+ "vid": "0x564B",
+ "pid": "0x0602",
+ "device_version": "1.0.0"
+ },
+ "features": {
+ "rgb_matrix": true,
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "development_board": "elite_c",
+ "matrix_pins": {
+ "cols": ["B5", "B4", "D7", "C6", "D4", "D2", "D3", "F4"],
+ "rows": ["F5", "F6", "F7", "B1", "B3", "B2"]
+ },
+ "diode_direction": "COL2ROW",
+ "split": {
+ "enabled": true,
+ "soft_serial_pin": "E6",
+ "transport": {
+ "sync_matrix_state": true
+ },
+ "usb_detect":{
+ "enabled": true
+ }
+ },
+ "rgb_matrix": {
+ "driver": "is31fl3733",
+ "split_count": [36, 46],
+ "layout": [
+ {"matrix":[0, 0], "flags":4, "x":0, "y":0},
+ {"matrix":[0, 1], "flags":4, "x":16, "y":0},
+ {"matrix":[0, 2], "flags":4, "x":32, "y":0},
+ {"matrix":[0, 3], "flags":4, "x":48, "y":0},
+ {"matrix":[0, 4], "flags":4, "x":64, "y":0},
+ {"matrix":[0, 5], "flags":4, "x":80, "y":0},
+ {"matrix":[1, 0], "flags":4, "x":0, "y":12},
+ {"matrix":[1, 1], "flags":4, "x":16, "y":12},
+ {"matrix":[1, 2], "flags":4, "x":32, "y":12},
+ {"matrix":[1, 3], "flags":4, "x":48, "y":12},
+ {"matrix":[1, 4], "flags":4, "x":64, "y":12},
+ {"matrix":[1, 5], "flags":4, "x":80, "y":12},
+ {"matrix":[2, 0], "flags":4, "x":0, "y":24},
+ {"matrix":[2, 1], "flags":4, "x":16, "y":24},
+ {"matrix":[2, 2], "flags":4, "x":32, "y":24},
+ {"matrix":[2, 3], "flags":4, "x":48, "y":24},
+ {"matrix":[2, 4], "flags":4, "x":64, "y":24},
+ {"matrix":[2, 5], "flags":4, "x":80, "y":24},
+ {"matrix":[3, 0], "flags":1, "x":0, "y":36},
+ {"matrix":[3, 1], "flags":4, "x":16, "y":36},
+ {"matrix":[3, 2], "flags":4, "x":32, "y":36},
+ {"matrix":[3, 3], "flags":4, "x":48, "y":36},
+ {"matrix":[3, 4], "flags":4, "x":64, "y":36},
+ {"matrix":[3, 5], "flags":4, "x":80, "y":36},
+ {"matrix":[4, 0], "flags":4, "x":0, "y":48},
+ {"matrix":[4, 1], "flags":4, "x":16, "y":48},
+ {"matrix":[4, 2], "flags":4, "x":32, "y":48},
+ {"matrix":[4, 3], "flags":4, "x":48, "y":48},
+ {"matrix":[4, 4], "flags":4, "x":64, "y":48},
+ {"matrix":[4, 5], "flags":4, "x":80, "y":48},
+ {"matrix":[5, 0], "flags":4, "x":0, "y":60},
+ {"matrix":[5, 1], "flags":4, "x":16, "y":60},
+ {"matrix":[5, 2], "flags":4, "x":32, "y":60},
+ {"matrix":[5, 3], "flags":4, "x":48, "y":60},
+ {"matrix":[5, 4], "flags":4, "x":64, "y":60},
+ {"matrix":[5, 5], "flags":4, "x":80, "y":60},
+ {"matrix":[6, 0], "flags":4, "x":96, "y":0},
+ {"matrix":[6, 1], "flags":4, "x":112, "y":0},
+ {"matrix":[6, 2], "flags":4, "x":128, "y":0},
+ {"matrix":[6, 3], "flags":4, "x":144, "y":0},
+ {"matrix":[6, 4], "flags":4, "x":160, "y":0},
+ {"matrix":[6, 5], "flags":4, "x":176, "y":0},
+ {"matrix":[6, 6], "flags":4, "x":192, "y":0},
+
+
+ {"matrix":[7, 0], "flags":4, "x":96, "y":12},
+ {"matrix":[7, 1], "flags":4, "x":112, "y":12},
+ {"matrix":[7, 2], "flags":4, "x":128, "y":12},
+ {"matrix":[7, 3], "flags":4, "x":144, "y":12},
+ {"matrix":[7, 4], "flags":4, "x":160, "y":12},
+ {"matrix":[7, 5], "flags":4, "x":176, "y":12},
+ {"matrix":[7, 6], "flags":4, "x":192, "y":12},
+ {"matrix":[7, 7], "flags":4, "x":208, "y":12},
+ {"matrix":[8, 0], "flags":4, "x":96, "y":24},
+ {"matrix":[8, 1], "flags":4, "x":112, "y":24},
+ {"matrix":[8, 2], "flags":4, "x":128, "y":24},
+ {"matrix":[8, 3], "flags":4, "x":144, "y":24},
+ {"matrix":[8, 4], "flags":4, "x":160, "y":24},
+ {"matrix":[8, 5], "flags":4, "x":176, "y":24},
+ {"matrix":[8, 6], "flags":4, "x":192, "y":24},
+ {"matrix":[8, 7], "flags":4, "x":208, "y":24},
+ {"matrix":[9, 0], "flags":4, "x":96, "y":36},
+ {"matrix":[9, 1], "flags":4, "x":112, "y":36},
+ {"matrix":[9, 2], "flags":4, "x":128, "y":36},
+ {"matrix":[9, 3], "flags":4, "x":144, "y":36},
+ {"matrix":[9, 4], "flags":4, "x":160, "y":36},
+ {"matrix":[9, 5], "flags":4, "x":176, "y":36},
+ {"matrix":[9, 6], "flags":4, "x":192, "y":36},
+ {"matrix":[10, 0], "flags":4, "x":96, "y":48},
+ {"matrix":[10, 1], "flags":4, "x":112, "y":48},
+ {"matrix":[10, 2], "flags":4, "x":128, "y":48},
+ {"matrix":[10, 3], "flags":4, "x":144, "y":48},
+ {"matrix":[10, 4], "flags":4, "x":160, "y":48},
+ {"matrix":[10, 5], "flags":4, "x":176, "y":48},
+ {"matrix":[10, 6], "flags":4, "x":192, "y":48},
+ {"matrix":[10, 7], "flags":4, "x":208, "y":48},
+ {"matrix":[11, 0], "flags":4, "x":96, "y":60},
+ {"matrix":[11, 1], "flags":4, "x":112, "y":60},
+ {"matrix":[11, 2], "flags":4, "x":128, "y":60},
+ {"matrix":[11, 3], "flags":4, "x":144, "y":60},
+ {"matrix":[11, 4], "flags":4, "x":160, "y":60},
+ {"matrix":[11, 5], "flags":4, "x":176, "y":60},
+ {"matrix":[11, 6], "flags":4, "x":192, "y":60},
+ {"matrix":[11, 7], "flags":4, "x":208, "y":60}
+
+ ],
+ "animations": {
+ "alphas_mods": true,
+ "band_val": true,
+ "cycle_spiral": true
+ }
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "label":"Esc", "x":0.75, "y":0, "w":1.5},
+ {"matrix": [0, 1], "label":"F1", "x":2.25, "y":0},
+ {"matrix": [0, 2], "label":"F2", "x":3.25, "y":0},
+ {"matrix": [0, 3], "label":"F3", "x":4.25, "y":0},
+ {"matrix": [0, 4], "label":"F4", "x":5.25, "y":0},
+ {"matrix": [0, 5], "label":"F5", "x":6.25, "y":0},
+ {"matrix": [6, 0], "label":"F6", "x":12.5, "y":0},
+ {"matrix": [6, 1], "label":"F7", "x":13.5, "y":0},
+ {"matrix": [6, 2], "label":"F8", "x":14.5, "y":0},
+ {"matrix": [6, 3], "label":"F9", "x":15.5, "y":0},
+ {"matrix": [6, 4], "label":"F10", "x":16.5, "y":0},
+ {"matrix": [6, 5], "label":"F11", "x":17.5, "y":0},
+ {"matrix": [6, 6], "label":"F12", "x":18.5, "y":0},
+ {"matrix": [1, 0], "label":"~", "x":0.75, "y":1, "w":1.5},
+ {"matrix": [1, 1], "label":"1", "x":2.25, "y":1},
+ {"matrix": [1, 2], "label":"2", "x":3.25, "y":1},
+ {"matrix": [1, 3], "label":"3", "x":4.25, "y":1},
+ {"matrix": [1, 4], "label":"4", "x":5.25, "y":1},
+ {"matrix": [1, 5], "label":"5", "x":6.25, "y":1},
+ {"matrix": [7, 0], "label":"^", "x":12.5, "y":1},
+ {"matrix": [7, 1], "label":"&", "x":13.5, "y":1},
+ {"matrix": [7, 2], "label":"*", "x":14.5, "y":1},
+ {"matrix": [7, 3], "label":"(", "x":15.5, "y":1},
+ {"matrix": [7, 4], "label":")", "x":16.5, "y":1},
+ {"matrix": [7, 5], "label":"_", "x":17.5, "y":1},
+ {"matrix": [7, 6], "label":"+", "x":18.5, "y":1},
+ {"matrix": [7, 7], "label":"Backspace", "x":19.5, "y":1, "w":1.5},
+ {"matrix": [2, 0], "label":"Tab", "x":0.75, "y":2, "w":1.5},
+ {"matrix": [2, 1], "label":"Q", "x":2.25, "y":2},
+ {"matrix": [2, 2], "label":"W", "x":3.25, "y":2},
+ {"matrix": [2, 3], "label":"E", "x":4.25, "y":2},
+ {"matrix": [2, 4], "label":"R", "x":5.25, "y":2},
+ {"matrix": [2, 5], "label":"T", "x":6.25, "y":2},
+ {"matrix": [8, 0], "label":"Y", "x":12.5, "y":2},
+ {"matrix": [8, 1], "label":"U", "x":13.5, "y":2},
+ {"matrix": [8, 2], "label":"I", "x":14.5, "y":2},
+ {"matrix": [8, 3], "label":"O", "x":15.5, "y":2},
+ {"matrix": [8, 4], "label":"P", "x":16.5, "y":2},
+ {"matrix": [8, 5], "label":"{", "x":17.5, "y":2},
+ {"matrix": [8, 6], "label":"}", "x":18.5, "y":2},
+ {"matrix": [8, 7], "label":"|", "x":19.5, "y":2, "w":1.5},
+ {"matrix": [3, 0], "label":"Caps", "x":0.75, "y":3, "w":1.5},
+ {"matrix": [3, 1], "label":"A", "x":2.25, "y":3},
+ {"matrix": [3, 2], "label":"S", "x":3.25, "y":3},
+ {"matrix": [3, 3], "label":"D", "x":4.25, "y":3},
+ {"matrix": [3, 4], "label":"F", "x":5.25, "y":3},
+ {"matrix": [3, 5], "label":"G", "x":6.25, "y":3},
+ {"matrix": [9, 0], "label":"H", "x":12.5, "y":3},
+ {"matrix": [9, 1], "label":"J", "x":13.5, "y":3},
+ {"matrix": [9, 2], "label":"K", "x":14.5, "y":3},
+ {"matrix": [9, 3], "label":"L", "x":15.5, "y":3},
+ {"matrix": [9, 4], "label":":", "x":16.5, "y":3},
+ {"matrix": [9, 5], "label":"\"", "x":17.5, "y":3},
+ {"matrix": [9, 6], "label":"Enter", "x":18.5, "y":3, "w":2.25},
+ {"matrix": [4, 0], "label":"Shift", "x":0.75, "y":4, "w":1.5},
+ {"matrix": [4, 1], "label":"Z", "x":2.25, "y":4},
+ {"matrix": [4, 2], "label":"X", "x":3.25, "y":4},
+ {"matrix": [4, 3], "label":"C", "x":4.25, "y":4},
+ {"matrix": [4, 4], "label":"V", "x":5.25, "y":4},
+ {"matrix": [4, 5], "label":"B", "x":6.25, "y":4},
+ {"matrix": [10, 0], "label":"N", "x":12.5, "y":4},
+ {"matrix": [10, 1], "label":"M", "x":13.5, "y":4},
+ {"matrix": [10, 2], "label":"<", "x":14.5, "y":4},
+ {"matrix": [10, 3], "label":">", "x":15.5, "y":4},
+ {"matrix": [10, 4], "label":"?", "x":16.5, "y":4},
+ {"matrix": [10, 5], "label":"Shift", "x":17.5, "y":4, "w":1.5},
+ {"matrix": [10, 6], "label":"\u2191", "x":19, "y":4},
+ {"matrix": [10, 7], "label":"mx", "x":20, "y":4},
+ {"matrix": [5, 0], "label":"Ctrl", "x":1, "y":5, "w":1.25},
+ {"matrix": [5, 1], "label":"Win", "x":2.25, "y":5, "w":1.25},
+ {"matrix": [5, 2], "label":"Alt", "x":3.5, "y":5, "w":1.25},
+ {"matrix": [5, 3], "label":"Menu", "x":4.75, "y":5, "w":1.25},
+ {"matrix": [5, 4], "label":"space", "x":0, "y":4.75, "h":2},
+ {"matrix": [5, 5], "label":"fn", "x":1, "y":4.75, "h":2},
+ {"matrix": [11, 0], "label":"space2", "x":-2, "y":4.5, "h":2},
+ {"matrix": [11, 1], "label":"fn", "x":-1.0, "y":4.5, "h":2},
+ {"matrix": [11, 2], "label":"Alt", "x":14.25, "y":5, "w":1.25},
+ {"matrix": [11, 3], "label":"Win", "x":15.5, "y":5, "w":1.25},
+ {"matrix": [11, 4], "label":"Ctrl", "x":16.75, "y":5, "w":1.25},
+ {"matrix": [11, 5], "label":"\u2190", "x":18, "y":5},
+ {"matrix": [11, 6], "label":"\u2193", "x":19, "y":5},
+ {"matrix": [11, 7], "label":"\u2192", "x":20, "y":5}
+
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/orthograph/keymaps/default/keymap.json b/keyboards/orthograph/keymaps/default/keymap.json
new file mode 100644
index 0000000000..fcd2e26edc
--- /dev/null
+++ b/keyboards/orthograph/keymaps/default/keymap.json
@@ -0,0 +1,24 @@
+{
+ "keyboard": "orthograph",
+ "keymap": "default",
+ "layout": "LAYOUT",
+ "layers":
+ [
+ [
+ "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_GRAVE","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_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_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_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_PSCR",
+ "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_APP", "KC_SPC", "MO(1)", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
+ ],
+ [
+ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
+ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
+ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_INS", "KC_HOME", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
+ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_DEL", "KC_END", "KC_PGDN", "KC_TRNS", "KC_TRNS", "KC_TRNS",
+ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
+ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_MODE_FORWARD","KC_TRNS", "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
+ ]
+ ]
+} \ No newline at end of file
diff --git a/keyboards/orthograph/orthograph.c b/keyboards/orthograph/orthograph.c
new file mode 100644
index 0000000000..04d2582937
--- /dev/null
+++ b/keyboards/orthograph/orthograph.c
@@ -0,0 +1,128 @@
+/* Copyright 2023 vladkvit
+ *
+ * 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 "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+{0, A_6, B_6, C_6},
+{0, A_5, B_5, C_5},
+{0, A_4, B_4, C_4},
+{0, A_3, B_3, C_3},
+{0, A_2, B_2, C_2},
+{0, A_1, B_1, C_1},
+
+{0, D_6, E_6, F_6},
+{0, D_5, E_5, F_5},
+{0, D_4, E_4, F_4},
+{0, D_3, E_3, F_3},
+{0, D_2, E_2, F_2},
+{0, D_1, E_1, F_1},
+
+{0, G_6, H_6, I_6},
+{0, G_5, H_5, I_5},
+{0, G_4, H_4, I_4},
+{0, G_3, H_3, I_3},
+{0, G_2, H_2, I_2},
+{0, G_1, H_1, I_1},
+
+{0, A_14, B_14, C_14},
+{0, A_13, B_13, C_13},
+{0, A_12, B_12, C_12},
+{0, A_11, B_11, C_11},
+{0, A_10, B_10, C_10},
+{0, A_9, B_9, C_9},
+
+{0, D_14, E_14, F_14},
+{0, D_13, E_13, F_13},
+{0, D_12, E_12, F_12},
+{0, D_11, E_11, F_11},
+{0, D_10, E_10, F_10},
+{0, D_9, E_9, F_9},
+
+{0, G_14, H_14, I_14},
+{0, G_13, H_13, I_13},
+{0, G_12, H_12, I_12},
+{0, G_11, H_11, I_11},
+{0, G_10, H_10, I_10},
+{0, G_9, H_9, I_9},
+
+//----------------
+
+
+{0, A_6, B_6, C_6},
+{0, A_5, B_5, C_5},
+{0, A_4, B_4, C_4},
+{0, A_3, B_3, C_3},
+{0, A_2, B_2, C_2},
+{0, A_1, B_1, C_1},
+{0, A_16, B_16, C_16},
+// {0, A_15, B_15, C_15},
+
+
+{0, D_6, E_6, F_6},
+{0, D_5, E_5, F_5},
+{0, D_4, E_4, F_4},
+{0, D_3, E_3, F_3},
+{0, D_2, E_2, F_2},
+{0, D_1, E_1, F_1},
+{0, D_16, E_16, F_16},
+{0, D_15, E_15, F_15},
+
+{0, G_6, H_6, I_6},
+{0, G_5, H_5, I_5},
+{0, G_4, H_4, I_4},
+{0, G_3, H_3, I_3},
+{0, G_2, H_2, I_2},
+{0, G_1, H_1, I_1},
+{0, G_16, H_16, I_16},
+{0, G_15, H_15, I_15},
+
+{0, A_14, B_14, C_14},
+{0, A_13, B_13, C_13},
+{0, A_12, B_12, C_12},
+{0, A_11, B_11, C_11},
+{0, A_10, B_10, C_10},
+{0, A_9, B_9, C_9},
+{0, A_8, B_8, C_8},
+// {0, A_7, B_7, C_7},
+
+{0, D_14, E_14, F_14},
+{0, D_13, E_13, F_13},
+{0, D_12, E_12, F_12},
+{0, D_11, E_11, F_11},
+{0, D_10, E_10, F_10},
+{0, D_9, E_9, F_9},
+{0, D_8, E_8, F_8},
+{0, D_7, E_7, F_7},
+
+{0, G_14, H_14, I_14},
+{0, G_13, H_13, I_13},
+{0, G_12, H_12, I_12},
+{0, G_11, H_11, I_11},
+{0, G_10, H_10, I_10},
+{0, G_9, H_9, I_9},
+{0, G_8, H_8, I_8},
+{0, G_7, H_7, I_7}
+};
+
+#endif
diff --git a/keyboards/orthograph/readme.md b/keyboards/orthograph/readme.md
new file mode 100644
index 0000000000..126ab6d1d9
--- /dev/null
+++ b/keyboards/orthograph/readme.md
@@ -0,0 +1,25 @@
+# Orthograph
+
+Split ortho keyboard with RGB backlighting
+
+* Keyboard Maintainer: [vladkvit](https://github.com/vladkvit)
+* Hardware Supported: Two PCBs + thin Pro Micro compatible boards (Elite C has been extensively tested). Boards with castellated holes (Elite C style) are much easier to install. Maximum thickness is around 3-3.5mm, so a stock Pro Micro (4mm) will not work.
+* Hardware Availability: https://github.com/vladkvit/orthograph_keyboard for PCB, https://cad.onshape.com/documents/4f736d64448134c948af475a/w/ccab05fd44a7db98ce27216a/e/49ebfb6b27080b9b45bea74a?renderMode=0&uiState=64dd45dbc62cae486db10048 and https://cad.onshape.com/documents/5ff52821d2cb196f3db3d1e8/w/04b7cb21b748da89c8df31e6/e/486b72e32db97b2dfdf00af8 for the hardware
+
+Make example for this keyboard (after setting up your build environment):
+
+ qmk compile -kb orthograph -km default
+
+Flashing example for this keyboard:
+ qmk flash -kb orthograph -km default
+ Then, flash EEPROM with handedness (left / right) on both sides.
+
+The reset button is on the underside of each half of the keyboard.
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/orthograph/rules.mk b/keyboards/orthograph/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/orthograph/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank