forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add keyboards/converter/thinkpad_t6x/rpi_pico (qmk#23696)
- Loading branch information
Showing
3 changed files
with
175 additions
and
0 deletions.
There are no files selected for viewing
131 changes: 131 additions & 0 deletions
131
keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
{ | ||
"manufacturer": "strobo5", | ||
"keyboard_name": "converter/thinkpad_t6x/rpi_pico", | ||
"maintainer": "strobo5", | ||
"board": "GENERIC_RP_RP2040", | ||
"bootloader": "rp2040", | ||
"diode_direction": "COL2ROW", | ||
"features": { | ||
"bootmagic": true, | ||
"extrakey": true, | ||
"mousekey": true | ||
}, | ||
"matrix_pins": { | ||
"cols": ["GP7", "GP9", "GP11", "GP13", "GP17", "GP16", "GP14", "GP12", "GP15", "GP8", "GP10", "GP6", "GP4", "GP2", "GP5", "GP3"], | ||
"rows": ["GP20", "GP26", "GP22", "GP21", "GP18", "GP19", "GP27", "GP28"] | ||
}, | ||
"processor": "RP2040", | ||
"ps2": { | ||
"clock_pin": "GP1", | ||
"data_pin": "GP0", | ||
"driver": "vendor", | ||
"enabled": true, | ||
"mouse_enabled": true | ||
}, | ||
"url": "https://github.com/strobo5/T61_PiPico_Scanner", | ||
"usb": { | ||
"device_version": "1.0.0", | ||
"pid": "0x0000", | ||
"vid": "0xFEED" | ||
}, | ||
"layouts": { | ||
"LAYOUT_iso": { | ||
"layout": [ | ||
{"label": "Esc", "matrix": [5, 0], "x": 0, "y": 0, "w": 0.9, "h": 0.75}, | ||
{"label": "Mute", "matrix": [4, 10], "x": 0.9, "y": 0, "w": 0.75, "h": 0.5}, | ||
{"label": "Vol -", "matrix": [3, 10], "x": 1.65, "y": 0, "w": 0.75, "h": 0.5}, | ||
{"label": "Vol +", "matrix": [2, 10], "x": 2.4, "y": 0, "w": 0.75, "h": 0.5}, | ||
{"label": "ThinkVantage", "matrix": [5, 10], "x": 3.5, "y": 0, "w": 1.25, "h": 0.5}, | ||
{"label": "PrtSc", "matrix": [1, 13], "x": 8.9, "y": 0, "w": 0.9, "h": 0.65}, | ||
{"label": "ScrLk", "matrix": [2, 13], "x": 9.8, "y": 0, "w": 0.9, "h": 0.65}, | ||
{"label": "Pause", "matrix": [6, 12], "x": 10.7, "y": 0, "w": 0.9, "h": 0.65}, | ||
{"label": "Insert", "matrix": [0, 9], "x": 12, "y": 0, "w": 0.9, "h": 0.65}, | ||
{"label": "Home", "matrix": [0, 12], "x": 12.9, "y": 0, "w": 0.9, "h": 0.65}, | ||
{"label": "PgUp", "matrix": [0, 11], "x": 13.8, "y": 0, "w": 0.9, "h": 0.65}, | ||
{"label": "F1", "matrix": [0, 1], "x": 0, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F2", "matrix": [0, 2], "x": 0.9, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F3", "matrix": [3, 2], "x": 1.8, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F4", "matrix": [5, 2], "x": 2.7, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F5", "matrix": [5, 8], "x": 4, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F6", "matrix": [5, 5], "x": 4.9, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F7", "matrix": [3, 6], "x": 5.8, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F8", "matrix": [0, 6], "x": 6.7, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F9", "matrix": [0, 8], "x": 8, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F10", "matrix": [1, 8], "x": 8.9, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F11", "matrix": [1, 10], "x": 9.8, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "F12", "matrix": [1, 9], "x": 10.7, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "Delete", "matrix": [0, 10], "x": 12, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "End", "matrix": [1, 12], "x": 12.9, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "PgDn", "matrix": [1, 11], "x": 13.8, "y": 0.75, "w": 0.9, "h": 0.65}, | ||
{"label": "`\u00ac", "matrix": [0, 0], "x": 0, "y": 1.4}, | ||
{"label": "1!", "matrix": [1, 0], "x": 1, "y": 1.4}, | ||
{"label": "2\"", "matrix": [1, 1], "x": 2, "y": 1.4}, | ||
{"label": "3\u00a3", "matrix": [1, 2], "x": 3, "y": 1.4}, | ||
{"label": "4$", "matrix": [1, 3], "x": 4, "y": 1.4}, | ||
{"label": "5%", "matrix": [0, 3], "x": 5, "y": 1.4}, | ||
{"label": "6^", "matrix": [0, 4], "x": 6, "y": 1.4}, | ||
{"label": "7&", "matrix": [1, 4], "x": 7, "y": 1.4}, | ||
{"label": "8*", "matrix": [1, 5], "x": 8, "y": 1.4}, | ||
{"label": "9(", "matrix": [1, 6], "x": 9, "y": 1.4}, | ||
{"label": "0)", "matrix": [1, 7], "x": 10, "y": 1.4}, | ||
{"label": "-_", "matrix": [0, 7], "x": 11, "y": 1.4}, | ||
{"label": "=+", "matrix": [0, 5], "x": 12, "y": 1.4}, | ||
{"label": "Bksp", "matrix": [3, 8], "x": 13, "y": 1.4, "w": 2}, | ||
{"label": "Tab", "matrix": [3, 0], "x": 0, "y": 2.4, "w": 1.5}, | ||
{"label": "Q", "matrix": [2, 0], "x": 1.5, "y": 2.4}, | ||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 2.4}, | ||
{"label": "E", "matrix": [2, 2], "x": 3.5, "y": 2.4}, | ||
{"label": "R", "matrix": [2, 3], "x": 4.5, "y": 2.4}, | ||
{"label": "T", "matrix": [3, 3], "x": 5.5, "y": 2.4}, | ||
{"label": "Y", "matrix": [3, 4], "x": 6.5, "y": 2.4}, | ||
{"label": "U", "matrix": [2, 4], "x": 7.5, "y": 2.4}, | ||
{"label": "I", "matrix": [2, 5], "x": 8.5, "y": 2.4}, | ||
{"label": "O", "matrix": [2, 6], "x": 9.5, "y": 2.4}, | ||
{"label": "P", "matrix": [2, 7], "x": 10.5, "y": 2.4}, | ||
{"label": "[{", "matrix": [3, 7], "x": 11.5, "y": 2.4}, | ||
{"label": "]}", "matrix": [3, 5], "x": 12.5, "y": 2.4}, | ||
{"label": "Caps Lock", "matrix": [3, 1], "x": 0, "y": 3.4, "w": 1.75}, | ||
{"label": "A", "matrix": [4, 0], "x": 1.75, "y": 3.4}, | ||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 3.4}, | ||
{"label": "D", "matrix": [4, 2], "x": 3.75, "y": 3.4}, | ||
{"label": "F", "matrix": [4, 3], "x": 4.75, "y": 3.4}, | ||
{"label": "G", "matrix": [5, 3], "x": 5.75, "y": 3.4}, | ||
{"label": "H", "matrix": [5, 4], "x": 6.75, "y": 3.4}, | ||
{"label": "J", "matrix": [4, 4], "x": 7.75, "y": 3.4}, | ||
{"label": "K", "matrix": [4, 5], "x": 8.75, "y": 3.4}, | ||
{"label": "L", "matrix": [4, 6], "x": 9.75, "y": 3.4}, | ||
{"label": ";:", "matrix": [4, 7], "x": 10.75, "y": 3.4}, | ||
{"label": "'@", "matrix": [5, 7], "x": 11.75, "y": 3.4}, | ||
{"label": "#~", "matrix": [6, 7], "x": 12.75, "y": 3.4}, | ||
{"label": "Enter", "matrix": [6, 8], "x": 13.75, "y": 2.4, "w": 1.25, "h": 2}, | ||
{"label": "Shift", "matrix": [3, 14], "x": 0, "y": 4.4, "w": 1.25}, | ||
{"label": "\\|", "matrix": [5, 1], "x": 1.25, "y": 4.4}, | ||
{"label": "Z", "matrix": [6, 0], "x": 2.25, "y": 4.4}, | ||
{"label": "X", "matrix": [6, 1], "x": 3.25, "y": 4.4}, | ||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 4.4}, | ||
{"label": "V", "matrix": [6, 3], "x": 5.25, "y": 4.4}, | ||
{"label": "B", "matrix": [7, 3], "x": 6.25, "y": 4.4}, | ||
{"label": "N", "matrix": [7, 4], "x": 7.25, "y": 4.4}, | ||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 4.4}, | ||
{"label": ",<", "matrix": [6, 5], "x": 9.25, "y": 4.4}, | ||
{"label": ".>", "matrix": [6, 6], "x": 10.25, "y": 4.4}, | ||
{"label": "/?", "matrix": [7, 7], "x": 11.25, "y": 4.4}, | ||
{"label": "Shift", "matrix": [6, 14], "x": 12.25, "y": 4.4, "w": 2.75}, | ||
{"label": "Fn", "matrix": [4, 9], "x": 0, "y": 5.4}, | ||
{"label": "Ctrl", "matrix": [0, 15], "x": 1, "y": 5.4, "w": 1.25}, | ||
{"label": "Left OS", "matrix": [2, 11], "x": 2.25, "y": 5.4, "w": 0.9}, | ||
{"label": "Alt", "matrix": [5, 13], "x": 3.15, "y": 5.4}, | ||
{"label": "Space", "matrix": [7, 8], "x": 4.15, "y": 5.4, "w": 5}, | ||
{"label": "AltGr", "matrix": [7, 13], "x": 9.25, "y": 5.4}, | ||
{"label": "Menu", "matrix": [4, 11], "x": 10.25, "y": 5.4}, | ||
{"label": "Ctrl", "matrix": [6, 15], "x": 11.25, "y": 5.4}, | ||
{"label": "Browser Back", "matrix": [6, 11], "x": 12.25, "y": 5.4, "w": 0.9, "h": 0.75}, | ||
{"label": "Up", "matrix": [5, 12], "x": 13.15, "y": 5.4, "w": 0.9, "h": 0.75}, | ||
{"label": "Browser Forward", "matrix": [7, 11], "x": 14.05, "y": 5.4, "w": 0.9, "h": 0.75}, | ||
{"label": "Left", "matrix": [7, 12], "x": 12.25, "y": 6.15, "w": 0.9, "h": 0.75}, | ||
{"label": "Down", "matrix": [7, 10], "x": 13.15, "y": 6.15, "w": 0.9, "h": 0.75}, | ||
{"label": "Right", "matrix": [7, 9], "x": 14.05, "y": 6.15, "w": 0.9, "h": 0.75} | ||
] | ||
} | ||
} | ||
} |
17 changes: 17 additions & 0 deletions
17
keyboards/converter/thinkpad_t6x/rpi_pico/keymaps/default/keymap.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// Copyright 2023 QMK | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#include QMK_KEYBOARD_H | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[0] = LAYOUT_iso( | ||
KC_ESC, KC_MUTE, KC_VOLD, KC_VOLU, QK_BOOT, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_HOME, KC_PGUP, | ||
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_DEL, KC_END, KC_PGDN, | ||
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_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_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_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_NO, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_WBAK, KC_UP , KC_WFWD, | ||
KC_LEFT, KC_DOWN, KC_RGHT | ||
) | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# converter/thinkpad_t6x/rpi_pico | ||
|
||
![converter/thinkpad_t6x/rpi_pico](https://i.imgur.com/wUG9p6eh.jpeg) | ||
|
||
This is a converter PCB for Lenovo Thinkpad keyboards from a wide range of models (T60, T61, X220, ...), based on the Raspberry Pi Pico. The QMK implementation here is specific to the converter in the link below. Similar PCB designs to convert a Thinkpad keyboard to USB exist, but they use a different microcontroller and wiring of the keyboard connector with the MCU. | ||
|
||
* Keyboard Maintainer: [Michael Büchler](https://github.com/strobo5) | ||
* Hardware Supported: The linked converter PCB with keyboards from various Thinkpad models | ||
* Hardware Availability: [Custom PCB](https://github.com/strobo5/T61_PiPico_Scanner) | ||
|
||
Make example for this keyboard (after setting up your build environment): | ||
|
||
make converter/thinkpad_t6x/rpi_pico:default | ||
|
||
Flashing example for this keyboard: | ||
|
||
make converter/thinkpad_t6x/rpi_pico: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**: 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 |