Skip to the content
2 layers90.5 × 97.3 mmTp pcb, the printed circuit board in 3D

Keyboard from thinkpad laptop

Size
90.5 × 97.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
54
Pads
119
Tracks, vias
274, 26
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
31 Jul 2019
Updated
4 Apr 2023

Overview

Tp pcb is an open-source printed circuit board by lowj, from the lowj/tp-keyboard repository on GitHub. It is a 2-layer board of 90.5 × 97.3 mm with 17 parts on 54 nets, routed with 274 tracks and 26 vias.

Its parts include 4 resistors, 4 connectors, 1 capacitor, 1 IC and 1 diode. It belongs with the keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.

README

README.md

tp-keyboard

alt text


The goal of this project is to make a useable desktop keyboard from the keyboard of the ThinkPad L420. It uses a custom PCB to connect to the FFC cables of the keyboard matrix and trackpoint module to a Teensy++ board.

The Teensy++ runs QMK firmware to scan the keyboard matrix and read the signals from the trackpoint module. QMK has a PS/2 library which is used to make the trackpoint module functional.


More Pictures

alt text alt text alt text


Trackpoint

The trackpoint module has an 8 pin FFC cable.

The modules clock pin needs to connect to PD2 and data pin needs to connect to PD5 of the teensy

alt text


Keyboard Matrix

The keyboard has a 30 pin FFC cable connected to it. These are the rows and column pins for the matrix

alt text


Housing

The housing is comprised of laser cut wood/acrylic sheets (1.5mm and 3mm) and M2 screws.

This is the stackup I used. However thicknesses can be varied to make the keyboard lower or higher profile.

text
[      shield_2.dxf (1.5mm)      ]
[      shield_1.dxf (1.5mm)      ]
[      shield_1.dxf (3.0mm)      ]
[       layer4.dxf (1.5mm)       ]
[  layer3 cover ffc.dxf (3.0mm)  ]
[       layer2.dxf (3.0mm)       ]
[    layer2_nousb.dxf (1.5mm)    ]
[       layer1.dxf (1.5mm)       ]

Some notes about the housing:

  • layer2_nousb.dxf has no usb cutout while laye2.dxf has a cut out for usb. These allow for adjusting when the usb cut-out starts.
  • layer2 has to have enough space for the PCB, so it cannot be too thin, in my case 1.5mm + 3.0mm was enough clearance
  • layer3 cover ffc.dxf's thickness should try to match the height of the edge of the keyboard matrix module. This is because the keyboard module lays ontop of layer2 and layer3 cover ffc goes along the edges of the keyboard module. layer4 goes ontop and helps secure/hold down the keyboard module. If the layer3 section is too thick, then the edges of the keyboard module wont be secured leading to more wobble. If the layer3 section is too thin, the keyboard will be held down, but layer4 would not be able to sit flush. If layer 3 is the right height then there would be some pressure holding the keyboard down and layer4 would sit flush.
  • layer4.dxf is better if it is thinner (1.5mm) so fingers dont hit it when using keys on the edges
  • layer1.dxf [WIP] there is a hole in the middle to secure the keyboard down, it goes into the screwhole in the back of the keyboard module, this helps with wobble when using the trackpoint

Other than these notes, the thicknesses of each layer can be adjusted.


Parts

  • Keyboard from L420 or similar: SL410 L410 L412 L420 L421 L510 L512 L520 SL410 SL410K SL510 SL510K I think these also work.
  • Trackpoint from r61 keyboard module or similar
  • Acrylic sheets or wood for housing, I used 3mm (1/8inch) and 1.5mm (1/16in) thick sheets
  • Teensy++ (https://www.pjrc.com/store/teensypp.html)
  • PCB
  • Trackpoint connector (https://www.digikey.com/short/2vzz139r) (Part #: 84981-8)
  • Keyboard FFC connector (https://www.digikey.com/short/30qq3210) (Part #: FFC3B07-30-T)
  • 4.7K(2) and 100K Resistor (1206)
  • 2.2uF Cap (1206)
  • M2 Screw kit. (With sizes like 4mm /6mm /8mm /10mm /12mm /16mm /20mm) can be found on Amazon

Breakout board

alt text This is the dev board I created and used to decode the matrix of the keyboard.

alt text

Helpful resources:

Parts

17
QtyValueFootprintReferences
24.7kResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR1, R2
1100KResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR4
12.2uFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC1
130 Pin FFCcustom:FFC_30_GCTJ3
1Conn_01x08_Malecustom:FFC_8_TEJ4
1LEDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1
1RResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR3
1RGB LEDsConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1Teensy++2.0teensy:Teensy2.0++U1
1TrackpointConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1

The 11 most common of 17 parts.

More from lowj/tp-keyboard

1
  • 2 layers82.7 × 95.8 mmKeyboard, the printed circuit board in 3D

    Keyboard

    lowj/tp-keyboard

    Keyboard from thinkpad laptop

    11 parts52

Similar boards

  • 2 layers50 × 35 mmServo power, the printed circuit board in 3D

    Servo power

    earthtojake/text-to-cad

    Design physical products with AI

    17 parts26kMIT
  • 2 layers139.7 × 62.2 mmBreakout 60pin EEC IV, the printed circuit board in 3D

    Breakout 60pin EEC IV

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    17 parts1.2k
  • 2 layers29.2 × 55.9 mmDeniseadapter, the printed circuit board in 3D

    Deniseadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    17 parts1kGPL-3.0
  • 2 layers24.5 × 36.5 mmCluster, the printed circuit board in 3D

    Cluster

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    17 parts993
  • 2 layers56.3 × 55.7 mmStarNecklace, the printed circuit board in 3D

    StarNecklace

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    17 parts915
  • 2 layers25 × 25 mmSmallEncoder, the printed circuit board in 3D

    SmallEncoder

    DDeGonge/OS-ARM

    This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…

    17 parts498MIT
  • 2 layers38.9 × 16.1 mmAmoeba spc, the printed circuit board in 3D

    Amoeba spc

    mtl/keyboard-pcbs

    Keyboard PCBs

    17 parts485
  • 2 layers36 × 51 mmABSIS ALE, the printed circuit board in 3D

    ABSIS ALE

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    17 parts431

Questions

How big is the Tp pcb PCB?

It measures 90.5 × 97.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Tp pcb use?

17 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Tp pcb KiCad files?

From the lowj/tp-keyboard repository on GitHub, at the commit this page was made from: the board is pcbs/tp_pcb/board/board.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Tp pcb design in my own project?

Its repository states no licence, so its author keeps all rights: ask lowj before reusing the design.