mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 05:12:33 +01:00 
			
		
		
		
	Add keyboards/converter/thinkpad_t6x/rpi_pico (#23696)
This commit is contained in:
		
							parent
							
								
									6fbfd659ff
								
							
						
					
					
						commit
						f5f11b7c79
					
				
							
								
								
									
										131
									
								
								keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								keyboards/converter/thinkpad_t6x/rpi_pico/keyboard.json
									
									
									
									
									
										Normal file
									
								
							| @ -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} | ||||||
|  |             ] | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -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 | ||||||
|  |     ) | ||||||
|  | }; | ||||||
							
								
								
									
										27
									
								
								keyboards/converter/thinkpad_t6x/rpi_pico/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/converter/thinkpad_t6x/rpi_pico/readme.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | # converter/thinkpad_t6x/rpi_pico | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | 
 | ||||||
|  | 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 | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Michael Büchler
						Michael Büchler