From 0c401c01dcaabc17c5a3b9a01139ea5cc18a127f Mon Sep 17 00:00:00 2001 From: Vlad K Date: Sun, 24 Dec 2023 13:16:05 -0500 Subject: [PATCH] [Keyboard] Add Orthograph (#21770) Co-authored-by: Joel Challis Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre Co-authored-by: Vlad Kvitnevskiy Co-authored-by: Your Name --- keyboards/orthograph/config.h | 22 ++ keyboards/orthograph/info.json | 226 ++++++++++++++++++ .../orthograph/keymaps/default/keymap.json | 24 ++ keyboards/orthograph/orthograph.c | 128 ++++++++++ keyboards/orthograph/readme.md | 25 ++ keyboards/orthograph/rules.mk | 1 + 6 files changed, 426 insertions(+) create mode 100644 keyboards/orthograph/config.h create mode 100644 keyboards/orthograph/info.json create mode 100644 keyboards/orthograph/keymaps/default/keymap.json create mode 100644 keyboards/orthograph/orthograph.c create mode 100644 keyboards/orthograph/readme.md create mode 100644 keyboards/orthograph/rules.mk diff --git a/keyboards/orthograph/config.h b/keyboards/orthograph/config.h new file mode 100644 index 000000000000..ba357d2dc776 --- /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 . +*/ + +#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 000000000000..9d209953d31d --- /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 000000000000..fcd2e26edcdc --- /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 000000000000..43db344bbc36 --- /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 . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_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 000000000000..126ab6d1d992 --- /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 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/orthograph/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank