ThinkPad Keyboard Mod
The ThinkPad Keyboard Mod is a collaborative community project to adapt Lenovo ThinkPad keyboards with TrackPoint pointing sticks for use in Framework laptops. Initiated by Harley Godfrey in October 2023 for the Framework Laptop 13 using a ThinkPad T480s keyboard, the project expanded significantly when C. Scott Ananian began a parallel effort targeting the Framework Laptop 16 with a ThinkPad X1 Carbon Gen 10 keyboard, producing working hardware prototypes and open-source firmware1.
The project addresses one of the most frequently requested features in the Framework community — a TrackPoint-style pointing stick — which Framework has acknowledged is challenging due to the thickness constraints of the laptop chassis1.
Background
Framework laptops use a flat keyboard design without a TrackPoint pointing stick. The long-running community feature request thread for TrackPoint support (thread #1026) accumulated over 300 replies and 68,000 views, making it one of the most popular feature requests2. Framework co-founder Nrp confirmed the company wanted TrackPoint support but noted the thickness constraints were a significant challenge1.
The TrackPoint communicates over PS/2 protocol with IBM-specific extensions for negative inertia and sensitivity settings, which provide the distinctive TrackPoint "feel" compared to generic pointing sticks1.
Harley Godfrey's T480s Mod (Framework 13)
Harley Godfrey began the project in October 2023, targeting the ThinkPad T480s keyboard for the Framework Laptop 13. Key design choices included1:
- RP2040 microcontroller running KMK firmware for keyboard matrix scanning
- USB keyboard interface — the ThinkPad keyboard is presented as a USB HID device
- TrackPoint via RP2040 — the TrackPoint is processed on the RP2040 and translated to USB HID rather than attempting to use the Framework's I2C touchpad interface
- Nano SIM card slot — a USB 2.0 hub was planned internally to retain fingerprint scanner functionality
- USB-based replacement touchpad — since the PS/2 connection would be consumed by the keyboard interface
Thickness Challenge
The T480s keyboard is approximately 4 mm thick, while the Framework 13 has only 3.8 mm of space available for the keyboard. Harley planned to add spacers between the hinges to gain extra clearance, along with a custom or modified bezel1.
C. Scott Ananian's X1 Carbon Gen 10 Mod (Framework 16)
C. Scott Ananian began a parallel effort in late 2023 targeting the Framework Laptop 16 with a ThinkPad X1 Carbon Gen 10 keyboard. This became the most advanced iteration of the project, with working hardware and firmware1.
Hardware
| Component | Details |
|---|---|
| Keyboard | ThinkPad X1 Carbon Gen 10 (45-pin FPC, 0.3 mm pitch) |
| Microcontroller | RP2040 |
| I/O expander | Microchip MCP23S17 (for the 16 keyboard drive lines) |
| PCB | 0.8 mm, based on Framework Microcontroller Input Module reference design |
| Design tool | KiCad |
| License | CC BY 4.0 |
| Firmware | KMK and QMK |
| Repository | cscott/X1CarbonGen10 |
The X1 Carbon Gen 10 keyboard was chosen because it was the most recent ThinkPad keyboard with integral TrackPoint buttons, likely to remain available longer and be thinner than older models. It measures 277 mm wide × 135 mm high (to the bottom of the mouse buttons), and is approximately 4.6 mm thick overall1.
Firmware Progress
C. Scott Ananian developed both KMK and QMK firmware for the adapter board1:
- KMK firmware — basic keyboard matrix working with I/O expander support
- QMK firmware — full keyboard matrix plus TrackPoint support via PS/2 mouse driver
- All keys functional except "microphone mute" button (nonstandard)
- TrackPoint works but needs tuning for proper "feel" — the QMK PS/2 mouse driver lacks the TrackPoint-specific register initialization present in the Linux kernel driver (
trackpoint.c)
Boot mode is entered by holding the "Fn" key during power application3.
Keyboard Pinout Reverse Engineering
C. Scott Ananian reverse-engineered the X1 Carbon Gen 10 keyboard pinout, documenting 8 sense lines, 16 drive lines, LED control lines (FnLk, Mute, MicMute, CapsLock — active low with a required 3.3V power connection), and 10 TrackPoint signals (T1–T10) on an internal flex cable. The full pinout is published in a Google Sheets document1.
Keyboard Test Fitting (Framework 16)
After receiving the Framework 16, C. Scott Ananian test-fitted multiple ThinkPad keyboards against the chassis1:
| Keyboard | Fit Assessment |
|---|---|
| X1 Carbon Gen 10 | Good fit; needs ~2 mm hinge shim; adapter PCB needs L-shape respin; 3 metal standoffs must be clipped |
| X280 | Compact; integrated plastic cover; two protruding screws under TrackPoint must be filed; standard FPC connectors |
| E14 Gen 1 / E480 | Too wide — exceeds Framework 16 keyboard width by several mm; would require omitting a side input module |
Hinge Modification
The primary mechanical challenge is the keyboard thickness. C. Scott Ananian determined that a ~2 mm shim placed under the screen-side hinge brackets would provide sufficient clearance. The hinges are accessible under the ventilation plate, held by T5 M2.5×3 mm screws. Longer screws and the shim would be needed. A 3D-printable shim was designed. For the Framework 13, the geometry is more complex — the hinge sits behind the screen, requiring a modified hinge piece rather than a simple spacer1.
Framework publishes CAD files for the Framework 13 hinges on GitHub, which C. Scott Ananian used to get quotes for modified 3D-printed stainless steel or CNC-machined aluminum hinge parts at approximately $20 for both sides14.
TrackPoint Thickness Analysis
Community member C_Scott_Ananian sourced and measured multiple TrackPoint modules with involvement from Framework co-founder Nrp1:
| Module | Sensor Height | With Rubber Dome | Notes |
|---|---|---|---|
| X1 Tablet Gen 1/2 | ~2.8 mm | ~3.8 mm | Thinnest known; slightly taller than keyboard keys |
| Sprintek SK8707 (latest) | 3.775 mm (without dome) | N/A | 2.4×2.4×2.4 mm stud for rubber dome |
| Sprintek SK8702 (previous gen) | ~4.7 mm (without dome) | N/A | Used in UHK Trackpoint module |
Nrp measured the X1 Tablet Gen 1/2 TrackPoint at approximately 2.8 mm sensor + ~1 mm rubber dome = ~3.8 mm total — just slightly higher than the keyboard keys, posing a risk of screen damage. A thinner rubber nub could make it viable1.
Pylon's T410 Mod (Framework 13)
Community member Pylon started a separate effort using the classic ThinkPad T410 keyboard (7-row, non-chiclet — widely considered one of the best ThinkPad keyboards ever made). This keyboard uses a JAE AA01B-S040VA1-R3000 connector (out of production), but Pylon found the Molex SlimStack 0543630489 as a compatible substitute. An STM32F072 or RP2040 running QMK was planned. The T410 keyboard is thicker, requiring a custom CNC lower chassis for the Framework 131.
WorkBook Project
A separate but related project, ForWorkBook by Peter Mac (Kartoffelstolz) on Hackaday.io, aims to create a full custom chassis around a Framework mainboard with a mechanical re-implementation of the 7-row ThinkPad keyboard using Kailh Choc switches and a TrackPoint module harvested from a T440–T480 keyboard. Initially targeting the Framework 16, the project pivoted to the Framework 13 in December 2024 due to concerns about the final product's bulk (estimated at least 3.5 cm thick for the FW16 variant). The project requires a fully custom lower chassis. As of January 2026, a Framework 13 mainboard had been acquired for development56.
Technical Challenges
| Challenge | Details |
|---|---|
| Keyboard thickness | ThinkPad keyboards are 4–4.6 mm; Framework has 3.65–3.8 mm clearance |
| TrackPoint height | Even the thinnest TrackPoint modules are ~3.8 mm with rubber dome, risking screen contact |
| Hinge modification | Required to gain 1–2 mm of clearance; feasible but involves custom parts |
| TrackPoint feel tuning | QMK's PS/2 mouse driver lacks TrackPoint-specific register initialization (negative inertia, sensitivity) present in Linux kernel driver |
| GPIO pin count | X1 Carbon Gen 10 has 45 pins; RP2040 has only 29 GPIO — requires I/O expander (MCP23S17) or dual-RP2040 split design |
| EMI/RFI compliance | Custom keyboard boards may require testing ($$$) if sold commercially; DIY use falls under exemptions1 |
| FPC connector sourcing | Some ThinkPad keyboards use unusual connectors; X1 Carbon Gen 10's 45-pin 0.3 mm FPC is available on JLCPCB |
Related Projects
- Any chance of trackpoint? — Original Feature Request thread (316 replies, 68K+ views)2
- cscott/X1CarbonGen10 — C. Scott Ananian's hardware design and firmware (Framework 16, X1 Carbon Gen 10)3
- cscott/qmk_firmware (x1_carbon_gen10 branch) — QMK firmware for the X1 Carbon Gen 10 adapter board
- ForWorkBook (Hackaday.io) — Peter Mac's custom chassis project with mechanical ThinkPad keyboard5
- Converting Framework 13 to a FrankenPad — Related FrankenPad conversion thread (122 replies)
- Thinkpad 701C with a Framework brain transplant — Framework mainboard in a ThinkPad 701C body (85 replies)
- FrameworkComputer/Framework-Laptop-13 (Hinges) — Framework 13 hinge CAD files4
- FrameworkComputer/InputModules — Official Framework 16 Input Module reference designs
- Laptop 16 with thinkpad keyboard and trackpoint - Martin Roth — Martin Roth's approach using a repurposed Lenovo USB keyboard
- Santoku Keyboard — Custom mechanical keyboard with alternative "Beanstalk" pointing stick design, suggesting thinner TrackPoint alternatives7
- Sprintek FlexPoint — Sprintek SK8707 TrackPoint module datasheet (3.775 mm without dome)8