Thinkpad keyboard mod (super early stages)!

Right now I’m just carrying a Tex Shinobi with me and setting that on top of the laptop keyboard to work. If that’s a bit large for people, the lenovo thinpad compact USB keyboard or the Happy Hacking Studio Charcoal that came out recently could work.

https://www.amazon.com/dp/B00F3U4TQS

I am working on a different approach to get a trackpoint keyboard that may be a little easier than op’s solution, but a lot kludgier. I grabbed the lenovo USB keyboard from amazon and ripped out the insides. Next, I’m looking to just 3d print a “case” for it that would replace the current keyboard and trackpoint sections. Obviously the screen won’t completely close with the added thickness needed for the trackpoint, so I’m planning on having the front end stay open a bit, and adding support to the screen and the keyboard area so that the whole laptop is just thicker at the front when closed. I figure we’d need to do that whether we boosted the hinge or not.

The nice thing about this approach is that there’s no custom electronics other than the pogo pad to USB-micro connector, and that’s entirely passive.

This will also allow me to add a yubikey to the keyboard area that doesn’t take up one of the expansion ports. The other side may get an m.2 drive connector, though the USB speeds on the keyboard port may just make that annoying, I’m not sure.

Hopefully we’ll get something real before too long, but when I talked to the framework team, they said that they wanted a trackpoint keyboard too, but they just hadn’t found a way to do it in the depth they had available. The trackpoint itself just adds too much thickness. This might have been able to be addressed in the early production of the design, but at this point It’s way too late.

3 Likes

My framework 16 arrived a few weeks ago (I was a late batch) and Work intervened for a while, but I finally got around to unpacking it and getting back to this project. Photos in a following post, but the short story is: I’m back hacking on this project with a couple of weeks of vacation coming up, thanks to the generous donations of a bunch of folks I had a pile of thinkpad keyboards to test fit and I found 4 that seem like reasonable fits, and I had my framework 16 opened up and got the measurements needed to shim the screen up to allow a slightly-thicker thinkpad keyboard and it doesn’t seem like a difficult task – with the exception that you might lose the nice framework logo in the top left of the expansion module.

7 Likes

See also Use Your Thinkpad X1 Tablet’s Keyboard Standalone | Hackaday published just today, which seems like a pretty elegant hack. (I’d acquired one of the X1 tablet keyboards as well for the test fit, in the hopes that it could be easily disassembled and extracted – no joy. The thing is glued shut and there’s no easy way to get it apart without destroying it.)

2 Likes

Option 1 is the ThinkPad X1 Carbon Gen 10 that I started with.

I need to respin my adapter PCB in a bit of an L shape, and I’ll likely have two more PCBs for structure: one which mates with the leftmost pair of pogo pins but has no electrical function, and then a center section which mates with the group of three “touchpad” pogo pins and just fakes out the sense resistor to pretend there is a touchpad connected. Maybe I need a little MCU there as well. I’ll 3d-print a little 6mm filler for the left side of the keyboard, buy an extra “touchpad” spacer for the right bottom side, then just need to make a little custom piece to fill in the remainder of the touchpad space. It’s a bit wide to 3d print on most printers, but maybe it can be printed as two halves. (It would be nice if framework would sell the touchpad module without the actual touchpad installed, to trim costs a bit.)

By my measurements, you’ll need to shim up the screen hinges by about 2mm, but that should give plenty of space. I guess there can be a 2mm screen rest on the part I make to fill the touchpad gap as well.

Disadvantages: there’s a little metal can used for the track point controller to the left of the track point buttons which is a little awkward. The X1 Carbon Keyboard also comes by default with 3 metal standoffs on the bottom that have to be manually clipped away, and there’s no plastic cover between the keys (although that could presumably be printed as well). The FPC cable is short and the connector is unusual, although possible to source from JLCPCB in a single orientation only.

Option 2 is the X280 keyboard, which is nice and compact, fits the space pretty well, and has an integrated plastic cover between the keys:

It’s main drawback is that it rather inexplicably has two long screws that protrude further than they need to beneath the track point:

These hold up the entire keyboard and keep it from sitting flush.

They could probably be filed down and/or replaced with shorter screws, and/or perhaps a spot can be found where a trackpoint-sized hole could be cut in the midplate. The space underneath this area is pretty tightly packed with heatsink, but it’s possible careful alignment could make this work out. If the trackpoint could be made to sit flush this would be a pretty good option: the fpc cables are both fairly standard and long enough to accommodate a connector underneath the more-spacious trackpad area. It might also need some tabs made for the top to get it to seat properly underneath the ventilation ledge, as it tends to pop up there. The mouse buttons even pop up a bit so you could put a thin PCB below them to interface with the touchpad pogo pins without increasing overall thickness. If you can find space to recess the trackpoint bottom plate, you probably would only need a 1mm shim, maybe not even that.

Taking off the midplate and sliding the keyboard around, there’s a place about 6mm down and flush left that has enough space to let the trackpoint slip down. By that point the keyboard is low enough that the arrow keys overlap 2 of the 1.75mm pegs which serve to align the input modules. But if you’re cutting holes in the midplate might as well shave down 2 unused alignment pins as well?


I wonder how much a replacement midplate is, if I wanted to experiment? (Answer: $99 – it would be nice if Framework would sell just the midplate, not the whole “kit” to trim the price a bit.)

Option 3/4 are the E14 Gen1 and E480, which are almost identical. Their main drawback is width: they are wider than the stock framework keyboard (by a couple of mm!), so you’d need to omit one of the side input modules, and then you’d have a lot of space to fill. They are also tall enough to overlap with the input module locator pins on the arrow key side. They could be made to work, but the other options are probably preferable.

Lastly, a brief word about hinge shims. The hinges are easy to get to, just underneath the ventilation plate, and I’ve measured the dimensions for a 3d printable shim that will sit underneath them. They are held in place by T5 M2.5x3mm screws; you’d need to get slightly longer screws once you fit a shim. The only catch is that the (purely cosmetic) top of the expansion module sits pretty close to the top of the hinge, so you’ll need to find a way to open it up to let the hinge sit 2mm or so higher. I’ve got some ideas about that which I’ll 3d print and prototype.

8 Likes

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