Thinkpad keyboard mod (super early stages)!

Might not need it, OP actually has it in development, might just be as easy to do “pre-order” sort of thing and have him just order all the PCBs/etc, and give information as to what/where to find the keyboards and release 3D printable designs for anything needed.

3 Likes

I also really want trackpoint, and I have been holding off on purchasing a Framework until trackpoint is available. I have multiple laptops, and I am significantly more productive when I don’t have to take my hands off of the keyboard to use the mouse. I assume that there could be some complicated legal/copyright/licensing issues around otherwise I would expect Framework to already offer this.

@Harley_Godfrey, I love what you’re doing here. If you decide to make this a business or sell this somewhere, I would absolutely buy from you. I wanted to ask you if you ever considered using one of those mini trackballs similar to those older Blackberry phones in lieu of the trackpoint. That way if you do make this into a business, and selling a ‘trackpoint’ keyboard has to be paused because of some cease and desist letter, you might still be able to sell something to keep your business running. If so, it may be a good idea if the trackball/trackpoint modules are swapable as well. I just hope that something like this is realistic with the available space.

I wouldn’t hold your breathe. I hope this gets into something real ASAP, but being realistic either buy a FW16 now/soon if that’s the machine you want, and hope like the rest of us that this project becomes viable and successful, or stick with your existing machines/Thinkpads and wait and hope.

I really want this as well, but I didn’t let it stop me because the rest of the machine is what I need/want and I needed a new laptop.

1 Like

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.

6 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.

7 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.

1 Like

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.

3 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.)

1 Like

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

3 Likes