Difference between revisions of "Install Classic Keyboard on xx30 Series ThinkPads"
(→Future Work) |
(→Steps to patch your Firmware) |
||
Line 239: | Line 239: | ||
# get the latest Lenovo update ISO image for your laptop (See links below) | # get the latest Lenovo update ISO image for your laptop (See links below) | ||
− | # apply the ISO patch ( | + | # apply the ISO patch (from the links below) for your specific firmware file (See the section below for a discussion on how to do this) |
# put the updated ISO image onto a CDROM and boot it, you will be prompted to flash your firmware | # put the updated ISO image onto a CDROM and boot it, you will be prompted to flash your firmware | ||
Line 259: | Line 259: | ||
| x230t || [https://download.lenovo.com/pccbbs/mobiles/gcuj24us.iso gcuj24us.iso] || [https://gist.github.com/hamishcoleman/3b91d0c79c0908a3492c7c615d6a2870] || G2HT35WW || untested | | x230t || [https://download.lenovo.com/pccbbs/mobiles/gcuj24us.iso gcuj24us.iso] || [https://gist.github.com/hamishcoleman/3b91d0c79c0908a3492c7c615d6a2870] || G2HT35WW || untested | ||
|} | |} | ||
+ | |||
+ | ==== How to apply the patch ==== | ||
+ | The ISO patches linked above are text files with hexdumps showing the diff between the original and the patched version of the file. They can actually be applied by hand using a hex editor, but they are a little large to make that the expected method. | ||
+ | |||
+ | Currently, using the hexpatch.pl tool from the git repo is the simplest way to apply the patch. This tool is a small perl script that is run like this: <pre>hexpatch.pl binaryfile patchfile</pre> | ||
+ | |||
+ | Unfortunately, if you are running Windows, this will require you to have installed a working perl environment. | ||
+ | |||
+ | If you are running Linux, you can even just use the git repo to build the patched ISO for you: | ||
+ | <pre> | ||
+ | git clone https://github.com/hamishcoleman/thinkpad-ec | ||
+ | cd thinkpad-ec | ||
+ | make list_iso | ||
+ | # choose the right iso for your laptop from the list | ||
+ | make xxxxxxxx.iso | ||
+ | </pre> | ||
=== Future Work === | === Future Work === |
Revision as of 03:42, 19 May 2016
The Lenovo Thinkpad xx30 series (T430, X230, T530) was the first generation to use chiclet style keys. The keys generally feel the same in regards to actuation, but they use a new "chiclet" style shape, and the new 6-row layout is missing keys compared to the 7-row layout used on the T420. (Comparison: T430 | T420)
Many ThinkPad fans end up recommending the xx20 series (T420, X220, T520), because they were the last Thinkpads to feature the classic keyboard. However, the xx30 series uses Intel Ivy Bridge processors, with greater power savings and the vastly improved Intel HD Graphics 4000 GPU.
Since the xx20 classic keyboards fit into the xx30 chassis, you can have your cake, and eat it, too!
This guide will explain exactly how to replace your xx30's keyboard with an xx20 Classic keyboard. (Personally, I used a T410/T410p keyboard, but the T420/X220 keyboards share the same FRU and are known to work as well.)
Please experiment, and if you get it working, feel free to email me.
Contents
Required Components
A compatible ThinkPad
The disassembly process below is designed for the T430. The rest of the xx30 series (X230, T530, W530, etc.) use the same T410/T420 keyboard, but the disassembly process will differ, so check the Lenovo Hardware Maintenence Manual for those.
I will only help you with issues if you're using a T430, because that's all I have experience with.
The T440 is not supported, since the chassis, palmrest, touchpad and Trackpoint keys were completely redesigned. Thus, there is no room for the lip on the bottom of the T410/T430 keyboard that houses the TrackPoint's clickers.
A compatible keyboard
FRU | 45N2071 |
---|---|
approx. cost | $45 + $4.99 shipping (Amazon) |
suppliers | IBM/Laptop Parts Plus (USA) |
I used the T410/T420 U.S. English keyboard, model number 45N2071. Please be sure to look at the part numbers here in order to assure you buy the right region-specific keyboard.
Use the first model number listed - for example, the first model number for the Polish region is 45N2092, NOT 45N2162. If you use the second or third model numbers, you'll get the correct region keyboard, but it will be made by a different manufacturer, and will use different key switches.
The T400 keyboard won't work. It fits to a different footprint in the chassis, has different screw holes, and it's overlay keys (Mute, Power) lack LEDs. The additional power being sent to the power/mute keys in order to power the LED would go nowhere. The feedback might actually cause an error.
Warning
Pinout
xx20/xx30 keyboard pinouts are slightly different, so first thing you need to do is to isolate pins #25 and #29 (grab a schematic to see where they are). The reason for it is that in xx30 keyboard these pins are separated, but in xx20 one they are connected all together, shorting VCC5M_KBD (pin #25) to ground through the keyboard cable. I disassembled the keyboard and covered #25, #27 and #29 with adhesive tape (#27 is redundant since it's connected directly to ground on the motherboard). However, since keyboard is not quite designed to be disassembled, you may cut corresponding traces in the keyboard cable or rip pins from the connector - choose what you like more.
Key Functionality
Please note that after installing the keyboard hardware it will not be perfect - unless you also re-flash the Embedded Controller firmware, some keys are not detected at all, others have different functions and all Fn commands are the original ones (listed on the T430 keyboard) instead of those shown on the T420 keyboard.
- The T410's keyboard is printed to have Fn+PageUp activate the Thinklight.
- However, because this action is actually bound to Fn+Space on the T430 keyboard, you will need to press Fn+Space to activate the ThinkLight after installing the T410 keyboard.
- Fn+F8 does not toggle the TrackPoint/touchpad input, it actually dims the brightness.
- Fn+F4 makes the computer sleep, as that is the combo on both keyboards.
Re-flashing the Embedded Controller
It is possible to modify the Embedded Controller to enable all these keys and switch (most of) the Fn commands around. However, it is important to be aware that flashing the Embedded Controller is a critical process and if something goes wrong, you could end up with a brick instead of a laptop.
On a more positive note, during the development of these modifications, no x230 laptops were bricked and there were never any problems or failures.
Keymap Table
A full table of keys and their compatibility is listed below.
DNF means Does Not Function.
Key | Function after install | Function with new firmware | Notes | |
---|---|---|---|---|
A-Z | A-Z | A-Z | ||
0-9 | 0-9 | 0-9 | ||
PrtScr/SysRq | DNF | PrtScr/SysRq | The Menu Key functions as PrtScr | |
ScrLk/NumLk | DNF | ScrLk/NumLk | ||
Pause/Break | DNF | Pause/Break | ||
Insert | DNF | Insert | Can be rebound to a combo if needed | |
Delete | Home | Delete | Can be rebound to Delete using SharpKeys | |
Home | DNF | Home | Can be rebound to a combo if needed | |
End | End | End | ||
PgUp | Delete | PgUp | Can be rebound to PgUp using SharpKeys | |
PgDown | Insert | PgDown | Can be rebound to PgDown using SharpKeys | |
F1-F9 | F1-F9 | F1-F9 | ||
F10 | DNF | F10 | Can be rebound to a combo if needed, but will never work in the BIOS | |
F11-F12 | F11-F12 | F11-F12 | ||
Esc | Esc | Esc | ||
Tilde | Tilde | Tilde | ||
Tab | Tab | Tab | ||
CapsLk | CapsLk | CapsLk | The T410's LED indicator does not work - uses the T430's built-in onscreen indicator. The new firmware also does not fix the indicator light | |
R&L Shift | R&L Shift | R&L Shift | ||
Fn | Fn | Fn | The BIOS LCtrl & Fn swap does work (The swap worked when tested with the new firmware) | |
R&L Ctrl | R&L Ctrl | R&L Ctrl | The BIOS LCtrl & Fn swap does work (The swap worked when tested with the new firmware) | |
R&L Windows | R&L Windows | R&L Windows | ||
R&L Alt | R&L Alt | R&L Alt | ||
Space | Space | Space | ||
Menu | PrtScr | Menu | This key is actually PrtScr on the T430 keyboard, and functions as such when the T410 keyboard is installed. Because of this, there is no Menu key. For me, it appears that this causes the Menu Key to turn on and off at will. Please see this section for more detail. | |
PgLeft | PgUp | PgLeft | Can be rebound to PgLeft using SharpKeys | |
PgRight | PgDown | PgRight | Can be rebound to PgRight using SharpKeys | |
Enter | Enter | Enter | ||
Backspace | Backspace | Backspace | ||
Punctuation | Punctuation | Punctuation | Too excessive to list, but all work normally | |
Power/Mute/MicMute/VolUp/VolDown/ThinkVantage | All work | All work | All of the overlay keys work, as well as their LEDs | |
TrackPoint/left/middle/right | All work | All work | The TrackPoint works perfectly on the X230. It should work on the T430, but wasn't tested; the original author's T430 had soda spilled on it, shorting out his TrackPoint socket. | |
Fn+F3 (Lock Screen) | Labelled as "Battery", works | Does not Work | ||
Fn+F4 (Sleep) | Works the same | Works the same | ||
Fn+F5 (Wifi) | Works the same | Works the same | ||
Fn+F6 (Camera/Audio) | Works the same | Works the same | ||
Fn+F7 (Display Switch) | Works the same | Works the same | ||
Fn+F8 (Dim) | Labelled as "Mouse Switch", but dims | Fn+F8 now works as Mouse Switch | ||
Fn+F9 (Brighten) | Unlabelled, but brightens | Fn+F9 now does nothing | ||
Fn+F10 (Prev track) | Unlabelled, but works | Fn+F10 now does nothing | ||
Fn+F11 (Pause) | Unlabelled, but works | Fn+F11 now does nothing | ||
Fn+F12 (Next track) | Labelled as "Hibernate", does nothing | does nothing | It is theoretically possible that this key could be made to work. Fr technical reasons, it was considered risky to make this change - and hopefully a little used key. | |
Fn+Home | DNF | Works as Brighten | ||
Fn+End | DNF | Works as Dim | ||
Fn+PgUp | DNF | Works as Thinklight | ||
Fn+Left | DNF | Works as Prev Track | ||
Fn+Down | DNF | Works as Pause | ||
Fn+Right | DNF | Works as Next Track | ||
Fn+Up | DNF | Works as Stop |
The replacement (T430)
Removing the old keyboard
Removing the old keyboard will require you to remove the memory module cover (RAM cover), after which you must unscrew two long screws above and below the mSATA slot. From there, you just need to push the keyboard up, and remove it from its place. You should follow the official instructions in order to do this.
Method 1: Replace the xx30 Palmrest with a xx20 Palmrest
The least invasive method is to replace the entire xx30 (T430/X230/W530) Palmrest with the xx20 (T420/X220/W520) Palmrest. The palmrest costs about $10-20 on eBay, search for these FRU numbers:
- T420 Palmrest
- No fingerprint reader - 04W1371, 04W1372
- X220 Palmrest
- No fingerprint reader - 04W1411
- With fingerprint reader - 04W1410
It's pretty simple:
- Remove and unplug the original palmrest.
- Install and plug in the xx20 palmrest.
- Then insert the keyboard; it should fit perfectly.
Method 2: Sand down the nubs to fit in the T430 Palmrest
If you're a cheapskate, you can modify the keyboard to fit your T430 palmrest instead.
Along the bottom edge of the T430 keyboard are four small nubs that fit into place along four idents in the chassis. These nubs help secure the keyboard into place, and make sure it is aligned correctly. The classic keyboard, however, has five nubs - and they're much thicker. Whereas the T430 nubs are only extensions of the metal plate covering the back of the keyboard, the classic nubs actually extend upwards and fit the entire thickness of the keyboard. The classic's fifth nub is located under the TrackPoint keys.
I was able to flatten these nubs enough that my classic keyboard slides into place, although it is a very ugly seam.
An alternative method is to clip off the nub near the TrackPoint key, and sand away the extra thickness off the other four nubs using a $20 Dremel. Then, use a black Sharpie to color the exposed metal.
Installing the new keyboard
After the nubs have been taken care of, the rest of the keyboard installation should be very simple. Just follow the instructions from the Lenovo official guide in reverse, being sure to bend the keyboard connector back the way it was done on the T430's, and NOT twisting it to match. You'll know your keyboard was installed correctly when you can actually install both screws completely.
Re-Flashing the Embedded Controller
It is now possible to modify the firmware on your Thinkpad x230 (and it seems several other models, but untested) to correctly use the classic keyboard.
- Source of the firmware decryption/checksum breakthrough: http://www.zmatt.net/unlocking-my-lenovo-laptop-part-1/
- git repository with patches https://github.com/hamishcoleman/thinkpad-ec
- the thread on the thinkpads forum http://forum.thinkpads.com/viewtopic.php?f=69&t=120776
(I'm looking for for people to repeat this process - and help improve it, or test models that I do not have access to. You can get a message to Hamish either by adding a message to the thread on the thinkpads forum or by emailing me)
The capslock light is missing and the Fn+F3, Fn+F12 and Fn+Space key combinations do not work, however it is perfectly usable like this.
Steps to patch your Firmware
To repeat this yourself, follow these steps:
- get the latest Lenovo update ISO image for your laptop (See links below)
- apply the ISO patch (from the links below) for your specific firmware file (See the section below for a discussion on how to do this)
- put the updated ISO image onto a CDROM and boot it, you will be prompted to flash your firmware
If your laptop does not have an ISO patch link in this table, see below for the older instructions
Model | Lenovo ISO | ISO patch | EC Firmware Version | Notes |
---|---|---|---|---|
t430 | g1uj38us.iso | [1] | G1HT35WW | untested |
t430s | g7uj18us.iso | [2] | G7HT39WW | untested |
t530 and t530i | g4uj30us.iso | [3] | G4HT39WW | untested |
w530 | g5uj28us.iso | [4] | G4HT39WW | tested and working |
x230 | g2uj23us.iso | [5] | G2HT35WW | tested and working |
x230t | gcuj24us.iso | [6] | G2HT35WW | untested |
How to apply the patch
The ISO patches linked above are text files with hexdumps showing the diff between the original and the patched version of the file. They can actually be applied by hand using a hex editor, but they are a little large to make that the expected method.
Currently, using the hexpatch.pl tool from the git repo is the simplest way to apply the patch. This tool is a small perl script that is run like this:
hexpatch.pl binaryfile patchfile
Unfortunately, if you are running Windows, this will require you to have installed a working perl environment.
If you are running Linux, you can even just use the git repo to build the patched ISO for you:
git clone https://github.com/hamishcoleman/thinkpad-ec cd thinkpad-ec make list_iso # choose the right iso for your laptop from the list make xxxxxxxx.iso
Future Work
I have worked on streamlining the process of applying the patches, but am stumped looking for a simple Patching process for Windows users (and am unwilling to simply distribute the Lenovo copyrighted firmware in its entirety). So, I will be continuing to think about how to streamline the patching process.
While it is theoretically possible to fix the remaining one or two Fn-X key combos, they are not needed for most people, so this is a low priority.
Handling mismatched keys in software
If you dont want to re-flash the EC firmware, you can still use the keyboard reasonably well, however not all of the keys work correctly, as detailed in the Keymap Table. However, if a key performs an action, that action can be rebound on a system-wide level to any other action.
Linux
This can be done using udev keymap. I don't use Linux, and so I won't provide instructions for that here, but that page should give all the information you need to get it working, along with the Keymap Table's stock remaps. Note that keys that are labelled DNF will never work - this is a BIOS-level issue and no operating system tweaks will fix it.
Windows
On Windows, we can use a nifty program called SharpKeys to rebind keys. The program is creates a registry entry in order to remap. Despite the fact that it is portable and does not run upon starting the machine, I suggest you keep the application handy in case Windows overwrites the remap key - this has only happened a few times for me while tweaking things, but it's enough reason to keep the 500kb application installed.
Once you've installed SharpKeys, add four remaps corresponding to the ones on the right, and then click "Write to Registry". Log out of Windows, and when you log back in, your PgUp, Delete, and PgDown keys should be functioning as normal.
Menu Key
The last remap in SharpKeys, Unknown > Turn Key Off, corresponds to disabling the Menu key (key 0x0075). Without this entry, my keyboard was making all left clicks act as though the Menu key was being held down. You may not need this entry, but if you do, be sure to add it. I believe this stems from the fact that there is no Menu Key on the T430 keyboard, but I'm not sure why it was constantly signalling itself as on.
Conclusion
While some keys won't work, it is completely possible to transplant a T410/T420 keyboard into a T430 and use it almost as if nothing ever changed. Now you too can have an Ivy Bridge ThinkPad with a classic keyboard.
If this guide helped you at all, feel free to send me an email, and if you have any comments or criticism, be sure to send that, too! I'll try and keep this guide up to date as best I can in order to support users looking to make the switch.