Every chip, connector, cable, tool and consumable used anywhere in this build, with the
document that specifies it and at least one place to buy it. If a part is mentioned in
another file and missing here, that is a bug in this file.
Cheapest board with a PIO block, which is what makes a hardware PS/2 host possible in QMK on this family; QMK’s RP2040 platform support is mature.
USB test pads on the underside — used by the optional USB-C upgrade:
Pad
Signal
TP1
GND
TP2
USB DM (D−)
TP3
USB DP (D+)
TP4
GPIO23 / SMPS mode — do not use
TP5
GPIO25 / LED — do not use
TP6
BOOTSEL
Earlier revisions of this repo said TP1 = D− and TP2 = D+. That is wrong and would short
ground onto D−; see CHANGELOG.
Pico 2 (RP2350) is pin-compatible and $1 more. Before substituting it, confirm QMK’s
RP2350 support for the PS/2 PIO driver in the QMK version you are building with.
Why not a bigger board? The pin budget is solved with a shift register instead — see
gpio-budget.md.
Reads in parallel, shifts out serially over SPI; a 24-bit chain reads in ~3 µs. No I²C address setup, no driver dependency, and the inputs tolerate up to 15 V.
Gotchas that matter here: HC inputs have no internal pull-ups — every D0–D7 input needs
an external pull-up or it floats and reads random keys. Tie CE LOW. Tie the first
device’s DS to a defined level. Details in shift-register-matrix.md.
10 kΩ bussed SIP resistor network, 9-pin
Role
Pull-ups for the 74HC165 sense inputs — one 8-resistor network per chip
Part
Bourns 4609X-101-103LF or generic A09-103 (9-pin, 8 × 10 kΩ, common pin 1)
Most ThinkPad membranes already include diodes; buy a 100-pack only after the test says so. Note that BOM.md once called these “Schottky” — they are ordinary silicon signal diodes.
Touchpad indicator LED
Role
Shows the pointing device is active; driven by GP28 through 100 Ω
Part
Any 3 mm or 0805 LED, ~2 V forward, ≤ 20 mA. The X240 palmrest may already have one on the ClickPad FPC — probing decides.
Connectors and cables
Keyboard FPC — 40-pin, 0.5 mm pitch
The X240 keyboard (FRU 0C44020) terminates in a 40-conductor 0.5 mm pitch FPC. Which of the
40 lines are matrix, power, backlight and power-button is not documented by Lenovo and is
established by probing — see ../../hardware/pinout/probing_procedure.md.
40-pin 0.5 mm FPC → DIP breakout with ZIF connector (Rev A)
Role
Brings the keyboard FPC out to 0.1” pads on the perfboard
Contact side. Breakouts come as top- or bottom-contact; the keyboard cable’s contacts face one way. Buy a bottom-contact board or plan to use the FFC extension (below) to flip orientation.
About Adafruit #1436. Earlier revisions of this repo listed it as “ZIF FPC to DIP
adapter”. Adafruit 1436 is a multi-pitch
solder-pad adapter plate — it has no ZIF connector. It works only if you solder a bare
FPC directly to it or fit your own connector. It is listed here so nobody buys it expecting a
socket.
Speaks PS/2, with a pass-through (guest) port that carries the TrackPoint’s PS/2
stream inside Synaptics packets. Specification:
Synaptics TouchPad Interfacing Guide (PN 511-000275; no longer hosted publicly — the working reference is the Linux driver drivers/input/mouse/synaptics.c).
Architecture and packet formats in trackpoint.md.
TrackPoint controller (inside the keyboard)
Two-piece module family shared by T440/T450/T460/X240/X250/X260 — strain-gauge sensor
board plus a controller (TPM754-class) that outputs PS/2. Background:
sharktastica TrackPoint wiki ·
delingren/thinkpad_keyboards (04Y0819,
documents the reset-pulse requirement on a standalone module).
Passives and hardware
Part
Value
Role
Resistor
4.7 kΩ ¼ W × 2
PS/2 DATA/CLK pull-ups
Resistor
10 kΩ ¼ W × 1
MOSFET gate series
Resistor
100 kΩ ¼ W × 1
MOSFET gate pull-down (LED off during boot)
Resistor
100 Ω ¼ W × 2
Backlight series (value set by measurement), touchpad LED