Thinkpad keyboard mod (super early stages)!

Oh wow, I’m definitely going to be following this thread! I’ve got a FW16 coming (batch 12), so it’ll be a bit before I can even contemplate this, but very, VERY cool. And very happy to alpha/beta test things on the FW16, although I think it might be more challenging since it those pogo pin connector things.

2 Likes

I admire the effort put into this project, but from following various keyboard customisation efforts which have all failed due to the depth constraint have concluded that input customisation is not something that Framework design really lends itself to. I cannot help but think the forthcoming MNT Reform Next would be a better candidate for such projects. Whilst less bulky than the traditional design, the depth of the keyboard is sufficient for mechanical switches.

It is not shown with a pointing stick but is still in the prototyping stages, so there is a possibility such a feature might be added at this stage if enough people demand it.

The Reform products are already discussed on the forum here and here.

2 Likes

Thanks David, MNT Reform Next looks great!

2 Likes

Yeah, the MNT Reforms are pretty awesome, although for myself I’m willing to make a few compromises for a more streamlined package like Framework offers, rather than something quite so chunky. Although they do have the better part of the 90s sturdy laptop look, rather than the 00s cheap crap consumer look.

2 Likes

Upthread I worked out some of the details needed to shim the hinge to allow more height and I think it’s reasonable. Agreed that the depth constraints are very challenging but I think there’s a reasonable way around that.

1 Like

Board arrived and RP2040 works (after a little bit of resoldering the USB-C connector, which wasn’t assembled quite flush). I’ve got the basic matrix mapped out with the help of a little circuit python script running on the rp2040. The next step is to figure out the LEDs and the trackpoint.

9 Likes

Making decent progress on the pinout:

For some reason I can’t figure out how the FnLn, Mute, MicMute, and CapsLock LEDs are driven. The diode checker on my multimeter doesn’t show any obvious suspects, and driving the unassigned pins high or low doesn’t do anything. :frowning:

2 Likes

If you can find the schematic for the laptop it goes into things like this get a lot easier

Edit: I did find a jaguar 2 schematic floathing around on the internet but the keyboard connector on that thing is like 45 pins not just 20 so not sure I got that right.

1 Like

So referencing back this, I’d REALLY appreciate it if you’d also evaluate if a standard pop-rivet size can be used as well. Some of us have the tool, not that it’s very expensive, and could use those as well. Or possibly make the interior threaded, and use some wide headed small screws? Ideally with some threadlocker of course.

This was good advice and I did find the schematic online after some digging. It turns out they are active low, but there’s a necessary 3.3V power connection I hadn’t previously identified. Anyway, I understand the purpose of all the pins now, it’s just a matter of building an appropriate QMK against my prototype – and then probably doing a rev 2 of my board with everything neat and tidy (and an MCP23017 I/O expander to handle the 16 DRV lines). Maybe I’ll try to include the appropriate pogo pin connector for the Framework 16 Input Module, although without better docs on the exact mechanical specs, I can’t pretend that it would drop in and Just Work. As mentioned above, with the built-in mouse buttons, the X1 Carbon Gen 10 keyboard exceeds the height of the keyboard module by 21mm, so this would be a “double height” replacement that would replace the touchpad module as well – and the touchpad module specs haven’t been published yet. But with a pogo pin connector maybe I’ll qualify for the Input Module developer program. :slight_smile:

(What would actually be most helpful is a STEP file of the entire chassis top, minus the modules. I don’t need assemblies or details, just the location of any protrusions, etc, so I can slot in my own design in CAD and check for intersections, or print out a mock up and test fit things.)

4 Likes

This entire thread excites me, I’ll be keeping an eye on it

1 Like

I have very long ago outsourced storing my knowledge to the Internet :slight_smile: so I put trackpoint protocol “chx_” into Kagi and yeah I did post the protocol a few years ago: it’s PS/2.

https://reddit.com/r/thinkpad/comments/p4i52h/til_to_this_day_trackpoint_is_a_ps2_mouse/ links to IBM TPPS/2 TrackPoint which has a short list of ThinkPads using ps/2:ibm-000a-tpps-2-trackpoint.

1 Like

It’s a PS/2 mouse with some IBM extensions, apparently. The ones which report TPPS/2 TrackPoint anecdotally behave much better than 3rd party replacement keyboards which sometimes have trackpoints which report as just “Generic PS/2 Mouse”. I haven’t dug into the details to figure out why that is.

1 Like

Looking at https://github.com/torvalds/linux/blob/7ed2632ec7d72e926b9e8bcc9ad1bb0cd37274bf/drivers/input/mouse/trackpoint.c and knowing my beloved little red nub, that’s because of the inertia settings in there. That’s what makes a TrackPoint more than a pointing stick: the negative inertia.

1 Like

This is an image from the framework website, but copying it here because it’s a very clear picture of the space we’re working with on the FW16. Any “too tall” keyboard (like the X1 Carbon I’m working with) needs to navigate the row of pogo pins running across the center of the usable space, as well as the white brackets on the sides. On the other hand, just above that is some extra depth that could be exploited for your driver chips, FPC, etc.

In another thread, @Josh_Cook mentioned a plan to create a facsimile of the complete upper deck of the FW16. That would be super-useful for Input Module developers, even if it was just a STEP or STL file we could 3d-print as a mockup or import into CAD.

2 Likes

While I’m uploading screenshots, here are some clear pictures of the FW13 hinge assembly discussed upthread, screencapped from this iFixit video.

It looks like I misidentified the new piece which would need to be fabricated: it would be these:


I think they still ought to be able to be 3d printed in metal with altered dimensions for a not-unreasonable cost. It would be the flat part between the “curl” and the “bend” that would need to be a few millimeters longer, depending on how much clearance your dream keyboard/trackpoint required. Some alteration of the bezel might be required, and you’d probably need a matching spacer at the top of the frame for the screen to rest on when closed.

2 Likes

Corresponding pictures from the iFixit framework 16 review:

Not quite as clear as the closeups in the FW13 video, but it seems like there are two places where extra millimeters might be added, marked with the red arrows, and in fact it might be possible just to put a flat shim underneath the hinge at the location of the blue arrow which would be Very Easy Indeed if true.
image

EDIT: the hinges are already in the Framework store: Framework – nice pictures there; I’m hoping I’m right about a flat spacer being all that’s required. They are/will be also selling the midplate for $99 which would one way to “mock up the top surface”, although a bit more expensive than a STEP model would be. :slight_smile:

(@nrp if you had an extra refurb or not-consumer-quality midplate lying around, I’d love to borrow it for test fits!)

3 Likes

Why 3D print an entire new part? We have the specs on the screws, get a matching spacer machined (or printed) and get new screws to match the new spacer depth. Goes underneath the hinge to add a bit of height from the bottom of the chassis. Only concern would be the length of the cable to the monitor, but I suspect a couple of millimeters might be just fine. Would definitely need some care and checking tho.

Probably add some appropriate thickness rubber bumpers for the top edge of the monitor for when it’s closed to be approximately flat.

We should distinguish between talking about FW13 mods and FW16 mods here. I agree it looks like a simple spacer will be enough for the FW16. For the FW13 the geometry is a little more complicated: on the display side the hinge sits behind the screen, so you can’t just add a simple spacer “underneath” without pushing out the screen as well. And on the FW13 the “mainboard side” of the hinge lies parallel to the top surface, so you likely can’t add a shim there without making room above it somehow. Given that 3d printing costs are roughly proportional to volume, not complexity, it’s actually cheaper to replace a “small but complicated” piece like the hinge than a “large but simple” piece like the top surface. On the other hand, there’s a spring somewhere in the FW13 hinge (I can’t quite see where), and that could complicate replacing “just a piece of it”. YMMV though, especially if you’re inclined toward hand-crafting pieces rather than 3d printing; I’m just throwing out ideas for discussion at this point. I don’t have a FW13 (I’m in club FW16) so I don’t have a particular dog in that race.

3 Likes

Ah, I see. Wasn’t paying too much attention to that.

But yeah, I’m a FW16 Batch 12 myself, so a ways to go. But definitely wanting this with interest.

Hmm…I just realized, UltimateHackingKeyboard has a trackpoint module, using it as we speak actually. I wonder if I could mod that and have it in place of, or next to, the trackpad. Or keyboard. Hmmm… Future project after I get my FW.

Or maybe utilize some of their designs to put together a thin mechanical keyboard with a trackpoint.

2 Likes