aboutsummaryrefslogtreecommitdiff
path: root/keyboards/handwired
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/handwired')
-rw-r--r--keyboards/handwired/at101ish/keyboard.json363
-rw-r--r--keyboards/handwired/at101ish/keymaps/default/keymap.c27
-rw-r--r--keyboards/handwired/at101ish/keymaps/osdetect/keymap.c59
-rw-r--r--keyboards/handwired/at101ish/keymaps/osdetect/rules.mk1
-rw-r--r--keyboards/handwired/at101ish/readme.md25
-rw-r--r--keyboards/handwired/dactyl_cc/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_kinesis/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_lightcycle/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/5x7/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_manuform/6x7/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_maximus/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_minidox/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_promicro/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_rah/keyboard.json4
-rw-r--r--keyboards/handwired/dactyl_tracer/keyboard.json4
-rw-r--r--keyboards/handwired/erikpeyronson/erkbd/config.h13
-rw-r--r--keyboards/handwired/erikpeyronson/erkbd/erkbd.c63
-rw-r--r--keyboards/handwired/erikpeyronson/erkbd/keyboard.json107
-rw-r--r--keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c52
-rw-r--r--keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk2
-rw-r--r--keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json24
-rw-r--r--keyboards/handwired/erikpeyronson/erkbd/readme.md28
-rw-r--r--keyboards/handwired/franky36/config.h21
-rw-r--r--keyboards/handwired/franky36/franky36.c68
-rw-r--r--keyboards/handwired/franky36/halconf.h21
-rw-r--r--keyboards/handwired/franky36/keyboard.json72
-rw-r--r--keyboards/handwired/franky36/keymaps/default/keymap.c123
-rw-r--r--keyboards/handwired/franky36/mcuconf.h24
-rw-r--r--keyboards/handwired/franky36/readme.md25
-rw-r--r--keyboards/handwired/jankrp2040dactyl/keyboard.json4
-rw-r--r--keyboards/handwired/onekey/keymaps/via_ci/config.h4
-rw-r--r--keyboards/handwired/onekey/keymaps/via_ci/keymap.c30
-rw-r--r--keyboards/handwired/onekey/keymaps/via_ci/keymap.json7
-rw-r--r--keyboards/handwired/onekey/nucleo_f446re/config.h2
-rw-r--r--keyboards/handwired/onekey/nucleo_f446re/keyboard.json6
-rw-r--r--keyboards/handwired/onekey/nucleo_f446re/readme.md2
-rw-r--r--keyboards/handwired/onekey/teensy_32/rules.mk1
-rw-r--r--keyboards/handwired/onekey/teensy_lc/rules.mk2
-rw-r--r--keyboards/handwired/ortho_brass/keymaps/default/keymap.c4
-rw-r--r--keyboards/handwired/skakunm_dactyl/keyboard.json4
-rw-r--r--keyboards/handwired/splittest/promicro/keyboard.json4
-rw-r--r--keyboards/handwired/splittest/teensy_2/keyboard.json4
-rw-r--r--keyboards/handwired/symmetric70_proto/promicro/info.json4
-rw-r--r--keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json4
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json4
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json4
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json4
59 files changed, 1260 insertions, 40 deletions
diff --git a/keyboards/handwired/at101ish/keyboard.json b/keyboards/handwired/at101ish/keyboard.json
new file mode 100644
index 0000000000..bd629f1605
--- /dev/null
+++ b/keyboards/handwired/at101ish/keyboard.json
@@ -0,0 +1,363 @@
+{
+ "manufacturer": "Henrik O. S\u00f8rensen",
+ "keyboard_name": "AT101ish",
+ "maintainer": "qmk",
+ "bootloader": "halfkay",
+ "diode_direction": "ROW2COL",
+ "features": {
+ "bootmagic": true,
+ "command": true,
+ "console": true,
+ "extrakey": true,
+ "nkro": true
+ },
+ "indicators": {
+ "caps_lock": "D6",
+ "num_lock": "D4",
+ "scroll_lock": "E6"
+ },
+ "matrix_pins": {
+ "cols": ["D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1", "F0"],
+ "rows": ["B1", "B0", "B2", "D5", "B3", "C7", "B7", "C6", "D0", "D3", "D1", "D2"]
+ },
+ "processor": "atmega32u4",
+ "tags": ["at101", "at102", "bigfoot"],
+ "url": "https://github.com/henrikosorensen/keyboard_pcbs/tree/master/at101_pcb",
+ "usb": {
+ "device_version": "1.1.0",
+ "pid": "0x0101",
+ "vid": "0xFEED"
+ },
+ "community_layouts": ["fullsize_ansi", "fullsize_iso"],
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
+ {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
+ {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
+ {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
+ {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0},
+ {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0},
+ {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0},
+ {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0},
+ {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0},
+ {"label": "F10", "matrix": [1, 0], "x": 12, "y": 0},
+ {"label": "F11", "matrix": [1, 1], "x": 13, "y": 0},
+ {"label": "F12", "matrix": [1, 2], "x": 14, "y": 0},
+ {"label": "PrtSc", "matrix": [1, 3], "x": 15.25, "y": 0},
+ {"label": "Scroll Lock", "matrix": [1, 4], "x": 16.25, "y": 0},
+ {"label": "Pause", "matrix": [1, 5], "x": 17.25, "y": 0},
+ {"label": "\u00ac", "matrix": [2, 0], "x": 0, "y": 1.5},
+ {"label": "!", "matrix": [2, 1], "x": 1, "y": 1.5},
+ {"label": "\"", "matrix": [2, 2], "x": 2, "y": 1.5},
+ {"label": "\u00a3", "matrix": [2, 3], "x": 3, "y": 1.5},
+ {"label": "$", "matrix": [2, 4], "x": 4, "y": 1.5},
+ {"label": "%", "matrix": [2, 5], "x": 5, "y": 1.5},
+ {"label": "^", "matrix": [2, 6], "x": 6, "y": 1.5},
+ {"label": "&", "matrix": [2, 7], "x": 7, "y": 1.5},
+ {"label": "*", "matrix": [2, 8], "x": 8, "y": 1.5},
+ {"label": "(", "matrix": [2, 9], "x": 9, "y": 1.5},
+ {"label": ")", "matrix": [3, 0], "x": 10, "y": 1.5},
+ {"label": "_", "matrix": [3, 1], "x": 11, "y": 1.5},
+ {"label": "+", "matrix": [3, 2], "x": 12, "y": 1.5},
+ {"label": "Backspace", "matrix": [3, 3], "x": 13, "y": 1.5, "w": 2},
+ {"label": "Insert", "matrix": [3, 4], "x": 15.25, "y": 1.5},
+ {"label": "Home", "matrix": [3, 5], "x": 16.25, "y": 1.5},
+ {"label": "PgUp", "matrix": [3, 6], "x": 17.25, "y": 1.5},
+ {"label": "Num Lock", "matrix": [3, 7], "x": 18.5, "y": 1.5},
+ {"label": "/", "matrix": [3, 8], "x": 19.5, "y": 1.5},
+ {"label": "*", "matrix": [3, 9], "x": 20.5, "y": 1.5},
+ {"label": "-", "matrix": [1, 9], "x": 21.5, "y": 1.5},
+ {"label": "Tab", "matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"label": "Q", "matrix": [4, 1], "x": 1.5, "y": 2.5},
+ {"label": "W", "matrix": [4, 2], "x": 2.5, "y": 2.5},
+ {"label": "E", "matrix": [4, 3], "x": 3.5, "y": 2.5},
+ {"label": "R", "matrix": [4, 4], "x": 4.5, "y": 2.5},
+ {"label": "T", "matrix": [4, 5], "x": 5.5, "y": 2.5},
+ {"label": "Y", "matrix": [4, 6], "x": 6.5, "y": 2.5},
+ {"label": "U", "matrix": [4, 7], "x": 7.5, "y": 2.5},
+ {"label": "I", "matrix": [4, 8], "x": 8.5, "y": 2.5},
+ {"label": "O", "matrix": [4, 9], "x": 9.5, "y": 2.5},
+ {"label": "P", "matrix": [5, 0], "x": 10.5, "y": 2.5},
+ {"label": "{", "matrix": [5, 1], "x": 11.5, "y": 2.5},
+ {"label": "}", "matrix": [5, 2], "x": 12.5, "y": 2.5},
+ {"label": "|", "matrix": [5, 3], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"label": "Delete", "matrix": [5, 4], "x": 15.25, "y": 2.5},
+ {"label": "End", "matrix": [5, 5], "x": 16.25, "y": 2.5},
+ {"label": "PgDn", "matrix": [5, 6], "x": 17.25, "y": 2.5},
+ {"label": "7", "matrix": [5, 7], "x": 18.5, "y": 2.5},
+ {"label": "8", "matrix": [5, 8], "x": 19.5, "y": 2.5},
+ {"label": "9", "matrix": [5, 9], "x": 20.5, "y": 2.5},
+ {"label": "+", "matrix": [1, 8], "x": 21.5, "y": 2.5},
+ {"label": "Caps Lock", "matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"label": "A", "matrix": [6, 1], "x": 1.75, "y": 3.5},
+ {"label": "S", "matrix": [6, 2], "x": 2.75, "y": 3.5},
+ {"label": "D", "matrix": [6, 3], "x": 3.75, "y": 3.5},
+ {"label": "F", "matrix": [6, 4], "x": 4.75, "y": 3.5},
+ {"label": "G", "matrix": [6, 5], "x": 5.75, "y": 3.5},
+ {"label": "H", "matrix": [6, 6], "x": 6.75, "y": 3.5},
+ {"label": "J", "matrix": [6, 7], "x": 7.75, "y": 3.5},
+ {"label": "K", "matrix": [6, 8], "x": 8.75, "y": 3.5},
+ {"label": "L", "matrix": [6, 9], "x": 9.75, "y": 3.5},
+ {"label": ":", "matrix": [7, 0], "x": 10.75, "y": 3.5},
+ {"label": "@", "matrix": [7, 1], "x": 11.75, "y": 3.5},
+ {"label": "~", "matrix": [7, 2], "x": 12.75, "y": 3.5},
+ {"label": "Enter", "matrix": [7, 3], "x": 13.75, "y": 3.5, "w": 1.25},
+ {"label": "4", "matrix": [7, 6], "x": 18.5, "y": 3.5},
+ {"label": "5", "matrix": [7, 7], "x": 19.5, "y": 3.5},
+ {"label": "6", "matrix": [7, 8], "x": 20.5, "y": 3.5},
+ {"label": "=", "matrix": [7, 9], "x": 21.5, "y": 3.5},
+ {"label": "Shift", "matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"label": "|", "matrix": [8, 1], "x": 1.25, "y": 4.5},
+ {"label": "Z", "matrix": [8, 2], "x": 2.25, "y": 4.5},
+ {"label": "X", "matrix": [8, 3], "x": 3.25, "y": 4.5},
+ {"label": "C", "matrix": [8, 4], "x": 4.25, "y": 4.5},
+ {"label": "V", "matrix": [8, 5], "x": 5.25, "y": 4.5},
+ {"label": "B", "matrix": [8, 6], "x": 6.25, "y": 4.5},
+ {"label": "N", "matrix": [8, 7], "x": 7.25, "y": 4.5},
+ {"label": "M", "matrix": [8, 8], "x": 8.25, "y": 4.5},
+ {"label": "<", "matrix": [8, 9], "x": 9.25, "y": 4.5},
+ {"label": ">", "matrix": [9, 0], "x": 10.25, "y": 4.5},
+ {"label": "?", "matrix": [9, 1], "x": 11.25, "y": 4.5},
+ {"label": "Shift", "matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 1.75},
+ {"label": "|", "matrix": [9, 3], "x": 14, "y": 4.5},
+ {"label": "\u2191", "matrix": [9, 4], "x": 16.25, "y": 4.5},
+ {"label": "1", "matrix": [9, 6], "x": 18.5, "y": 4.5},
+ {"label": "2", "matrix": [9, 7], "x": 19.5, "y": 4.5},
+ {"label": "3", "matrix": [9, 8], "x": 20.5, "y": 4.5},
+ {"label": "Enter", "matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2},
+ {"label": "Ctrl", "matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"label": "Win", "matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"label": "Alt", "matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"label": " ", "matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"label": "AltGr ", "matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25},
+ {"label": "Win", "matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"label": "Menu", "matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"label": "Ctrl", "matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"label": "\u2190", "matrix": [11, 4], "x": 15.25, "y": 5.5},
+ {"label": "\u2193", "matrix": [11, 5], "x": 16.25, "y": 5.5},
+ {"label": "\u2192", "matrix": [11, 6], "x": 17.25, "y": 5.5},
+ {"label": "0", "matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2},
+ {"label": ".", "matrix": [11, 8], "x": 20.5, "y": 5.5}
+ ]
+ },
+ "LAYOUT_fullsize_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [0, 2], "x": 3, "y": 0},
+ {"matrix": [0, 3], "x": 4, "y": 0},
+ {"matrix": [0, 4], "x": 5, "y": 0},
+ {"matrix": [0, 5], "x": 6.5, "y": 0},
+ {"matrix": [0, 6], "x": 7.5, "y": 0},
+ {"matrix": [0, 7], "x": 8.5, "y": 0},
+ {"matrix": [0, 8], "x": 9.5, "y": 0},
+ {"matrix": [0, 9], "x": 11, "y": 0},
+ {"matrix": [1, 0], "x": 12, "y": 0},
+ {"matrix": [1, 1], "x": 13, "y": 0},
+ {"matrix": [1, 2], "x": 14, "y": 0},
+ {"matrix": [1, 3], "x": 15.25, "y": 0},
+ {"matrix": [1, 4], "x": 16.25, "y": 0},
+ {"matrix": [1, 5], "x": 17.25, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1.5},
+ {"matrix": [2, 1], "x": 1, "y": 1.5},
+ {"matrix": [2, 2], "x": 2, "y": 1.5},
+ {"matrix": [2, 3], "x": 3, "y": 1.5},
+ {"matrix": [2, 4], "x": 4, "y": 1.5},
+ {"matrix": [2, 5], "x": 5, "y": 1.5},
+ {"matrix": [2, 6], "x": 6, "y": 1.5},
+ {"matrix": [2, 7], "x": 7, "y": 1.5},
+ {"matrix": [2, 8], "x": 8, "y": 1.5},
+ {"matrix": [2, 9], "x": 9, "y": 1.5},
+ {"matrix": [3, 0], "x": 10, "y": 1.5},
+ {"matrix": [3, 1], "x": 11, "y": 1.5},
+ {"matrix": [3, 2], "x": 12, "y": 1.5},
+ {"matrix": [3, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [3, 4], "x": 15.25, "y": 1.5},
+ {"matrix": [3, 5], "x": 16.25, "y": 1.5},
+ {"matrix": [3, 6], "x": 17.25, "y": 1.5},
+ {"matrix": [3, 7], "x": 18.5, "y": 1.5},
+ {"matrix": [3, 8], "x": 19.5, "y": 1.5},
+ {"matrix": [3, 9], "x": 20.5, "y": 1.5},
+ {"matrix": [1, 9], "x": 21.5, "y": 1.5},
+ {"matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [4, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [4, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [4, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [4, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [4, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [4, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [4, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [4, 9], "x": 9.5, "y": 2.5},
+ {"matrix": [5, 0], "x": 10.5, "y": 2.5},
+ {"matrix": [5, 1], "x": 11.5, "y": 2.5},
+ {"matrix": [5, 2], "x": 12.5, "y": 2.5},
+ {"matrix": [5, 3], "x": 13.5, "y": 2.5, "w": 1.5},
+ {"matrix": [5, 4], "x": 15.25, "y": 2.5},
+ {"matrix": [5, 5], "x": 16.25, "y": 2.5},
+ {"matrix": [5, 6], "x": 17.25, "y": 2.5},
+ {"matrix": [5, 7], "x": 18.5, "y": 2.5},
+ {"matrix": [5, 8], "x": 19.5, "y": 2.5},
+ {"matrix": [5, 9], "x": 20.5, "y": 2.5},
+ {"matrix": [1, 8], "x": 21.5, "y": 2.5, "h": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [6, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [6, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [6, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [6, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [6, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [6, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [6, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [6, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [6, 9], "x": 9.75, "y": 3.5},
+ {"matrix": [7, 0], "x": 10.75, "y": 3.5},
+ {"matrix": [7, 1], "x": 11.75, "y": 3.5},
+ {"matrix": [7, 3], "x": 12.75, "y": 3.5, "w": 2.25},
+ {"matrix": [7, 6], "x": 18.5, "y": 3.5},
+ {"matrix": [7, 7], "x": 19.5, "y": 3.5},
+ {"matrix": [7, 8], "x": 20.5, "y": 3.5},
+ {"matrix": [8, 0], "x": 0, "y": 4.5, "w": 2.25},
+ {"matrix": [8, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [8, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [8, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [8, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [8, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [8, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [8, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [8, 9], "x": 9.25, "y": 4.5},
+ {"matrix": [9, 0], "x": 10.25, "y": 4.5},
+ {"matrix": [9, 1], "x": 11.25, "y": 4.5},
+ {"matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 4], "x": 16.25, "y": 4.5},
+ {"matrix": [9, 6], "x": 18.5, "y": 4.5},
+ {"matrix": [9, 7], "x": 19.5, "y": 4.5},
+ {"matrix": [9, 8], "x": 20.5, "y": 4.5},
+ {"matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2},
+ {"matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 4], "x": 15.25, "y": 5.5},
+ {"matrix": [11, 5], "x": 16.25, "y": 5.5},
+ {"matrix": [11, 6], "x": 17.25, "y": 5.5},
+ {"matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2},
+ {"matrix": [11, 8], "x": 20.5, "y": 5.5}
+ ]
+ },
+ "LAYOUT_fullsize_iso": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [0, 2], "x": 3, "y": 0},
+ {"matrix": [0, 3], "x": 4, "y": 0},
+ {"matrix": [0, 4], "x": 5, "y": 0},
+ {"matrix": [0, 5], "x": 6.5, "y": 0},
+ {"matrix": [0, 6], "x": 7.5, "y": 0},
+ {"matrix": [0, 7], "x": 8.5, "y": 0},
+ {"matrix": [0, 8], "x": 9.5, "y": 0},
+ {"matrix": [0, 9], "x": 11, "y": 0},
+ {"matrix": [1, 0], "x": 12, "y": 0},
+ {"matrix": [1, 1], "x": 13, "y": 0},
+ {"matrix": [1, 2], "x": 14, "y": 0},
+ {"matrix": [1, 3], "x": 15.25, "y": 0},
+ {"matrix": [1, 4], "x": 16.25, "y": 0},
+ {"matrix": [1, 5], "x": 17.25, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1.5},
+ {"matrix": [2, 1], "x": 1, "y": 1.5},
+ {"matrix": [2, 2], "x": 2, "y": 1.5},
+ {"matrix": [2, 3], "x": 3, "y": 1.5},
+ {"matrix": [2, 4], "x": 4, "y": 1.5},
+ {"matrix": [2, 5], "x": 5, "y": 1.5},
+ {"matrix": [2, 6], "x": 6, "y": 1.5},
+ {"matrix": [2, 7], "x": 7, "y": 1.5},
+ {"matrix": [2, 8], "x": 8, "y": 1.5},
+ {"matrix": [2, 9], "x": 9, "y": 1.5},
+ {"matrix": [3, 0], "x": 10, "y": 1.5},
+ {"matrix": [3, 1], "x": 11, "y": 1.5},
+ {"matrix": [3, 2], "x": 12, "y": 1.5},
+ {"matrix": [3, 3], "x": 13, "y": 1.5, "w": 2},
+ {"matrix": [3, 4], "x": 15.25, "y": 1.5},
+ {"matrix": [3, 5], "x": 16.25, "y": 1.5},
+ {"matrix": [3, 6], "x": 17.25, "y": 1.5},
+ {"matrix": [3, 7], "x": 18.5, "y": 1.5},
+ {"matrix": [3, 8], "x": 19.5, "y": 1.5},
+ {"matrix": [3, 9], "x": 20.5, "y": 1.5},
+ {"matrix": [1, 9], "x": 21.5, "y": 1.5},
+ {"matrix": [4, 0], "x": 0, "y": 2.5, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 2.5},
+ {"matrix": [4, 2], "x": 2.5, "y": 2.5},
+ {"matrix": [4, 3], "x": 3.5, "y": 2.5},
+ {"matrix": [4, 4], "x": 4.5, "y": 2.5},
+ {"matrix": [4, 5], "x": 5.5, "y": 2.5},
+ {"matrix": [4, 6], "x": 6.5, "y": 2.5},
+ {"matrix": [4, 7], "x": 7.5, "y": 2.5},
+ {"matrix": [4, 8], "x": 8.5, "y": 2.5},
+ {"matrix": [4, 9], "x": 9.5, "y": 2.5},
+ {"matrix": [5, 0], "x": 10.5, "y": 2.5},
+ {"matrix": [5, 1], "x": 11.5, "y": 2.5},
+ {"matrix": [5, 2], "x": 12.5, "y": 2.5},
+ {"matrix": [5, 4], "x": 15.25, "y": 2.5},
+ {"matrix": [5, 5], "x": 16.25, "y": 2.5},
+ {"matrix": [5, 6], "x": 17.25, "y": 2.5},
+ {"matrix": [5, 7], "x": 18.5, "y": 2.5},
+ {"matrix": [5, 8], "x": 19.5, "y": 2.5},
+ {"matrix": [5, 9], "x": 20.5, "y": 2.5},
+ {"matrix": [1, 8], "x": 21.5, "y": 2.5, "h": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3.5, "w": 1.75},
+ {"matrix": [6, 1], "x": 1.75, "y": 3.5},
+ {"matrix": [6, 2], "x": 2.75, "y": 3.5},
+ {"matrix": [6, 3], "x": 3.75, "y": 3.5},
+ {"matrix": [6, 4], "x": 4.75, "y": 3.5},
+ {"matrix": [6, 5], "x": 5.75, "y": 3.5},
+ {"matrix": [6, 6], "x": 6.75, "y": 3.5},
+ {"matrix": [6, 7], "x": 7.75, "y": 3.5},
+ {"matrix": [6, 8], "x": 8.75, "y": 3.5},
+ {"matrix": [6, 9], "x": 9.75, "y": 3.5},
+ {"matrix": [7, 0], "x": 10.75, "y": 3.5},
+ {"matrix": [7, 1], "x": 11.75, "y": 3.5},
+ {"matrix": [7, 2], "x": 12.75, "y": 3.5},
+ {"matrix": [7, 3], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2},
+ {"matrix": [7, 6], "x": 18.5, "y": 3.5},
+ {"matrix": [7, 7], "x": 19.5, "y": 3.5},
+ {"matrix": [7, 8], "x": 20.5, "y": 3.5},
+ {"matrix": [8, 0], "x": 0, "y": 4.5, "w": 1.25},
+ {"matrix": [8, 1], "x": 1.25, "y": 4.5},
+ {"matrix": [8, 2], "x": 2.25, "y": 4.5},
+ {"matrix": [8, 3], "x": 3.25, "y": 4.5},
+ {"matrix": [8, 4], "x": 4.25, "y": 4.5},
+ {"matrix": [8, 5], "x": 5.25, "y": 4.5},
+ {"matrix": [8, 6], "x": 6.25, "y": 4.5},
+ {"matrix": [8, 7], "x": 7.25, "y": 4.5},
+ {"matrix": [8, 8], "x": 8.25, "y": 4.5},
+ {"matrix": [8, 9], "x": 9.25, "y": 4.5},
+ {"matrix": [9, 0], "x": 10.25, "y": 4.5},
+ {"matrix": [9, 1], "x": 11.25, "y": 4.5},
+ {"matrix": [9, 2], "x": 12.25, "y": 4.5, "w": 2.75},
+ {"matrix": [9, 4], "x": 16.25, "y": 4.5},
+ {"matrix": [9, 6], "x": 18.5, "y": 4.5},
+ {"matrix": [9, 7], "x": 19.5, "y": 4.5},
+ {"matrix": [9, 8], "x": 20.5, "y": 4.5},
+ {"matrix": [9, 9], "x": 21.5, "y": 4.5, "h": 2},
+ {"matrix": [10, 0], "x": 0, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 1], "x": 1.25, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 2], "x": 2.5, "y": 5.5, "w": 1.25},
+ {"matrix": [10, 7], "x": 3.75, "y": 5.5, "w": 6.25},
+ {"matrix": [11, 0], "x": 10, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 1], "x": 11.25, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 2], "x": 12.5, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 3], "x": 13.75, "y": 5.5, "w": 1.25},
+ {"matrix": [11, 4], "x": 15.25, "y": 5.5},
+ {"matrix": [11, 5], "x": 16.25, "y": 5.5},
+ {"matrix": [11, 6], "x": 17.25, "y": 5.5},
+ {"matrix": [11, 7], "x": 18.5, "y": 5.5, "w": 2},
+ {"matrix": [11, 8], "x": 20.5, "y": 5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/at101ish/keymaps/default/keymap.c b/keyboards/handwired/at101ish/keymaps/default/keymap.c
new file mode 100644
index 0000000000..2311a24437
--- /dev/null
+++ b/keyboards/handwired/at101ish/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+/* Copyright 2025 Henrik Otte Sørensen (@henrikottesorensen)
+ *
+ * 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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ 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_SCRL, KC_PAUS,
+ 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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,
+ 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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT)
+};
diff --git a/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c b/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c
new file mode 100644
index 0000000000..89b748a61b
--- /dev/null
+++ b/keyboards/handwired/at101ish/keymaps/osdetect/keymap.c
@@ -0,0 +1,59 @@
+/* Copyright 2025 Henrik Otte Sørensen (@henrikottesorensen)
+ *
+ * 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 QMK_KEYBOARD_H
+
+enum LAYER {
+ _PC = 0,
+ _MAC,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_PC] = LAYOUT_all(
+ 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_SCRL, KC_PAUS,
+ 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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,
+ 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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
+ [_MAC] = LAYOUT_all(
+ KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_WSCH, KC_LPAD, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS,
+ KC_NUBS, 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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,
+ 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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
+ KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_BSLS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, KC_RGUI, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
+ [_FN] = LAYOUT_all(
+ _______, 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_VOLU, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DF(_PC), _______, _______, _______, _______, KC_MUTE, KC_VOLD, _______, _______, _______, _______,
+ _______, _______, _______, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, QK_BOOT, _______, DF(_MAC),_______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_APP, KC_MPRV, KC_MSTP, KC_MNXT, _______, _______)
+};
+
+bool process_detected_host_os_user(os_variant_t detected_os) {
+ /* If Apple, swap to macOS layer. */
+ if (detected_os == OS_MACOS || detected_os == OS_IOS) {
+ set_single_default_layer(_MAC);
+ }
+ else /* Else use PC layer */ {
+ set_single_default_layer(_PC);
+ }
+
+ return true;
+}
diff --git a/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk b/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk
new file mode 100644
index 0000000000..64ac3dcb16
--- /dev/null
+++ b/keyboards/handwired/at101ish/keymaps/osdetect/rules.mk
@@ -0,0 +1 @@
+OS_DETECTION_ENABLE = yes
diff --git a/keyboards/handwired/at101ish/readme.md b/keyboards/handwired/at101ish/readme.md
new file mode 100644
index 0000000000..2bdfbb9367
--- /dev/null
+++ b/keyboards/handwired/at101ish/readme.md
@@ -0,0 +1,25 @@
+# AT101(-ish)
+
+A replacement PCB for Dell AT101 family. (In theory) supports AT101, AT101W, AT102, AT102W, maybe other Bigfoot platform boards.
+
+Keyboard Maintainer: QMK Community and Henrik O. Sørensen
+Hardware Supported: AT101(ish) PCB
+Hardware Availability: https://github.com/henrikosorensen/keyboard_pcbs/tree/master/at101_pcb
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/at101ish:default
+
+Flashing example for this keyboard:
+
+ make handwired/at101ish:default:flash
+
+See 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).
+
+## Bootloader
+
+Enter the bootloader in 2 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the programming button on the teensy 2.0 PCB.
+
diff --git a/keyboards/handwired/dactyl_cc/keyboard.json b/keyboards/handwired/dactyl_cc/keyboard.json
index e607bfad1a..f4097b0487 100644
--- a/keyboards/handwired/dactyl_cc/keyboard.json
+++ b/keyboards/handwired/dactyl_cc/keyboard.json
@@ -23,7 +23,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"development_board": "promicro",
"layouts": {
diff --git a/keyboards/handwired/dactyl_kinesis/keyboard.json b/keyboards/handwired/dactyl_kinesis/keyboard.json
index ee68a2c515..26993fc974 100644
--- a/keyboards/handwired/dactyl_kinesis/keyboard.json
+++ b/keyboards/handwired/dactyl_kinesis/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"development_board": "promicro",
"layouts": {
diff --git a/keyboards/handwired/dactyl_lightcycle/keyboard.json b/keyboards/handwired/dactyl_lightcycle/keyboard.json
index 1b5f2dd39a..6e56b18f6f 100644
--- a/keyboards/handwired/dactyl_lightcycle/keyboard.json
+++ b/keyboards/handwired/dactyl_lightcycle/keyboard.json
@@ -26,7 +26,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"development_board": "promicro",
"community_layouts": ["split_3x6_3", "split_3x5_3"],
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json
index e0a1b531a5..ce4b6c648b 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/4x5/keyboard.json
@@ -35,7 +35,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json
index 7efc4718ad..134793cac8 100644
--- a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"development_board": "promicro",
"layouts": {
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json
index d589c532a8..0d8af5eed1 100644
--- a/keyboards/handwired/dactyl_manuform/4x6/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/4x6/keyboard.json
@@ -35,7 +35,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json
index c0c24a8966..1846f2a661 100644
--- a/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/4x6_4_3/keyboard.json
@@ -32,7 +32,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"development_board": "promicro",
"layouts": {
diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json
index 47ad7aa920..ab916b0353 100644
--- a/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/4x6_5/keyboard.json
@@ -35,7 +35,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json
index 353b148126..1bcba1b648 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/5x6/keyboard.json
@@ -35,7 +35,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json
index 620ffdec06..7a0cff5e6c 100644
--- a/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/5x6_2_5/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0",
+ "serial": {
+ "pin": "D0"
+ },
"bootmagic": {
"matrix": [6, 5]
}
diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json
index fc7676aa4b..0694447ee9 100644
--- a/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/5x6_5/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0",
+ "serial": {
+ "pin": "D0"
+ },
"bootmagic": {
"matrix": [6, 5]
}
diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json
index 974f1b8bc3..ae73995d49 100644
--- a/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/5x6_6/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D3"
+ "serial": {
+ "pin": "D3"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json
index 5b6bdfb86e..7d51a06c7c 100644
--- a/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/5x6_68/keyboard.json
@@ -25,7 +25,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
diff --git a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json
index d40a45dfa7..cf5f579057 100644
--- a/keyboards/handwired/dactyl_manuform/5x7/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/5x7/keyboard.json
@@ -35,7 +35,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json
index 213a3c29f5..44ae441270 100644
--- a/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/6x6/promicro/keyboard.json
@@ -6,7 +6,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"rgblight": {
"led_count": 12
diff --git a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json
index 98e96c9639..a011a2cc3b 100644
--- a/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/6x6_4/keyboard.json
@@ -35,7 +35,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json
index 153b6c75c4..bb016647da 100644
--- a/keyboards/handwired/dactyl_manuform/6x7/keyboard.json
+++ b/keyboards/handwired/dactyl_manuform/6x7/keyboard.json
@@ -32,7 +32,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"rgblight": {
"led_count": 12
diff --git a/keyboards/handwired/dactyl_maximus/keyboard.json b/keyboards/handwired/dactyl_maximus/keyboard.json
index 081fab571a..57e91cc3f4 100644
--- a/keyboards/handwired/dactyl_maximus/keyboard.json
+++ b/keyboards/handwired/dactyl_maximus/keyboard.json
@@ -26,7 +26,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D1"
+ "serial": {
+ "pin": "D1"
+ }
},
"development_board": "promicro",
"layouts": {
diff --git a/keyboards/handwired/dactyl_minidox/keyboard.json b/keyboards/handwired/dactyl_minidox/keyboard.json
index 5bd5c5c05a..b488bac4b0 100644
--- a/keyboards/handwired/dactyl_minidox/keyboard.json
+++ b/keyboards/handwired/dactyl_minidox/keyboard.json
@@ -67,7 +67,9 @@
"diode_direction": "ROW2COL",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"development_board": "promicro",
"community_layouts": ["split_3x5_3"],
diff --git a/keyboards/handwired/dactyl_promicro/keyboard.json b/keyboards/handwired/dactyl_promicro/keyboard.json
index 824ffe7e7e..df82505d94 100644
--- a/keyboards/handwired/dactyl_promicro/keyboard.json
+++ b/keyboards/handwired/dactyl_promicro/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"rgblight": {
"led_count": 12
diff --git a/keyboards/handwired/dactyl_rah/keyboard.json b/keyboards/handwired/dactyl_rah/keyboard.json
index 3bc5dc0854..903aafc973 100644
--- a/keyboards/handwired/dactyl_rah/keyboard.json
+++ b/keyboards/handwired/dactyl_rah/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/dactyl_tracer/keyboard.json b/keyboards/handwired/dactyl_tracer/keyboard.json
index 29e5990666..92a8a2c76b 100644
--- a/keyboards/handwired/dactyl_tracer/keyboard.json
+++ b/keyboards/handwired/dactyl_tracer/keyboard.json
@@ -24,7 +24,9 @@
"development_board": "promicro",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"layouts": {
"LAYOUT" : {
diff --git a/keyboards/handwired/erikpeyronson/erkbd/config.h b/keyboards/handwired/erikpeyronson/erkbd/config.h
new file mode 100644
index 0000000000..acbafbfaa7
--- /dev/null
+++ b/keyboards/handwired/erikpeyronson/erkbd/config.h
@@ -0,0 +1,13 @@
+// Copyright 2025 Erik Peyronson @erikpeyronson
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#pragma once
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
+
+#define I2C_DRIVER I2CD1
+#define OLED_IC OLED_IC_SH1106
+#define OLED_COLUMN_OFFSET 2
+
+#define OLED_DISPLAY_128X64
diff --git a/keyboards/handwired/erikpeyronson/erkbd/erkbd.c b/keyboards/handwired/erikpeyronson/erkbd/erkbd.c
new file mode 100644
index 0000000000..af236df93c
--- /dev/null
+++ b/keyboards/handwired/erikpeyronson/erkbd/erkbd.c
@@ -0,0 +1,63 @@
+// Copyright 2025 Erik Peyronson @erikpeyronson
+// SPDX-License-Identifier: GPL-3.0-or-later
+#include QMK_KEYBOARD_H
+
+static void oled_render_logo(void) {
+ // clang-format off
+ static const char PROGMEM qmk_logo[] = {
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
+ };
+ // clang-format on
+
+ oled_write_P(qmk_logo, false);
+}
+
+static void render_layer(void) {
+ oled_write_P(PSTR("Layer: "), false);
+ oled_write_ln(get_u8_str(get_highest_layer(layer_state), ' '), false);
+}
+
+static void render_locks(void) {
+ led_t led_config = host_keyboard_led_state();
+ oled_write_P(PSTR("Caps "), led_config.caps_lock);
+ oled_write_P(PSTR("Scrl "), led_config.scroll_lock);
+ oled_write_P(PSTR("Num "), led_config.num_lock);
+#ifdef CAPS_WORD_ENABLE
+ oled_write_P(PSTR("Word "), is_caps_word_on());
+#endif
+ oled_advance_page(true);
+}
+
+static void render_mods(void) {
+ uint8_t mod_state = get_mods();
+ oled_write_P("Ctrl ", mod_state & MOD_MASK_CTRL);
+ oled_write_P("Shift ", mod_state & MOD_MASK_SHIFT);
+ oled_write_P("Alt ", mod_state & MOD_MASK_ALT);
+ oled_write_P("Gui", mod_state & MOD_MASK_GUI);
+ oled_advance_page(true);
+}
+
+static void render_delimeter(void) {
+ oled_write_ln_P(PSTR("------------------"), false);
+}
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ if (is_keyboard_left()) {
+ oled_render_logo();
+ } else {
+ render_delimeter();
+ render_locks();
+ render_delimeter();
+ render_mods();
+ render_delimeter();
+ render_layer();
+ render_delimeter();
+ }
+
+ return false;
+}
diff --git a/keyboards/handwired/erikpeyronson/erkbd/keyboard.json b/keyboards/handwired/erikpeyronson/erkbd/keyboard.json
new file mode 100644
index 0000000000..d3ef5147f4
--- /dev/null
+++ b/keyboards/handwired/erikpeyronson/erkbd/keyboard.json
@@ -0,0 +1,107 @@
+{
+ "manufacturer": "Erik Peyronson",
+ "keyboard_name": "erkbd",
+ "maintainer": "erikpeyronson",
+ "bootloader": "rp2040",
+ "bootloader_instructions": "Double tap the reset button on the controller board if accessable. If not hold down bootmagic key while powering on. Left side: row 0 column 0. (The tab key on regular keyboard). Right side: row 5 column 4 (the Backspace key on regular keyboard)",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP7", "pin_b": "GP8"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "oled": true
+ },
+ "matrix_pins": {
+ "cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13"],
+ "rows": ["GP4", "GP5", "GP6", "GP7"]
+ },
+ "processor": "RP2040",
+ "split": {
+ "bootmagic": {
+ "matrix": [4, 5]
+ },
+ "enabled": true,
+ "encoder": {
+ "right": {
+ "rotary": [
+ {"pin_a": "GP7", "pin_b": "GP8"}
+ ]
+ }
+ },
+ "handedness": {
+ "pin": "GP1"
+ },
+ "matrix_pins": {
+ "right": {
+ "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14"],
+ "rows": ["GP28", "GP27", "GP26", "GP15"]
+ }
+ },
+ "serial": {
+ "driver": "vendor",
+ "pin": "GP0"
+ }
+ },
+ "url": "https://github.com/erikpeyronson/erkbd",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x1234",
+ "vid": "0xFEED"
+ },
+ "layouts": {
+ "LAYOUT_split_3x6_5": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.4},
+ {"matrix": [0, 1], "x": 1, "y": 0.3},
+ {"matrix": [0, 2], "x": 2, "y": 0.1},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0.1},
+ {"matrix": [0, 5], "x": 5, "y": 0.2},
+ {"matrix": [4, 0], "x": 9, "y": 0.2},
+ {"matrix": [4, 1], "x": 10, "y": 0.1},
+ {"matrix": [4, 2], "x": 11, "y": 0},
+ {"matrix": [4, 3], "x": 12, "y": 0.1},
+ {"matrix": [4, 4], "x": 13, "y": 0.3},
+ {"matrix": [4, 5], "x": 14, "y": 0.4},
+ {"matrix": [1, 0], "x": 0, "y": 1.4},
+ {"matrix": [1, 1], "x": 1, "y": 1.3},
+ {"matrix": [1, 2], "x": 2, "y": 1.1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1.1},
+ {"matrix": [1, 5], "x": 5, "y": 1.2},
+ {"matrix": [5, 0], "x": 9, "y": 1.2},
+ {"matrix": [5, 1], "x": 10, "y": 1.1},
+ {"matrix": [5, 2], "x": 11, "y": 1},
+ {"matrix": [5, 3], "x": 12, "y": 1.1},
+ {"matrix": [5, 4], "x": 13, "y": 1.3},
+ {"matrix": [5, 5], "x": 14, "y": 1.4},
+ {"matrix": [2, 0], "x": 0, "y": 2.4},
+ {"matrix": [2, 1], "x": 1, "y": 2.3},
+ {"matrix": [2, 2], "x": 2, "y": 2.1},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2.1},
+ {"matrix": [2, 5], "x": 5, "y": 2.2},
+ {"matrix": [6, 0], "x": 9, "y": 2.2},
+ {"matrix": [6, 1], "x": 10, "y": 2.1},
+ {"matrix": [6, 2], "x": 11, "y": 2},
+ {"matrix": [6, 3], "x": 12, "y": 2.1},
+ {"matrix": [6, 4], "x": 13, "y": 2.3},
+ {"matrix": [6, 5], "x": 14, "y": 2.4},
+ {"matrix": [3, 1], "x": 3, "y": 3.4},
+ {"matrix": [3, 2], "x": 4, "y": 3.4},
+ {"matrix": [3, 3], "x": 5, "y": 3.5},
+ {"matrix": [3, 4], "x": 6, "y": 3.7},
+ {"matrix": [3, 5], "x": 6, "y": 2.7},
+ {"matrix": [7, 0], "x": 8, "y": 2.7},
+ {"matrix": [7, 1], "x": 8, "y": 3.7},
+ {"matrix": [7, 2], "x": 9, "y": 3.5},
+ {"matrix": [7, 3], "x": 10, "y": 3.4},
+ {"matrix": [7, 4], "x": 11, "y": 3.4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c
new file mode 100644
index 0000000000..8884702c81
--- /dev/null
+++ b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/keymap.c
@@ -0,0 +1,52 @@
+// Copyright 2025 Qmk, Erik Peyronson @erikpeyronson
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+// NOTE: This keymap is for debugging purposes to have firmware to test the matrix when building the keyboard. If you intend to build this keyboard
+// you should copy this to your fork or userspace repository and create your own.
+
+#include QMK_KEYBOARD_H
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_split_3x6_5(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ 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_LBRC, KC_RBRC, KC_LGUI, KC_BSPC, KC_SPC, KC_SPC, KC_ENT, KC_RALT, KC_LPRN, KC_RPRN
+ )
+};
+// clang-format on
+
+void keyboard_post_init_user(void) {
+#ifdef CONSOLE_ENABLE
+ debug_enable = true;
+ debug_matrix = true;
+#endif
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ // If console is enabled, it will print the matrix position and status of each key pressed
+#ifdef CONSOLE_ENABLE
+ uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %u, time: %5u, int: %u, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
+#endif
+ return true;
+}
+
+// This function prints which half the keyboard considers itself to be which is
+// useful for verify if the handedness pin and display is correctly set up when building
+#ifdef OLED_ENABLE
+bool oled_task_user(void) {
+ if (is_keyboard_left()) {
+ oled_write_P(PSTR("left"), false);
+ } else {
+ oled_write_P(PSTR("right"), false);
+ }
+ return false;
+}
+#endif
+
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = {ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT)}
+};
+#endif
diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk
new file mode 100644
index 0000000000..14094ea22c
--- /dev/null
+++ b/keyboards/handwired/erikpeyronson/erkbd/keymaps/debug/rules.mk
@@ -0,0 +1,2 @@
+ENCODER_MAP_ENABLE = yes
+CONSOLE_ENABLE = yes
diff --git a/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json b/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json
new file mode 100644
index 0000000000..0b733d9fb6
--- /dev/null
+++ b/keyboards/handwired/erikpeyronson/erkbd/keymaps/default/keymap.json
@@ -0,0 +1,24 @@
+{
+ "keyboard": "handwired/erikpeyronson/erkbd",
+ "keymap": "default",
+ "layout": "LAYOUT_split_3x6_5",
+ "layers": [
+ [
+ "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
+ "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT",
+ "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_LBRC", "KC_RBRC", "KC_LGUI", "KC_BSPC", "KC_SPC", "KC_SPC", "KC_ENT", "KC_RALT", "KC_LPRN", "KC_RPRN"
+ ]
+ ],
+ "config": {
+ "features": {
+ "encoder_map": true
+ }
+ },
+ "encoders": [
+ [
+ { "ccw": "KC_UP", "cw": "KC_DOWN" },
+ { "ccw": "KC_RIGHT", "cw": "KC_LEFT" }
+ ]
+ ]
+}
diff --git a/keyboards/handwired/erikpeyronson/erkbd/readme.md b/keyboards/handwired/erikpeyronson/erkbd/readme.md
new file mode 100644
index 0000000000..3f4fe0175e
--- /dev/null
+++ b/keyboards/handwired/erikpeyronson/erkbd/readme.md
@@ -0,0 +1,28 @@
+# handwired/erikpeyronson/erkbd
+
+![Erkbd](https://i.imgur.com/VViiXIN.jpeg)
+
+3D printed, handwired 44 key split keyboard featuring two encoders, two 1.3" 128x64 oled displays using the waveshare rp2040zero development board.
+
+* Keyboard Maintainer: [Erik Peyronson](https://github.com/erikpeyronson)
+* Hardware Supported: See keyboard repository on [github](https://github.com/erikpeyronson/erkbd)
+* Hardware Availability: See keyboard repository on [github](https://github.com/erikpeyronson/erkbd)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/erikpeyronson/erkbd:default
+
+Flashing example for this keyboard:
+
+ Enter bootloader, drag and drop .uft2 file on the removable storage
+
+See 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).
+
+## Bootloader
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: For left half hold down the key at (0,0) in the matrix (correspons with the tab key) and plug in the keyboard.
+For left half half the key is (4,5) (corresponds with the backspace key)
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+Enter the bootloader in 3 ways:
diff --git a/keyboards/handwired/franky36/config.h b/keyboards/handwired/franky36/config.h
new file mode 100644
index 0000000000..3749ff5785
--- /dev/null
+++ b/keyboards/handwired/franky36/config.h
@@ -0,0 +1,21 @@
+/* Copyright 2024-2025 Grigory Avdyushin
+ *
+ * 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 I2C_DRIVER I2CD0
+#define I2C1_SDA_PIN GP0
+#define I2C1_SCL_PIN GP1
diff --git a/keyboards/handwired/franky36/franky36.c b/keyboards/handwired/franky36/franky36.c
new file mode 100644
index 0000000000..50e4d38b52
--- /dev/null
+++ b/keyboards/handwired/franky36/franky36.c
@@ -0,0 +1,68 @@
+/* Copyright 2024-2025 Grigory Avdyushin
+ *
+ * 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 QMK_KEYBOARD_H
+
+#ifdef OLED_ENABLE
+
+static void render_logo(void) {
+ static const char PROGMEM qmk_logo[] = {
+ 0x80, 0x81, 0x82, 0x83, 0x84,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0x00, 0x0A, 0x0A
+ };
+
+ oled_write_P(qmk_logo, false);
+}
+
+static void render_mod_status(uint8_t modifiers) {
+ oled_write_P(PSTR("MODS:"), false);
+ oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
+ oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL));
+ oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT));
+ oled_write_ln_P(PSTR("G"), (modifiers & MOD_MASK_GUI));
+ oled_write_ln_P(PSTR(" "), false);
+}
+
+static void render_layer_state(void) {
+ oled_write_ln_P(PSTR(" "), false);
+ oled_write_P("BASE ", layer_state_is(0));
+ oled_write_P("LOWER", layer_state_is(1));
+ oled_write_P("RAISE", layer_state_is(2));
+ oled_write_P("NAV ", layer_state_is(3));
+ oled_write_ln_P(PSTR(" "), false);
+}
+
+static void render_capsword_state(bool on) {
+ oled_write_ln_P("CAPSW", on);
+}
+
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ return OLED_ROTATION_270;
+}
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ render_logo();
+ render_layer_state();
+ render_mod_status(get_mods() | get_oneshot_mods());
+ render_capsword_state(is_caps_word_on());
+ return false;
+}
+
+ #endif
diff --git a/keyboards/handwired/franky36/halconf.h b/keyboards/handwired/franky36/halconf.h
new file mode 100644
index 0000000000..3c594066b6
--- /dev/null
+++ b/keyboards/handwired/franky36/halconf.h
@@ -0,0 +1,21 @@
+/* Copyright 2024-2025 Grigory Avdyushin
+ *
+ * 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 HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/handwired/franky36/keyboard.json b/keyboards/handwired/franky36/keyboard.json
new file mode 100644
index 0000000000..038fc1eb67
--- /dev/null
+++ b/keyboards/handwired/franky36/keyboard.json
@@ -0,0 +1,72 @@
+{
+ "manufacturer": "Grigory Avdyushin",
+ "keyboard_name": "franky36",
+ "maintainer": "Grigory Avdyushin",
+ "bootloader": "rp2040",
+ "caps_word": {
+ "both_shifts_turns_on": true
+ },
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "caps_word": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "oled": true
+ },
+ "matrix_pins": {
+ "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP26", "GP27", "GP28"],
+ "rows": ["GP5", "GP4", "GP3", "GP2"]
+ },
+ "processor": "RP2040",
+ "url": "https://github.com/avdyushin/franky36",
+ "usb": {
+ "device_version": "0.2.0",
+ "pid": "0x0001",
+ "vid": "0xFEED"
+ },
+ "community_layouts": ["split_3x5_3"],
+ "layouts": {
+ "LAYOUT_split_3x5_3": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2},
+ {"matrix": [2, 5], "x": 5, "y": 2},
+ {"matrix": [2, 6], "x": 6, "y": 2},
+ {"matrix": [2, 7], "x": 7, "y": 2},
+ {"matrix": [2, 8], "x": 8, "y": 2},
+ {"matrix": [2, 9], "x": 9, "y": 2},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3},
+ {"matrix": [3, 4], "x": 4, "y": 3},
+ {"matrix": [3, 5], "x": 5, "y": 3},
+ {"matrix": [3, 6], "x": 6, "y": 3},
+ {"matrix": [3, 7], "x": 7, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/franky36/keymaps/default/keymap.c b/keyboards/handwired/franky36/keymaps/default/keymap.c
new file mode 100644
index 0000000000..1b281124f9
--- /dev/null
+++ b/keyboards/handwired/franky36/keymaps/default/keymap.c
@@ -0,0 +1,123 @@
+/* Copyright 2024-2025 Grigory Avdyushin
+ *
+ * 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 QMK_KEYBOARD_H
+
+enum my_layers {
+ _BASE = 0,
+ _LOWER,
+ _RAISE,
+ _NAV,
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define NAV MO(_NAV)
+
+#define OSM_LSFT OSM(MOD_LSFT) // One Shot Right Shift
+
+#define KC_SFT_Z SFT_T(KC_Z) // Left Shift when held, Z when tapped
+#define KC_SFT_SL RSFT_T(KC_SLSH) // Right Shift when held, / when tapped
+
+#define KC_SFT_BSLS RSFT_T(KC_BSLS) // Right Shift when held, \ when tapped
+
+#define KC_LWR_SPC LT(_LOWER, KC_SPC) // Lower layer when held, Space when tapped
+#define KC_RSE_BSPC LT(_RAISE, KC_BSPC) // Raise layer when held, Backspace when tapped
+#define KC_NAV_A LT(_NAV,KC_A) // Navigation layer when held, A when tapped
+
+#define KC_CMD_TAB CMD_T(KC_TAB) // Left Command when held, Tab when tapped
+#define KC_CMD_ENT RCMD_T(KC_ENT) // Right Command when held, Enter when tapped
+
+#define KC_CTL_ESC CTL_T(KC_ESC) // Left Control when held, Escape when tapped
+#define KC_OPT_OSM_SFT ROPT_T(OSM_LSFT) // Right Option when held, One Shot Shift when tapped
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ * │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ;:│
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │⇧/Z│ X │ C │ V │ B │ │ N │ M │ ,<│ .>│⇧/?│
+ * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ * ┌───┬───┬───┐ ┌───┬───┬───┐
+ * │CTL│CMD│SPC│ │ENT│CMD│OPT│
+ * └───┴───┴───┘ └───┴───┴───┘
+ */
+ [_BASE] = LAYOUT_split_3x5_3(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_NAV_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFT_SL,
+ KC_CTL_ESC, KC_CMD_TAB, KC_LWR_SPC, KC_RSE_BSPC, KC_CMD_ENT, KC_ROPT
+ ),
+
+ /*
+ * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ * │ 1!│ 2@│ 3#│ 4$│ 5%│ │ 6^│ 7&│ 8*│ 9(│ 0)│
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │ `~│ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ '"│
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │ ⇧ │ │ │ │ │ │ -_│ =+│ [{│ ]}│ \|│
+ * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ * ┌───┬───┬───┐ ┌───┬───┬───┐
+ * │ │ │ │ │ │ │ │
+ * └───┴───┴───┘ └───┴───┴───┘
+ */
+ [_LOWER] = LAYOUT_split_3x5_3(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_GRV, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_QUOT,
+ KC_LSFT, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_SFT_BSLS,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ /*
+ * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ * │ F1│ F2│ F3│ F4│ F5│ │ F6│ F7│ F8│ F9│F10│
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │
+ * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ * ┌───┬───┬───┐ ┌───┬───┬───┐
+ * │ │ │ │ │ │ │ │
+ * └───┴───┴───┘ └───┴───┴───┘
+ */
+ [_RAISE] = LAYOUT_split_3x5_3(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ /*
+ * ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┐
+ * │ │ │ │ │ │ │HOM│ │ │END│ │
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │ ← │ ↓ │ ↑ │ → │ │
+ * ├───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │PUP│ │ │PDN│ │
+ * └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘
+ * ┌───┬───┬───┐ ┌───┬───┬───┐
+ * │ │ │ │ │ │ │ │
+ * └───┴───┴───┘ └───┴───┴───┘
+ */
+ [_NAV] = LAYOUT_split_3x5_3(
+ _______, _______, _______, _______, _______, KC_HOME, _______, _______, KC_END, _______,
+ _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______,
+ _______, _______, _______, _______, _______, KC_PGUP, _______, _______, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/handwired/franky36/mcuconf.h b/keyboards/handwired/franky36/mcuconf.h
new file mode 100644
index 0000000000..8d47159177
--- /dev/null
+++ b/keyboards/handwired/franky36/mcuconf.h
@@ -0,0 +1,24 @@
+/* Copyright 2024-2025 Grigory Avdyushin
+ *
+ * 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_next <mcuconf.h>
+
+#undef RP_I2C_USE_I2C0
+#define RP_I2C_USE_I2C0 TRUE
+#undef RP_I2C_USE_I2C1
+#define RP_I2C_USE_I2C1 FALSE
diff --git a/keyboards/handwired/franky36/readme.md b/keyboards/handwired/franky36/readme.md
new file mode 100644
index 0000000000..62d1bfd5c3
--- /dev/null
+++ b/keyboards/handwired/franky36/readme.md
@@ -0,0 +1,25 @@
+# franky36
+
+Franky36 is 36 key compact handwired split keyboard that uses single RP2040-Zero controller.
+
+* Keyboard Maintainer: [Grigory Avdyushin](https://github.com/avdyushin)
+* Hardware Supported: RP2040-Zero
+* Hardware Availability: Handwired [franky36](https://github.com/avdyushin/franky36)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make franky36:default
+
+Flashing example for this keyboard:
+
+ make franky36:default:flash
+
+See 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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Hold down the reset button on the controller and plug in the keyboard
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/handwired/jankrp2040dactyl/keyboard.json b/keyboards/handwired/jankrp2040dactyl/keyboard.json
index 0d155a70bd..485da14b66 100644
--- a/keyboards/handwired/jankrp2040dactyl/keyboard.json
+++ b/keyboards/handwired/jankrp2040dactyl/keyboard.json
@@ -6,9 +6,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "GP0",
"serial": {
- "driver": "vendor"
+ "driver": "vendor",
+ "pin": "GP0"
}
},
diff --git a/keyboards/handwired/onekey/keymaps/via_ci/config.h b/keyboards/handwired/onekey/keymaps/via_ci/config.h
new file mode 100644
index 0000000000..ec6f1e1ec0
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/via_ci/config.h
@@ -0,0 +1,4 @@
+// Copyright 2025 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+#define TRANSIENT_EEPROM_SIZE 160
diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.c b/keyboards/handwired/onekey/keymaps/via_ci/keymap.c
new file mode 100644
index 0000000000..8261fc6329
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/via_ci/keymap.c
@@ -0,0 +1,30 @@
+// Copyright 2025 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include QMK_KEYBOARD_H
+
+enum custom_keycodes {
+ KC_HELLO = SAFE_RANGE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ LAYOUT_ortho_1x1(KC_HELLO)
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_HELLO:
+ if (record->event.pressed) {
+ send_string_P("Hello world!");
+ }
+ return false;
+ }
+ return true;
+}
+
+void keyboard_post_init_user(void) {
+ // Customise these values to desired behaviour
+ debug_enable=true;
+ debug_matrix=true;
+ //debug_keyboard=true;
+ //debug_mouse=true;
+}
diff --git a/keyboards/handwired/onekey/keymaps/via_ci/keymap.json b/keyboards/handwired/onekey/keymaps/via_ci/keymap.json
new file mode 100644
index 0000000000..edb78b5742
--- /dev/null
+++ b/keyboards/handwired/onekey/keymaps/via_ci/keymap.json
@@ -0,0 +1,7 @@
+{
+ "config": {
+ "features": {
+ "via": true
+ }
+ }
+}
diff --git a/keyboards/handwired/onekey/nucleo_f446re/config.h b/keyboards/handwired/onekey/nucleo_f446re/config.h
index 4401623e85..cebb609117 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/config.h
+++ b/keyboards/handwired/onekey/nucleo_f446re/config.h
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define ADC_PIN A0
+#define ADC_PIN A5
#define SOLENOID_PINS { B12, B13, B14, B15 }
#define SOLENOID_PINS_ACTIVE_STATE { high, high, low }
diff --git a/keyboards/handwired/onekey/nucleo_f446re/keyboard.json b/keyboards/handwired/onekey/nucleo_f446re/keyboard.json
index 26de66e198..7c51ca053b 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/keyboard.json
+++ b/keyboards/handwired/onekey/nucleo_f446re/keyboard.json
@@ -3,17 +3,17 @@
"processor": "STM32F446",
"bootloader": "stm32-dfu",
"matrix_pins": {
- "cols": ["A2"],
+ "cols": ["A0"],
"rows": ["A1"]
},
"backlight": {
"pin": "B8"
},
"ws2812": {
- "pin": "A0"
+ "pin": "A4"
},
"apa102": {
- "data_pin": "A0",
+ "data_pin": "A4",
"clock_pin": "B13"
}
}
diff --git a/keyboards/handwired/onekey/nucleo_f446re/readme.md b/keyboards/handwired/onekey/nucleo_f446re/readme.md
index c7d13cb973..b0645b65fe 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/readme.md
+++ b/keyboards/handwired/onekey/nucleo_f446re/readme.md
@@ -1,5 +1,5 @@
# STM32 Nucleo-L432 onekey
-To trigger keypress, short together pins *A1* and *A2*.
+To trigger keypress, short together pins *A0* and *A1*. Note that the pin numbering is relative to the MCU, so that A0 and A1 refer to PA0 and PA1 on the MCU (which are also labelled A0 and A1 on the board, but this isn't true for the other PAx pins).
You'll also need to connect `VIN`, `GND`, USB `D+` to `PA12`/`D2`, and USB `D-` to `PA11`/`D10`.
diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk
new file mode 100644
index 0000000000..d5978ba6f5
--- /dev/null
+++ b/keyboards/handwired/onekey/teensy_32/rules.mk
@@ -0,0 +1 @@
+EEPROM_DRIVER = transient
diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk
index abd2f7fce9..d1a53e95d7 100644
--- a/keyboards/handwired/onekey/teensy_lc/rules.mk
+++ b/keyboards/handwired/onekey/teensy_lc/rules.mk
@@ -1,2 +1,2 @@
USE_CHIBIOS_CONTRIB = yes
-
+EEPROM_DRIVER = transient
diff --git a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c
index fc43167211..47f731c2c9 100644
--- a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c
+++ b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c
@@ -182,9 +182,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!eeconfig_is_enabled()) {
eeconfig_init();
}
- keymap_config.raw = eeconfig_read_keymap();
+ eeconfig_read_keymap(&keymap_config);
keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
+ eeconfig_update_keymap(&keymap_config);
}
return false;
break;
diff --git a/keyboards/handwired/skakunm_dactyl/keyboard.json b/keyboards/handwired/skakunm_dactyl/keyboard.json
index cc6f70b482..5d87f23f7b 100644
--- a/keyboards/handwired/skakunm_dactyl/keyboard.json
+++ b/keyboards/handwired/skakunm_dactyl/keyboard.json
@@ -29,7 +29,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/handwired/splittest/promicro/keyboard.json b/keyboards/handwired/splittest/promicro/keyboard.json
index 8aca1c3de7..93f09a47ca 100644
--- a/keyboards/handwired/splittest/promicro/keyboard.json
+++ b/keyboards/handwired/splittest/promicro/keyboard.json
@@ -8,7 +8,9 @@
"handedness": {
"pin": "F6"
},
- "soft_serial_pin": "D1"
+ "serial": {
+ "pin": "D1"
+ }
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/handwired/splittest/teensy_2/keyboard.json b/keyboards/handwired/splittest/teensy_2/keyboard.json
index c10b20a173..78d6c5f9a3 100644
--- a/keyboards/handwired/splittest/teensy_2/keyboard.json
+++ b/keyboards/handwired/splittest/teensy_2/keyboard.json
@@ -8,7 +8,9 @@
"handedness": {
"pin": "F0"
},
- "soft_serial_pin": "D1"
+ "serial": {
+ "pin": "D1"
+ }
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/handwired/symmetric70_proto/promicro/info.json b/keyboards/handwired/symmetric70_proto/promicro/info.json
index f143f518eb..43ecb4c1c0 100644
--- a/keyboards/handwired/symmetric70_proto/promicro/info.json
+++ b/keyboards/handwired/symmetric70_proto/promicro/info.json
@@ -12,7 +12,9 @@
}
},
"split": {
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina"
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json
index e5730a4586..37633e5a56 100644
--- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json
+++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json
@@ -22,7 +22,9 @@
"handedness": {
"pin": "A6"
},
- "soft_serial_pin": "D3",
+ "serial": {
+ "pin": "D3"
+ },
"bootmagic": {
"matrix": [4, 5]
}
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json
index df810f2881..bd4c41e17b 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/keyboard.json
@@ -6,7 +6,9 @@
},
"diode_direction": "COL2ROW",
"split": {
- "soft_serial_pin": "D0",
+ "serial": {
+ "pin": "D0"
+ },
"matrix_pins": {
"right": {
"cols": ["D6", "D7", "B4", "D3", "C6", "C7"],
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json
index e6c0e42bde..739aad07ba 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/keyboard.json
@@ -11,7 +11,9 @@
]
},
"split": {
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json
index a131ac085b..5a091996b6 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/keyboard.json
@@ -11,7 +11,9 @@
]
},
"split": {
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"ws2812": {
"pin": "E7"