Why changing keyboard?
Long time ago I was fan of Dell, but at some point in time where panoramic displays started appearing in laptops, Dell started to lag behind. Size of laptops also increased, so 14″ were no longer small one. Meantime resolution also dropped, so I could only dream about what I had earlier: small 14″ compact laptop with display resolution 1600×1200 and possibility to insert 2 batteries. About the same time I’ve changed company I worked for and I’ve got brand new tiny Lenovo ThinkPad X61s 12″ with 4:3 display (resolution wasn’t great, but I got used to it). I also needed to commute 1-2 times a week with it, so I started to love it for it’s size and weight 🙂 When X61s got old (and slow for my then-current requirements) I bought for myself next in line at still reasonable price: ThinkPad X201. After about 2 years prices of X220 and X230 dropped to level of X201, so I made another switch. This time to X220, not to X230 as former have still classic keyboard with lot of useful keys in right place.
Meantime, I noted that X220 and X230 are almost the same laptops. Main difference is cpu and of course keyboard with different layout. I also found some X220i with newer keyboard, so I started thinking that maybe there is a possibility to replace keyboard between models. After some digging I found a discussion on reddit that it is really possible, but not as straightforward as I expected. It involved a bios modification and direct programming of memory chip. I ordered from China simple programmer based on CH340 chip and I forgot about it for few months.
I started watching auctions for every new ThinkPad X230 and finally I found one with good condition at very reasonable price (~500zł/$150). New problem arose: new or even used keyboard from X220 cost ~$35, plus palmrest another $15, so ‘upgrade kit’ at price 1/3 of laptop value was a little too expensive. Another month of checking new auctions every morning eventually payed off: ~$30 for keyboard, palmrest and as bonus I’ve got good motherboard for X220, wifi card and Windows sticker 🙂
During all these months people doing this mod made huge progress, everything was documented (http://www.thinkwiki.org/wiki/Install_Classic_Keyboard_on_xx30_Series_ThinkPads) and EC firmware upgrade procedure was hacked, to there is no need for programmers – it’s easy now as casual bios upgrade.
The mod – hardware part
In ThinkWiki you could find 2 ways of making this mod:
- Modify keyboard and replace it with palmrest
- Modify keyboard and hack it physically to fit with original palmrest
I chose first option because is reversible. In second option you need to cut/file and bend some parts of keyboard.
Ok, keyboard to modify:
First, I needed to isolate 3 contacts on connector inside keyboard, because it would make a short circuit in X230.
At the beginning it’s good to remove plastic panel on top of power and volume buttons. It’s best to apply little force toward center of keyboard and pry from outside to lift it.
Then unscrew two screws holding elastic pcb on the back of keyboard:
Then go back to front of keyboard and remove bar on the other side:
Then remove elastic pcb from connector. I used sharp knife to pry it a little, then flat and long tweezers to lift it more:
When connector is free, it’s time to isolate 3 pins as described on ThinkWiki. I used kapton tape to do it. I tried to make strip of tape only a little wider that all 3 contacts as I read that some people had sometimes problems after isolating pins using tape. This elastic pcb is pushed to contacts on second pcb and it should have some room to bend to get good contacts for pins directly near the kapton tape.
It’s time to put it back, once again I used knife to make some room:
Now, put this part together and secure using screws, but didn’t put plastic cover yet because there is another small difference between X220 and X230:
X230 don’t have a notch in keyboard bezel, so there are 3 options: make the same notch on X230, replace whole bezel (it involves much disassebly, disconnecting antennas, lcd connectors etc) or remove something in keyboard which goes into this place. I think it’s better to modify keyboard once again:-)
At the beginning I thought that it would be easy to remove it using sharp knife, but plastic is hard and it took me more time than I expected. It’s definitely better to use Dremel-like tool to sand it down.
Just put plastic cover back and keyboard is ready.
If you are owner of X220/X230 you should have somewhere “Hardware Maintenance Manual” with precise description which screws are needed to remove and how to replace keyboard and palmrest. I’ll skip this step and show what I’ve got:
The mod – software
Right now I have all hardware done, but not all keys are working as expected. Software of Embedded Controller (EC) should be modified to get all keys working. Thinkwiki describes this step in old and complicated way, but if you follow directly to https://github.com/hamishcoleman/thinkpad-ec, it would be very easy (if you are using Linux 🙂 ).
I found that thinpad-ec supported bios version 2.66, but my laptop had already 2.70 and downgrade would be problematic. Lucky for me, I found this issue and comment https://github.com/hamishcoleman/thinkpad-ec/issues/55#issuecomment-338087917 and I did search/replace as suggested. On Linux building was as easy as pie – script downloads by itself correct version of bios file, make necessary modifications and generate ready to use image. Then I put it on usb stick (image is only about 30MB, so even very old stick is good for it), booted, flashed, rebooted and everything works as in old good X220 🙂
Since this commit flashing 2.70 it’s even easier 🙂
Good luck with your modding 🙂