Thinkpad keyboard mod (super early stages)!

I literally just registered an account here, to appreciate your work. As a long-time linux and thinkpad-user myself (had around 8 or so since my x61s both for hobby and at work) literally the only thing holding me back to buy a framework notebook is the missing trackpoint. unfortunately thinkpads have gotten worse with each generation since lenovo took them over from IBM, and current thinkpads have more bugs than even cheap consumer-notebooks, but you cannot stay indefinately on ancient hardware.

now please, please someone find a way to adopt the TP-keyboard to the 13"-version, as 16" is just to bulky for me (I used 12" TPs, most of the time, 14" at max).
Or even better: framework, please just make this happen, build keyboards with a trackpoint and no touchpad at least as an option. i gurantee, hordes of nerds are waiting for this, and are just held back by this single issue. I am confident macbook-users are NOT your primary target audience! make it happen, and host a marketing campaign about this. people will follow!

however, thank you all in this thread for your efforts, and keep up the great work.

3 Likes

I did a test fit of this as well:

The size seems quite comparable.

I don’t know how many folks would be interested in such a thing, and I’d probably have to poke @nrp for a little more detail on the software side of the touchpad interface (what’s published now is just “it’s I2C” with no protocol info) but it seems it could work mechanically.

Underside comparison:

2 Likes

How’s the thickness compared to what’s available in the FW?

Seems roughly equivalent, at least for the touchpad part. The buttons might stand up a bit, but probably not more than the stock keys do. When either (a) framework get spare touchpad modules back in stock, or (b) I’ve gotten far enough on the keyboard mod not to need my own OG touchpad module, I’ll probably strip one down and see how it goes. I think the mechanics won’t be a big deal.

5 Likes

Wow, progress! I’m following this with great anticipation :slight_smile:

New boards sent off to JLCPCB:


My previous board suffered from being designed around an FPC connector that was not in fact top-entry as digikey’s metadata claimed, nor was it bottom-entry, but in fact seemed to be a two-sided deal and thus incompatible with the actual keyboard FPC. The RP2040 part worked fine, just ended up with nothing to talk to.

The new version benefits from my actually owning a FW16 now to measure against, and should place the (different!) FPC connector in a useable position.

The second more-linear board fits under the mouse buttons and interfaces with the touchpad connector to fake out the FW16 into believing a touchpad is connected. As an extra bonus it has space for a 2x4 header so I can use it for prototyping the “ThinkPad touchpad with physical buttons” hack.

4 Likes

Well, at least you could iterate on the fit/etc of the board with keyboard on top, even if not hooked up. So it’s not a total loss. But annoying…

Are you hand soldering all the boards, including all the little SMD parts? Or are you having JLCPCB populating most/all of the parts?

I’m having JLCPCB populate all of the parts. My thought is that if this works and is successful I want to make it feasible to mass-produce, and I’m not going to be hand-soldering 100s of boards myself. :slight_smile: The available working space on the bottom side of the input module is also extremely tight.

At the moment, I’m moving forward on using the X1 Carbon Gen 10 keyboard for an “all in one” solution that provides trackpoint and buttons and replaces both the keyboard and touchpad area.

On a parallel track, I’m working on making a touchpad-only module using the touchpad+button assembly from the T460s. I’ve got a little “PCB” being made for that, that’s really just the top layer and the touchpad cutout with no electrical function:


You can do some interesting decorative things with silkscreen and the copper layer, but mostly this is a cheat to precisely make a top panel of exactly the right size. What’s still to be done here: (a) figure out which of the T460s touchpad’s three (!) I2C busses is the right one to wire to the FW16, (b) make a suitable adapter board, (c) design and 3d print a bottom side rail to glue to the PCB upper, and (d) design and 3d print the equivalent of the piece shown below to interface to the touchpad latching mechanism.

Of these, (d) is the one that seems the hardest (to me). It would really help if FW would have included that piece in the 3d model dump of the shell components they released a few weeks ago.

Anyway assuming the touchpad replacement project is successful, it seems we’d want a keyboard-only-no-buttons module that fits into the upper keyboard area and doesn’t overflow into the touchpad space. I’ve got a few items on my ebay list as possible button-less keyboard candidates: the X13 Gen 1 or 4 and the T460 seem most promising at the moment.

EDIT: I got another generous donation from github sponsors (!) so I went ahead and hit buy on my ebay cart. Incoming keyboards are: X270, T460, T460s, X13 Gen 1, and X13 Gen 4.

1 Like

I meant on these prototype boards, to keep costs down on the prototypes. For larger production, of course you’d definitely want them to populate the boards.

My limiting factor for hobbies tends to be time, not money (within reason)… and JLCPCB assembly is pretty darn cheap. I do hand assemble the oddball parts that would bump the project into the “not budget” PCBA tier, but that’s more relevant for the seven segment display input module than this one. :slight_smile:

(But this is also life hacking on my part. I don’t want to get to the end of this project with something that works for me but which I’d have to redesign from scratch in order to make more than one of them to share with others. So it helps to design for manufacturability from the beginning, and to ensure that I don’t find any unexpected surprises when scaling later it’s best to use the same processes (PCBA in this case) throughout.)

2 Likes

You wouldn’t happen to have any power PCB design skills, would you? I’m wanting to move into do some bucks, buck-boost, and/or one of those TI all-in-one USB-PD + buck-boost + CC/CV lithium charger ICs.

@Arya could probably help you out:

But in general I just carefully copy the reference design and suggested PCB layout from the datasheet and things generally work.

I’ve updated the source files for my X1 Carbon Gen 10 keyboard adapter at GitHub - cscott/X1CarbonGen10: Keyboard with Trackpoint for Framework 16 laptop: hardware design

4 Likes

I don’t mean to hijack the thread here, but I just wanted to post my progress of fitting a trackpoint keyboard to the framework 16. I’m hoping that someone comes up with a real solution I can buy instead of my kludge:

I have a preliminary version that allows me to ditch the external keyboard:

The keyboard is “Installed” and functional. I designed and 3d printed replacement spacer modules. The lid doesn’t close fully, so for now I’ve printed some shims that attach to the lid to keep it from trying to close onto the keyboard. I looked at adding shims to raise the lid, but that’s a lower priority for me.

Right now, the cable to the keyboard just runs out to the side, as you can see, but my next step will be to design a small pcb that fits in the spacer so I can run the connector to the internal USB ports.

I’m still in the process of designing all of the spacers to fit correctly, but it’s usable at this point. The biggest issue in reproducing what I’ve done here is getting USB-micro 90-degree adapter that fits in the 4mm thickness. I had to peel the plastic shell off of one to make it fit.

I posted links to my 3d-printable spacers and keyboard & trackpad blanks in another thread.

7 Likes

Nice! What keyboard did you use as your base? Is this a cutdown Tex Shinobi as per your previous post?

I’ve got my PCBs back from JLCPCB but haven’t quite put all the pieces together yet. This is the X1 Carbon Gen 10 and it will be one keyboard + 1 small module wide, and requires a custom touchpad-size spacer as well.

My most recent scouring of Ebay turned up the X13 Gen 1 keyboard which looks like an even better fit, it should fit in 1 keyboard + 1 touchpad module, leaving both spacers top and bottom alone; and the X13 Gen 4 is the same size but without the touchpad buttons, so ought to work well as a “keyboard module only” IM which matches with a “touchpad with buttons only” bottom side IM.

6 Likes

This is a ThinkPad Compact USB Keyboard with TrackPoint. The main thing that it has going for it is that it’s already got the USB adapter, so I didn’t have to deal with that other than making a spot for it to fit under the keyboard.

The keyboard itself is pretty thick. The trackpoint housing sticks a good way out the bottom. It’s the width of the FW16 keyboard module and about 2.5 spacers.

I made the new keyboard-holder spacers 4mm thicker than standard spacers, and the buttons are still 3mm taller than that, though the keys are just 2mm taller. The trackpoint base goes through the original spacer depth almost completely.

4 Likes

Ok, my keyboard is working in place in the FW16 now. It was temporarily offset one unit to the left of where it should be, due to a bit of confusion about how BOARD_ID resistors work, but I fixed that with a little resistor value swaparoo. I need to make some bezels to tidy everything up.

There are actually three separate PCBs here. On the left side is one of my v1 PCBs, repurposed here to provide the 330k board ID resistor which the FW16 wants. Then there’s another PCB underneath the trackpoint buttons which provides the board ID resistor to fake out the touchpad. Finally, the actual “real electronics” are on the rightmost PCB, with a board ID resistor calling itself a small input module.

I’ve got some ideas on how to tidy this up a bit, using other ThinkPad keyboards that are slightly different sizes, but I think it’s worthwhile to carry this through to the end before getting distracted by the next shiny keyboard possibility so my next step is 3d printing some pieces to fill in everywhere you can see the midplate and press the keyboard down a bit better – right now the FPC cable underneath wants to spring up the middle, which can be fixed with a better crease and some doublestick tape.

11 Likes

This is amazing! Really looking forward to this going another step, and really hope I’ll be able to buy a PCB & cable, print up my own spacers/etc, and find an appropriate keyboard off of ebay :slight_smile:

Here’s a teaser of what “version 3” might look like, using the X13 Gen 4 keyboard up top and the T470s clickpad-with-buttons (as requested by @Gwen) down below. The X13 Gen 1 keyboard is the same size, but with buttons integrated into the keyboard, and might be another option for folks who really don’t want a touchpad at all (and I’m personally in that camp).


10 Likes

I do like buttons in the keyboard, puts them right where I expect.

Is that a commercial material, what you have shown there that you put on top of a printed substrate to get a fully smoothed top? Seems like you could end up putting in the 2 bits underneath for the ID resistors, and replace the bottom area with 1 entire contiguous top, rather than having the side spacers. Seems like a great idea, if you’re not going to have any trackpad at all. Or even if you do, but using the thinkpad one. Or maybe even the FW one.

1 Like