Add "Large Lad" keyboard (#24727)

Co-authored-by: jack <jack@pngu.org>
This commit is contained in:
Hyphen-ated 2025-03-28 01:27:54 -07:00 committed by GitHub
parent ce9713c47d
commit d4120b1def
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 254 additions and 0 deletions

View File

@ -0,0 +1,188 @@
{
"manufacturer": "DIY (open source)",
"keyboard_name": "Large Lad",
"maintainer": "Hyphen-ated",
"bootmagic": {
"matrix": [11, 12]
},
"development_board": "blackpill_f411",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B7", "pin_b": "A0"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"encoder": true
},
"matrix_pins": {
"cols": ["A2", "A1", "C13", "C14", "C15", "A5", "A6", "B0", "B3", "B8", "A15", "A8", "B15"],
"rows": ["B5", "B6", "B4", "B9", "A4", "A3", "A7", "B1", "B10", "B12", "B13", "B14"]
},
"url": "https://github.com/Hyphen-ated/large-lad-keyboard",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "L1", "matrix": [11, 12], "x": 0, "y": 0},
{"label": "L2", "matrix": [11, 11], "x": 1, "y": 0},
{"label": "L3", "matrix": [11, 6], "x": 2, "y": 0},
{"label": "F13", "matrix": [11, 5], "x": 5.25, "y": 0},
{"label": "F14", "matrix": [11, 4], "x": 6.25, "y": 0},
{"label": "F15", "matrix": [11, 3], "x": 7.25, "y": 0},
{"label": "F16", "matrix": [11, 2], "x": 8.25, "y": 0},
{"label": "F17", "matrix": [11, 1], "x": 9.75, "y": 0},
{"label": "F18", "matrix": [11, 0], "x": 10.75, "y": 0},
{"label": "F19", "matrix": [0, 12], "x": 11.75, "y": 0},
{"label": "F20", "matrix": [0, 11], "x": 12.75, "y": 0},
{"label": "F21", "matrix": [0, 10], "x": 14.25, "y": 0},
{"label": "F22", "matrix": [0, 9], "x": 15.25, "y": 0},
{"label": "F23", "matrix": [0, 8], "x": 16.25, "y": 0},
{"label": "F24", "matrix": [0, 7], "x": 17.25, "y": 0},
{"label": "R1", "matrix": [0, 6], "x": 18.5, "y": 0},
{"label": "R2", "matrix": [0, 5], "x": 19.5, "y": 0},
{"label": "R3", "matrix": [0, 4], "x": 20.5, "y": 0},
{"label": "R4", "matrix": [0, 3], "x": 21.75, "y": 0},
{"label": "R5", "matrix": [0, 2], "x": 22.75, "y": 0},
{"label": "R6", "matrix": [0, 1], "x": 23.75, "y": 0},
{"label": "R7", "matrix": [0, 0], "x": 24.75, "y": 0},
{"label": "L4", "matrix": [11, 7], "x": 0, "y": 1},
{"label": "L5", "matrix": [10, 12], "x": 1, "y": 1},
{"label": "L6", "matrix": [10, 11], "x": 2, "y": 1},
{"label": "Esc", "matrix": [10, 6], "x": 3.25, "y": 1},
{"label": "F1", "matrix": [10, 5], "x": 5.25, "y": 1},
{"label": "F2", "matrix": [10, 4], "x": 6.25, "y": 1},
{"label": "F3", "matrix": [10, 3], "x": 7.25, "y": 1},
{"label": "F4", "matrix": [10, 2], "x": 8.25, "y": 1},
{"label": "F5", "matrix": [10, 1], "x": 9.75, "y": 1},
{"label": "F6", "matrix": [10, 0], "x": 10.75, "y": 1},
{"label": "F7", "matrix": [1, 12], "x": 11.75, "y": 1},
{"label": "F8", "matrix": [1, 11], "x": 12.75, "y": 1},
{"label": "F9", "matrix": [1, 10], "x": 14.25, "y": 1},
{"label": "F10", "matrix": [1, 9], "x": 15.25, "y": 1},
{"label": "F11", "matrix": [1, 8], "x": 16.25, "y": 1},
{"label": "F12", "matrix": [1, 7], "x": 17.25, "y": 1},
{"label": "PrtSc", "matrix": [1, 6], "x": 18.5, "y": 1},
{"label": "Scroll Lock", "matrix": [1, 5], "x": 19.5, "y": 1},
{"label": "Pause", "matrix": [1, 4], "x": 20.5, "y": 1},
{"label": "R8", "matrix": [1, 3], "x": 21.75, "y": 1},
{"label": "R9", "matrix": [1, 2], "x": 22.75, "y": 1},
{"label": "R10", "matrix": [1, 1], "x": 23.75, "y": 1},
{"label": "R11", "matrix": [1, 0], "x": 24.75, "y": 1},
{"label": "L7", "matrix": [11, 8], "x": 0, "y": 2.25},
{"label": "L8", "matrix": [10, 7], "x": 1, "y": 2.25},
{"label": "L9", "matrix": [9, 12], "x": 2, "y": 2.25},
{"label": "~", "matrix": [9, 11], "x": 3.25, "y": 2.5},
{"label": "!", "matrix": [9, 6], "x": 4.25, "y": 2.5},
{"label": "@", "matrix": [9, 5], "x": 5.25, "y": 2.5},
{"label": "#", "matrix": [9, 4], "x": 6.25, "y": 2.5},
{"label": "$", "matrix": [9, 3], "x": 7.25, "y": 2.5},
{"label": "%", "matrix": [9, 2], "x": 8.25, "y": 2.5},
{"label": "^", "matrix": [9, 1], "x": 9.25, "y": 2.5},
{"label": "&", "matrix": [9, 0], "x": 10.25, "y": 2.5},
{"label": "*", "matrix": [2, 12], "x": 11.25, "y": 2.5},
{"label": "(", "matrix": [2, 11], "x": 12.25, "y": 2.5},
{"label": ")", "matrix": [2, 10], "x": 13.25, "y": 2.5},
{"label": "_", "matrix": [2, 9], "x": 14.25, "y": 2.5},
{"label": "+", "matrix": [2, 8], "x": 15.25, "y": 2.5},
{"label": "Backspace", "matrix": [2, 7], "x": 16.25, "y": 2.5, "w": 2},
{"label": "Insert", "matrix": [2, 6], "x": 18.5, "y": 2.5},
{"label": "Home", "matrix": [2, 5], "x": 19.5, "y": 2.5},
{"label": "PgUp", "matrix": [2, 4], "x": 20.5, "y": 2.5},
{"label": "Num Lock", "matrix": [2, 3], "x": 21.75, "y": 2.5},
{"label": "/", "matrix": [2, 2], "x": 22.75, "y": 2.5},
{"label": "*", "matrix": [2, 1], "x": 23.75, "y": 2.5},
{"label": "-", "matrix": [2, 0], "x": 24.75, "y": 2.5},
{"label": "L10", "matrix": [10, 8], "x": 0, "y": 3.25},
{"label": "L11", "matrix": [9, 7], "x": 1, "y": 3.25},
{"label": "L12", "matrix": [8, 12], "x": 2, "y": 3.25},
{"label": "Tab", "matrix": [8, 11], "x": 3.25, "y": 3.5, "w": 1.5},
{"label": "Q", "matrix": [8, 6], "x": 4.75, "y": 3.5},
{"label": "W", "matrix": [8, 5], "x": 5.75, "y": 3.5},
{"label": "E", "matrix": [8, 4], "x": 6.75, "y": 3.5},
{"label": "R", "matrix": [8, 3], "x": 7.75, "y": 3.5},
{"label": "T", "matrix": [8, 2], "x": 8.75, "y": 3.5},
{"label": "Y", "matrix": [8, 1], "x": 9.75, "y": 3.5},
{"label": "U", "matrix": [8, 0], "x": 10.75, "y": 3.5},
{"label": "I", "matrix": [3, 12], "x": 11.75, "y": 3.5},
{"label": "O", "matrix": [3, 11], "x": 12.75, "y": 3.5},
{"label": "P", "matrix": [3, 10], "x": 13.75, "y": 3.5},
{"label": "{", "matrix": [3, 9], "x": 14.75, "y": 3.5},
{"label": "}", "matrix": [3, 8], "x": 15.75, "y": 3.5},
{"label": "|", "matrix": [3, 7], "x": 16.75, "y": 3.5, "w": 1.5},
{"label": "Delete", "matrix": [3, 6], "x": 18.5, "y": 3.5},
{"label": "End", "matrix": [3, 5], "x": 19.5, "y": 3.5},
{"label": "PgDn", "matrix": [3, 4], "x": 20.5, "y": 3.5},
{"label": "7", "matrix": [3, 3], "x": 21.75, "y": 3.5},
{"label": "8", "matrix": [3, 2], "x": 22.75, "y": 3.5},
{"label": "9", "matrix": [3, 1], "x": 23.75, "y": 3.5},
{"label": "+", "matrix": [3, 0], "x": 24.75, "y": 3.5, "h": 2},
{"label": "L13", "matrix": [9, 8], "x": 0, "y": 4.25},
{"label": "L14", "matrix": [8, 7], "x": 1, "y": 4.25},
{"label": "L15", "matrix": [7, 12], "x": 2, "y": 4.25},
{"label": "Caps Lock", "matrix": [7, 6], "x": 3.25, "y": 4.5, "w": 1.75},
{"label": "A", "matrix": [7, 5], "x": 5, "y": 4.5},
{"label": "S", "matrix": [7, 4], "x": 6, "y": 4.5},
{"label": "D", "matrix": [7, 3], "x": 7, "y": 4.5},
{"label": "F", "matrix": [7, 2], "x": 8, "y": 4.5},
{"label": "G", "matrix": [7, 1], "x": 9, "y": 4.5},
{"label": "H", "matrix": [7, 0], "x": 10, "y": 4.5},
{"label": "J", "matrix": [4, 12], "x": 11, "y": 4.5},
{"label": "K", "matrix": [4, 11], "x": 12, "y": 4.5},
{"label": "L", "matrix": [4, 10], "x": 13, "y": 4.5},
{"label": ":", "matrix": [4, 9], "x": 14, "y": 4.5},
{"label": "\"", "matrix": [4, 8], "x": 15, "y": 4.5},
{"label": "Enter", "matrix": [4, 7], "x": 16, "y": 4.5, "w": 2.25},
{"label": "4", "matrix": [4, 3], "x": 21.75, "y": 4.5},
{"label": "5", "matrix": [4, 2], "x": 22.75, "y": 4.5},
{"label": "6", "matrix": [4, 1], "x": 23.75, "y": 4.5},
{"label": "L16", "matrix": [8, 8], "x": 0, "y": 5.5},
{"label": "L17", "matrix": [7, 7], "x": 1, "y": 5.5},
{"label": "L18", "matrix": [6, 12], "x": 2, "y": 5.5},
{"label": "Shift", "matrix": [7, 11], "x": 3.25, "y": 5.5, "w": 2.25},
{"label": "Z", "matrix": [6, 5], "x": 5.5, "y": 5.5},
{"label": "X", "matrix": [6, 3], "x": 6.5, "y": 5.5},
{"label": "C", "matrix": [6, 2], "x": 7.5, "y": 5.5},
{"label": "V", "matrix": [6, 1], "x": 8.5, "y": 5.5},
{"label": "B", "matrix": [6, 0], "x": 9.5, "y": 5.5},
{"label": "N", "matrix": [5, 12], "x": 10.5, "y": 5.5},
{"label": "M", "matrix": [5, 11], "x": 11.5, "y": 5.5},
{"label": "<", "matrix": [5, 10], "x": 12.5, "y": 5.5},
{"label": ">", "matrix": [5, 9], "x": 13.5, "y": 5.5},
{"label": "?", "matrix": [5, 8], "x": 14.5, "y": 5.5},
{"label": "Shift", "matrix": [5, 7], "x": 15.5, "y": 5.5, "w": 2.75},
{"label": "Up", "matrix": [4, 5], "x": 19.5, "y": 5.5},
{"label": "1", "matrix": [5, 3], "x": 21.75, "y": 5.5},
{"label": "2", "matrix": [5, 2], "x": 22.75, "y": 5.5},
{"label": "3", "matrix": [5, 1], "x": 23.75, "y": 5.5},
{"label": "Enter", "matrix": [4, 0], "x": 24.75, "y": 5.5, "h": 2},
{"label": "L19", "matrix": [7, 8], "x": 0, "y": 6.5},
{"label": "L20", "matrix": [8, 9], "x": 1, "y": 6.5},
{"label": "L21", "matrix": [7, 9], "x": 2, "y": 6.5},
{"label": "Ctrl", "matrix": [6, 11], "x": 3.25, "y": 6.5, "w": 1.25},
{"label": "Win", "matrix": [6, 6], "x": 4.5, "y": 6.5, "w": 1.25},
{"label": "Alt", "matrix": [6, 4], "x": 5.75, "y": 6.5, "w": 1.25},
{"label": "Space", "matrix": [6, 10], "x": 7, "y": 6.5, "w": 6.25},
{"label": "Alt", "matrix": [6, 9], "x": 13.25, "y": 6.5, "w": 1.25},
{"label": "Win", "matrix": [6, 8], "x": 14.5, "y": 6.5, "w": 1.25},
{"label": "Menu", "matrix": [6, 7], "x": 15.75, "y": 6.5, "w": 1.25},
{"label": "Ctrl", "matrix": [5, 6], "x": 17, "y": 6.5, "w": 1.25},
{"label": "Left", "matrix": [4, 6], "x": 18.5, "y": 6.5},
{"label": "Down", "matrix": [5, 5], "x": 19.5, "y": 6.5},
{"label": "Right", "matrix": [4, 4], "x": 20.5, "y": 6.5},
{"label": "0", "matrix": [5, 4], "x": 21.75, "y": 6.5, "w": 2},
{"label": ".", "matrix": [5, 0], "x": 23.75, "y": 6.5}
]
}
}
}

View File

@ -0,0 +1,42 @@
// Copyright 2024 Hyphen-ated (@Hyphen-ated)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
*
* F13F14F15F16 F17F18F19F20 F21F22F23F24
*
* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10F11F12 PScScrPse
*
*
* ` 1 2 3 4 5 6 7 8 9 0 - = Backsp InsHomPgU Num / * -
*
* Tab Q W E R T Y U I O P [ ] \ DelEndPgD 7 8 9
* +
* Caps A S D F G H J K L ; ' Enter 4 5 6
*
* Shift Z X C V B N M , . / Shift 1 2 3
* Ent
* CtrlGUI Alt Alt GUIMenuCtrl 0 .
*
*/
[0] = LAYOUT(
KC_NO,KC_NO,KC_NO, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO,KC_NO,KC_NO, 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_NO, KC_NO, KC_NO, KC_NO,
KC_NO,KC_NO,KC_NO, 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_NO,KC_NO,KC_NO, 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_NO,KC_NO,KC_NO, 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_P4, KC_P5, KC_P6,
KC_NO,KC_NO,KC_NO, 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_P1, KC_P2, KC_P3, KC_PENT,
KC_NO,KC_NO,KC_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
)
};
// encoder controls volume by default
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
};
#endif

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,23 @@
# large_lad
![large_lad](https://i.imgur.com/CQWAD2X.jpg)
Starts with the standard US 104 key layout and adds more keys on top and on the left. Total of 148 keys, one of which is a rotary encoder. Includes two rows of function keys and a 3x7 grid of keys on the left. No LEDs.
* Keyboard Maintainer: [Hyphen-ated](https://github.com/Hyphen-ated)
* Hardware Supported: Custom open source PCB.
* Hardware Availability: DIY. PCB and plate design files available at https://github.com/Hyphen-ated/large-lad-keyboard
Make example for this keyboard (after setting up your build environment):
make large_lad:default
Flashing example for this keyboard:
make large_lad: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
To enter the bootloader, there's two buttons to press on the blackpill board. Press and hold BOOT, press and release NRST, then release BOOT. Sometimes this randomly fails and you have to try again.