Difference between revisions of "Install Classic Keyboard on xx30 Series ThinkPads"

From ThinkWiki
Jump to: navigation, search
(Experimental X230 Embedded Controller Mod)
m (Method 1 (X230 only): Replace the X230 palmrest with the X220 one)
(35 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[File:T430newkeyboard.jpg|thumb|floatright|300px|You can have your cake, and eat it, too!]]
 
[[File:T430newkeyboard.jpg|thumb|floatright|300px|You can have your cake, and eat it, too!]]
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: [http://images.anandtech.com/galleries/1966/T430s_hero_01.jpg T430] | [http://www.accomputerwarehouse.com/images/products/4159_3.jpg T420])
+
The Lenovo Thinkpad xx30 series (T430, X230, T530 etc.) was the first generation to use chiclet style keys. While many prefer the classic keyboards, the general consensus is that the chiclet-style one doesn't feel far off. It does however have a different layout and is missing some keys. It does have a possibility of being backlit though, which the classic one does not. (Comparison: [http://images.anandtech.com/galleries/1966/T430s_hero_01.jpg T430] | [http://www.accomputerwarehouse.com/images/products/4159_3.jpg 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.
+
It is possible to easily fit the classic keyboard into xx30 series chassis.
  
Since the xx20 classic keyboards fit into the xx30 chassis, you can have your cake, and eat it, too!
+
All keyboards from the xx20 series are compatible. [https://pcsupport.lenovo.com/us/en/solutions/pd010629 Refer here] for the list of suitable FRUs. The first columns is ALPS keyboard (generally regarded as the worst), the second row is Chicony (regarded as good) and the third row is NMB (regarded at the best). The differences between Chicony and NMB are most likely minor.
 +
{{NOTE|There are some FRUs that are not on the list, but still are genuine xx20 keyboards. If you can find some forum posts in a search engine with that FRU, it's most likely legit.}}
  
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 should work as well.)
+
==Warning==
 
 
Please experiment, and if you get it working, feel free to [mailto:tyclief@gmail.com email me].<br/>
 
 
 
==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.
+
===Pinout===
  
====A compatible keyboard====
+
xx20 and xx30 keyboard pinouts are slightly different, so first thing you need to do is to isolate pins #25 and #29 (grab a [http://plan9.stanleylieber.com/hardware/thinkpad/x230/x230.schematics.pdf 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). Plastic cover on the top can be easily removed, allowing to access internal keyboard connector.
  
{| class="wikitable floatright"
+
{|style="margin: 0 auto;"
|+ '''ThinkPad T410/T420 Keyboard'''
+
| [[File:X230-kb-mod-con-1.png|thumb|300px|X220 keyboard internal connector]]
|-
+
| [[File:X230-kb-mod-con-2.png|thumb|300px|X220 keyboard internal connector after mod]]
! FRU
 
| [http://support.lenovo.com/en_US/product-and-parts/detail.page?&LegacyDocID=MIGR-74569 45N2071]
 
|-
 
! approx. cost
 
| style="width: 220px;" | $45 + $4.99 shipping (Amazon)
 
|-
 
! suppliers
 
| {{AMZN|B004OP2CVM|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 [http://support.lenovo.com/en_US/product-and-parts/detail.page?&LegacyDocID=MIGR-74569 here] in order to assure you buy the right region-specific keyboard.
+
{{WARN|Ignoring this thing will cause keyboard overheating and damage.}}
  
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.  
+
{{NOTE|Some people have done the keyboard replacement without this protective mod - and not reported any issues, even after years of use.
  
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==
+
Further investigations on three keyboards shows that the over-current condition described above quickly lead to the same failure each time - a small burnout on the keyboard just after the retaining bar (see circled area on photo below).  This burnout has had the effect of removing the short circuit and stopping any other issues. [[File:X220_keyboard_burn.jpg|thumb|300px|X220 keyboard, showing burn mark]]}}
  
 
===Key Functionality===
 
===Key Functionality===
  
Please note that the installation is not perfect. Since the BIOS interprets keypresses, some keys are not detected at all, others have different functions; and all Fn commands are the ones listed on the T430 keyboard.  
+
Unless you also reflash the Embedded Controller firmware, some keys won't be detected at all and others will have different functions. All Fn commands will be the original ones (listed on the xx30 keyboard) instead of those shown on the xx20 keyboard.
  
* The T410's keyboard is printed to have Fn+PageUp activate the Thinklight.
+
For example:
** 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.  
+
* The xx20 keyboard is printed to have Fn+PageUp activate the Thinklight. However, because this action is actually bound to Fn+Space on the xx30 keyboard, you will need to press Fn+Space to activate the ThinkLight after installing the xx20 keyboard.  
 
* Fn+F8 does not toggle the TrackPoint/touchpad input, it actually dims the brightness.
 
* 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.
 
* Fn+F4 makes the computer sleep, as that is the combo on both keyboards.
  
===Possible BIOS Mod===
+
===Reflashing the Embedded Controller===
  
It should be possible to modify the BIOS to enable these keys. The T430 Japanese keyboard has 5 extra keys, and Middleton made an Fn-Ctrl swap a standard feature of his custom BIOSes in past ThinkPads. Unfortunately, nobody has attempted to make such a modification; especially since a hardware BIOS flasher is required to modify the BIOS in Ivy Bridge motherboards.
+
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 bricked 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===
 
===Keymap Table===
Line 63: Line 47:
  
 
{| class="mw-collapsible mw-collapsed wikitable"
 
{| class="mw-collapsible mw-collapsed wikitable"
! Key || Function after install || Notes
+
! Key || Function after install || Function with new firmware || Notes
 
|-
 
|-
| A-Z || A-Z ||
+
| A-Z || A-Z || A-Z ||
 
|-
 
|-
| 0-9 || 0-9 ||
+
| 0-9 || 0-9 || 0-9 ||
 
|-
 
|-
| PrtScr/SysRq || DNF || The Menu Key functions as PrtScr
+
| PrtScr/SysRq || DNF || PrtScr/SysRq || The Menu Key functions as PrtScr
 
|-
 
|-
| ScrLk/NumLk || DNF ||  
+
| ScrLk/NumLk || DNF || ScrLk/NumLk ||
 
|-
 
|-
| Pause/Break || DNF ||  
+
| Pause/Break || DNF || Pause/Break ||
 
|-
 
|-
| Insert || DNF || Can be rebound to a combo if needed
+
| Insert || DNF || Insert || Can be rebound to a combo if needed
 
|-
 
|-
| Delete || Home || Can be rebound to Delete using [[#Windows|SharpKeys]]
+
| Delete || Home || Delete || Can be rebound to Delete using [[#Windows|SharpKeys]]
 
|-
 
|-
| Home || DNF || Can be rebound to a combo if needed
+
| Home || DNF || Home || Can be rebound to a combo if needed
 
|-
 
|-
| End || End ||  
+
| End || End || End ||
 
|-
 
|-
| PgUp || Delete || Can be rebound to PgUp using [[#Windows|SharpKeys]]
+
| PgUp || Delete || PgUp || Can be rebound to PgUp using [[#Windows|SharpKeys]]
 
|-
 
|-
| PgDown || Insert || Can be rebound to PgDown using [[#Windows|SharpKeys]]
+
| PgDown || Insert || PgDown || Can be rebound to PgDown using [[#Windows|SharpKeys]]
 
|-
 
|-
| F1-F9 || F1-F9 ||  
+
| F1-F9 || F1-F9 || F1-F9 ||
 
|-
 
|-
| F10 || DNF || Can be rebound to a combo if needed, but will never work in the BIOS
+
| F10 || DNF || F10 || Can be rebound to a combo if needed, but will never work in the BIOS
 
|-
 
|-
| F11-F12 || F11-F12 ||  
+
| F11-F12 || F11-F12 || F11-F12 ||
 
|-
 
|-
| Esc || Esc ||  
+
| Esc || Esc || Esc ||
 
|-
 
|-
| Tilde || Tilde ||  
+
| Tilde || Tilde || Tilde ||
 
|-
 
|-
| Tab || Tab ||  
+
| Tab || Tab || Tab ||
 
|-
 
|-
| CapsLk || CapsLk || The T410's LED indicator does not work - uses the T430's built-in onscreen indicator
+
| 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 || R&L Shift || R&L Shift ||  
 
|-
 
|-
| Fn || Fn || The BIOS LCtrl & Fn swap does work
+
| 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 || The BIOS LCtrl & Fn swap does work
+
| 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 Windows || R&L Windows ||  
 
|-
 
|-
| R&L Alt || R&L Alt ||  
+
| R&L Alt || R&L Alt || R&L Alt ||  
 
|-
 
|-
| Space || Space ||
+
| Space || Space || Space ||
 
|-
 
|-
| Menu || PrtScr || 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 [[#Menu Key|this section]] for more detail.
+
| 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 [[#Menu Key|this section]] for more detail.
 
|-
 
|-
| PgLeft || PgUp || Can be rebound to PgLeft using [[#Windows|SharpKeys]]
+
| PgLeft || PgUp || PgLeft || Can be rebound to PgLeft using [[#Windows|SharpKeys]]
 
|-
 
|-
| PgRight || PgDown || Can be rebound to PgRight using [[#Windows|SharpKeys]]
+
| PgRight || PgDown || PgRight || Can be rebound to PgRight using [[#Windows|SharpKeys]]
 
|-
 
|-
| Enter || Enter ||  
+
| Enter || Enter || Enter ||
 
|-
 
|-
| Backspace || Backspace ||  
+
| Backspace || Backspace || Backspace ||  
 
|-
 
|-
| Punctuation || Punctuation || Too excessive to list, but all work normally
+
| Punctuation || Punctuation || Punctuation || Too excessive to list, but all work normally
 
|-
 
|-
| Power/Mute/MicMute/VolUp/VolDown/ThinkVantage || All work || All of the overlay keys work, as well as their LEDs
+
| 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 || 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. ||
+
| 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)==
+
==The replacement==
 
 
===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 [http://support.lenovo.com/en_US/downloads/detail.page?DocID=PD023531 official instructions] in order to do this.
+
=== Method 1 (X230 only): Replace the X230 palmrest with the X220 one===
  
<gallery mode="nolines">
+
The least invasive method is to replace the entire X230 palmrest with the X220 palmrest. The palmrest costs about $10-20 on eBay, search for these FRU numbers:
Image:T430memorycover.jpg|The memory cover
 
Image:T430keyboardscrews.jpg|Removing the keyboard screws
 
Image:T430keyboardremove.jpg|Removing the T430 keyboard
 
</gallery>
 
  
=== Method 1: Replace the xx30 Palmrest with a xx20 Palmrest ===
+
* No fingerprint reader - 04W1411
 
+
* With fingerprint reader - 04W1410
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:
 
It's pretty simple:
  
 
# Remove and unplug the original palmrest.
 
# Remove and unplug the original palmrest.
# Install and plug in the xx20 palmrest.
+
# Install and plug in the X220 palmrest, but do not screw it down.
# Then insert the keyboard; it should fit perfectly.
+
# Insert they keyboard while the palmrest is tilted slightly upwards. Then, lower both the keyboard and the palmrest into position and reinstall all the screws.
 +
## If you have removed the plastic tabs as per the image guide by lightproof, you can omit the third step. The keyboard will fit just as if it was X220.
 +
{{NOTE|One of the keyboard screws might just spin in place, since it can't reach the screw hole. In that case, just push the keyboard downwards a little bit, while turning your screwdriver at the same time.}}
  
=== Method 2: Sand down the nubs to fit in the T430 Palmrest===
+
Other xx20 palmrests do not fit the xx30 chassis properly, thus this method won't work for them.
 +
 
 +
=== Method 2: Sand down the nubs to fit in the xx30 palmrest===
 
[[File:T410keyboardnubs.jpg|thumb|left|175px|A comparison of the nubs from the T430 and T410 keyboards]]
 
[[File:T410keyboardnubs.jpg|thumb|left|175px|A comparison of the nubs from the T430 and T410 keyboards]]
 
[[File:T410trackpointnubs.jpg|thumb|floatright|175px|A comparison of the nubs from the T430 and T410 trackpoints]]
 
[[File:T410trackpointnubs.jpg|thumb|floatright|175px|A comparison of the nubs from the T430 and T410 trackpoints]]
 
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.
 
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.  
+
A solution is to cut/sand down the extra nub and flatten/sand down the remaining ones to fit into the xx30 palmrest.
  
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.
+
=== Method 3: Make the xx30 palmrest keyboard nubs holes bigger===
 +
This allows the keyboard to remain in it's original state (minus the tape on the connectors, but that can be easily reversed). Simply make the holes that are intended for the keyboard nubs bigger (both in width and height). Be careful when it comes to height, as you may simply pierce the top layer of the plastic, exposing the holes. This will most likely be less visually impressive than the 2nd method, unless you do it very precisely.
  
 
[[File:t430keyboardinstall.jpg|thumb|floatright|175px|Installing the T410 keyboard]]
 
[[File:t430keyboardinstall.jpg|thumb|floatright|175px|Installing the T410 keyboard]]
  
===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.
 
  
==Handling mismatched keys in software==
+
== Reflashing the Embedded Controller ==
Not all of the keys work correctly, as detailed in the [[#Keymap Table| Keymap Table]]. However, if a key performs an action, that action can be rebound on a system-wide level to any other action.
+
Reflashing is possible by creating a modified BIOS flashing image and then burning it onto CD or transferring onto a flash drive. Even after the flashing the remaining issues persist and are unlikely to be fixed:
===Linux===
+
* the CapsLock light is does not work
This can be done using [http://askubuntu.com/questions/69804/how-do-i-change-the-keymap-of-a-single-device-logitech-presenter 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.
+
* the Fn+F3, Fn+F12 key combinations do not work
===Windows===
 
[[File:t430sharpkeys.png|thumb|floatright|250px|Remapping with SharpKeys]]
 
On Windows, we can use a nifty program called [http://sharpkeys.codeplex.com/ 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.<br/>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====
+
Full details on how to create and apply the patch are included in the README of the git repository at https://github.com/hamishcoleman/thinkpad-ec. It is the most up-to-date source for instructions and files.
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==
+
=== Steps to patch your Firmware ===
[[File:T430masterrace.jpg|thumb|floatright|300px|The T430 master race.]]
+
It is best to use the git repository to build patched images, however the this method can also be used. Keep in mind that there shouldn't be a big version difference between your current BIOS and the BIOS from the .iso.
  
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.
+
To use the manual process, follow these steps:
  
If this guide helped you at all, feel free to [mailto:tyclief@gmail.com 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.
+
# 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 discussion below for more on this)
 +
# put the updated ISO image onto a CDROM and boot it, you will be prompted to flash your firmware
  
==Experiment: T430 Keyboard in a T420 with BIOS Mod==
+
{| class="wikitable"
 +
! Model || Lenovo ISO || ISO patch || EC Firmware Version || Notes
 +
|-
 +
| t430 || [https://download.lenovo.com/pccbbs/mobiles/g1uj38us.iso] || [https://gist.github.com/hamishcoleman/3565524b7f5cd162f911867557414d86] || G1HT35WW || tested and working
 +
|-
 +
| t430s || [https://download.lenovo.com/pccbbs/mobiles/g7uj18us.iso] || [https://gist.github.com/hamishcoleman/966896fe2f54d9eb6544b8217980f06b] || G7HT39WW || tested and working
 +
|-
 +
| t530 and t530i || [https://download.lenovo.com/pccbbs/mobiles/g4uj30us.iso] || [https://gist.github.com/hamishcoleman/6d3061b1845cf0b62e676abe750caca1] || G4HT39WW || tested and working
 +
|-
 +
| w530 || [https://download.lenovo.com/pccbbs/mobiles/g5uj28us.iso] || [https://gist.github.com/hamishcoleman/7832e6fa0fa5a63217ed175179a7038d] || G4HT39WW || tested and working
 +
|-
 +
| x230 || [https://download.lenovo.com/pccbbs/mobiles/g2uj23us.iso] || [https://gist.github.com/hamishcoleman/dc9c3d8fd3cd52aeb573e6681419be79] || G2HT35WW || tested and working
 +
|-
 +
| x230t || [https://download.lenovo.com/pccbbs/mobiles/gcuj24us.iso] || [https://gist.github.com/hamishcoleman/3b91d0c79c0908a3492c7c615d6a2870] || G2HT35WW || untested
 +
|}
  
While it would require a hardware flash, many people would probably be willing to modify their T430 BIOS to use the old keyboard layout. There is no electronic IC in the keyboard, so all keylayouts are defined in the BIOS. The key is to figure out exactly how to change the keyboard layout.
+
==== 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 - if needed - but that would be quite tedious as they are a little large.
  
The Japanese T430 keyboard has more keys than the typical T430 keyboard, yet is autodetected and works perfectly fine. Could it be possible to put in support for the T420's extra keys by registering it as a "new" keylayout? The FN and Ctrl keys could be swapped thanks to the Middleton BIOS, so it's perfectly plausible.
+
The hexpatch.pl tool from the git repo is the simplest way to apply a patch. This tool is a small perl script that is run like this: <pre>hexpatch.pl binaryfile patchfile</pre>
  
In order to work more freely (rather than struggle under a hardware BIOS flash), we can experiment the other way around: install a T430 Keyboard layout on the T420 BIOS.
+
An even better option is to use the git repo to fully automate the building of a bootable USB disk image - just read the README in the repo for the details.
  
=== Differences ===
+
==Handling mismatched keys in software==
 +
If you don't want to reflash 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| 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 [http://askubuntu.com/questions/69804/how-do-i-change-the-keymap-of-a-single-device-logitech-presenter 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===
 +
[[File:t430sharpkeys.png|thumb|floatright|250px|Remapping with SharpKeys]]
 +
On Windows, we can use a nifty program called [http://sharpkeys.codeplex.com/ 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.<br/>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.
  
There are a few differences and missing keys between the T430 Keyboard and the T420 keyboard when installed on the T420. For the most part, every single F1-F12, character, number, and symbol key is detected in the right place. However, all the function key combos will stay the same as on the T420, and there are only 4 keys representing the now missing 7th row, so here's their functions:
+
====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.
* '''Home''' - Delete key.
 
* '''End''' - End key. Still can be used as a function key to reduce the brightness.
 
* '''Insert''' - Page Down key.
 
* '''Delete''' - Page Up Key. Still works for ThinkLight function key combo.
 
* '''PrtSc''' - Context Menu key.
 
 
 
The missing keys are: PrtSc/SysRq, ScrLk/NmLk, Pause/Break, Insert, and Home.
 
 
 
In addition, for the T430 Japanese layout, as long as the keyboard layout is set to Japanese layout, every single F1-F12, character, number, and symbol key works. However, the three additional keys next to the space bar have not yet been tested.
 
 
 
== Experimental X230 Embedded Controller Mod ==
 
It is now possible to modify the firmware on your Thinkpad x230 to correctly use the x220 keyboard.  This (or a similar process) may work for other x*30 series thinkpads, but has only been tested on an x230.  For more information, you can get a message to Hamish by adding a message to the thread on the thinkpads forum [http://forum.thinkpads.com/viewtopic.php?f=69&t=120776].
 
 
 
 
 
Recently, an enterprising X230 owner wanted to use an unauthorized battery in his laptop[http://www.zmatt.net/unlocking-my-lenovo-laptop-part-1/].  As part of this, he worked out how to update the firmware running on the laptop Embedded Controller.  This is the micro-controller that scans the keyboard and sends keypress events to the rest of the system.  So, now that we can update the firmware, we can locate and patch the keyboard tables.
 
 
 
Using the tools that zmatt wrote[https://github.com/eigenmatt/mec-tools], a couple of people have been experimenting with patches for supporting the x220 keyboard (see [http://www.zmatt.net/unlocking-my-lenovo-laptop-part-3/#comment-48534] and [http://forum.thinkpads.com/viewtopic.php?f=69&t=120776])
 
 
 
Currently, the normal keyboard functions work perfectly.  The capslock light is missing and the Fn+F2, Fn+F3, Fn+F12 and Fn+Space key combinations do not work, however it is perfectly usable like this.  nitrocaster has found a workaround to fix Fn+F2 (Lock), which I have shown below.
 
 
 
=== Steps to patch your Firmware ===
 
To try this out yourself, follow these steps:
 
 
 
# get the latest EC firmware[http://support.lenovo.com/au/en/downloads/ds029188] and extract the G2ETA6WW/$01D3000.FL2 firmware file
 
# clone and compile the mec-tools[https://github.com/eigenmatt/mec-tools]
 
# using the instructions in the mec-tools, extract the mec-decrypted.bin firmware (confirm your sha1sum matches mine d70f5434ef316a66a6195651d9e231e84a2464a1)
 
# patch the keysym and live_key tables using a hex editor with the patch details below
 
# using the instructions from the mec-tools repack the firmware and reembed into the BIOS update file (my sha1sum for my updated $01D3000.FL2 file is 56dadd1633b0a983b4d29f344864a27a2b6ebcde)
 
# boot to a DOS environment and use the flash tools from the firmware update to reflash the EC firmware: <pre>dosflash /sd /ipf ec /file $01D3000.FL2</pre>
 
 
 
Patch details:
 
<pre>
 
00021660  98 f4 01 00 b0 8e 01 00  b4 8e 01 00 c0 70 c0 71  |.............p.q|
 
-00021670  c0 72 c7 73 e4 78 e5 77  c0 76 c0 00 c0 00 c0 97  |.r.s.x.w.v......|
 
-00021680  c0 00 c8 00 c0 02 c0 03  00 00 c6 3d 00 00 00 00  |...........=....|
 
-00021690  00 00 c0 00 c0 74 c0 75  00 00 00 00 00 00 00 00  |.....t.u........|
 
+00021670  c0 72 c7 73 e4 50 e5 51  c0 76 c0 77 c0 78 c0 97  |.r.s.P.Q.v.w.x..|
 
+00021680  c0 7a c8 00 c0 02 c0 03  00 00 c6 55 00 00 00 00  |.z.........U....|
 
+00021690  00 00 c0 3d c0 74 c0 75  00 00 00 00 00 00 00 00  |...=.t.u........|
 
000216a0  c0 a0 00 00 08 00 00 00  4c 16 02 00 1b 00 00 00  |........L.......|
 
 
 
00021880  69 00 00 6c 00 00 00 00  00 00 00 00 63 00 68 6a  |i..l........c.hj|
 
-00021890  00 00 00 00 00 00 00 00  79 6d 00 7a 58 00 7b 6f  |........ym.zX.{o|
 
-000218a0  00 32 46 02 20 44 01 26  7d 00 1a 7e 00 00 00 00  |.2F. D.&}..~....|
 
+00021890  00 00 00 00 00 00 00 00  7c 44 01 7d 5a 00 7e 46  |........|D.}Z.~F|
 
+000218a0  02 4f 6d 00 53 6b 00 54  58 00 59 6f 00 00 00 00  |.Om.Sk.TX.Yo....|
 
000218b0  9e 9e 00 9f 9f 00 4a 4a  00 00 00 00 b2 00 00 00  |......JJ........|
 
 
 
00021950  00 00 00 00 00 00 00 00  78 79 0e 0f 1d 74 2b 3d  |........xy...t+=|
 
-00021960  00 00 00 00 00 00 00 00  00 7b 00 9b 00 00 00 59  |.........{.....Y|
 
-00021970  00 00 00 00 00 00 00 00  50 7a 9a 99 98 97 a0 54  |........Pz.....T|
 
-00021980  00 00 00 00 00 00 00 00  4c 4b 00 00 7c 00 55 56  |........LK..|.UV|
 
-00021990  00 00 00 00 00 00 00 00  00 51 00 00 00 53 00 4f  |.........Q...S.O|
 
-000219a0  00 00 00 00 00 00 00 00  00 00 00 00 00 3c 00 3e  |.............<.>|
 
+00021960  00 00 00 00 00 00 00 00  4b 7b 00 9b 00 00 00 59  |........K{.....Y|
 
+00021970  00 00 00 00 00 00 00 00  4c 7a 9a 99 98 97 a0 54  |........Lz.....T|
 
+00021980  00 00 00 00 00 00 00 00  55 56 00 00 9c 00 89 8a  |........UV......|
 
+00021990  00 00 00 00 00 00 00 00  50 51 00 00 00 53 7e 4f  |........PQ...S~O|
 
+000219a0  00 00 00 00 00 00 00 00  00 7c 7d 00 00 3c 00 3e  |.........|}..<.>|
 
000219b0  00 00 00 00 00 00 00 00  00 00 00 2c 00 00 39 00  |...........,..9.|
 
000219c0  00 00 00 00 00 00 00 00  3a 00 00 00 00 00 40 00  |........:.....@.|
 
000219d0  00 00 00 00 00 00 00 96  00 9d 00 9e 9f 4a 3a 9c  |.............J:.|
 
000219e0  7d 7e 00 00 00 00 00 00  ff 00 7f 00 7f 00 ff 00  |}~..............|
 
-000219f0  ff 00 ff 00 ff 00 ff 00  ff 00 8a 00 ff 00 d3 00  |................|
 
-00021a00  a2 00 a0 00 48 00 41 80  fa 03 00 00 a0 97 00 00  |....H.A.........|
 
+000219f0  ff 00 ff 00 ff 00 ff 00  ff 00 8b 00 ff 00 d3 00  |................|
 
+00021a00  e3 00 a6 00 48 00 41 80  fa 03 00 00 a0 97 00 00  |....H.A.........|
 
00021a10  10 01 00 00 d8 18 02 00  e8 19 02 00 0c 1a 02 00  |................|
 
</pre>
 
 
 
The following patch can also be applied to switch Fn+F3 and Fn+F2, which effectively restores Fn+F2 to the Lock function. I'm still hoping to find another keysym mapping table before rolling this into the main patch above.
 
<pre>
 
00021668  B4 8E 01 00
 
-0002166C  C0 70 C0 71
 
-00021670  C0 72 C7 73
 
+0002166C  C0 70 C0 72
 
+00021670  C0 71 C7 73
 
00021674  E4 50 E5 51
 
</pre>
 
 
 
=== Future Work ===
 
I am continuing to search for the table that fixes the remaining four Fn-X key combinations, but all the low-hanging fruit has been taken, so I need to understand the embedded controller firmware by disassembling it.  This is taking some time.
 

Revision as of 14:33, 5 October 2018

You can have your cake, and eat it, too!

The Lenovo Thinkpad xx30 series (T430, X230, T530 etc.) was the first generation to use chiclet style keys. While many prefer the classic keyboards, the general consensus is that the chiclet-style one doesn't feel far off. It does however have a different layout and is missing some keys. It does have a possibility of being backlit though, which the classic one does not. (Comparison: T430 | T420)

It is possible to easily fit the classic keyboard into xx30 series chassis.

All keyboards from the xx20 series are compatible. Refer here for the list of suitable FRUs. The first columns is ALPS keyboard (generally regarded as the worst), the second row is Chicony (regarded as good) and the third row is NMB (regarded at the best). The differences between Chicony and NMB are most likely minor.

NOTE!
There are some FRUs that are not on the list, but still are genuine xx20 keyboards. If you can find some forum posts in a search engine with that FRU, it's most likely legit.

Warning

Pinout

xx20 and 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). Plastic cover on the top can be easily removed, allowing to access internal keyboard connector.

X220 keyboard internal connector
X220 keyboard internal connector after mod
ATTENTION!
Ignoring this thing will cause keyboard overheating and damage.
NOTE!
Some people have done the keyboard replacement without this protective mod - and not reported any issues, even after years of use.


Further investigations on three keyboards shows that the over-current condition described above quickly lead to the same failure each time - a small burnout on the keyboard just after the retaining bar (see circled area on photo below). This burnout has had the effect of removing the short circuit and stopping any other issues.
X220 keyboard, showing burn mark

Key Functionality

Unless you also reflash the Embedded Controller firmware, some keys won't be detected at all and others will have different functions. All Fn commands will be the original ones (listed on the xx30 keyboard) instead of those shown on the xx20 keyboard.

For example:

  • The xx20 keyboard is printed to have Fn+PageUp activate the Thinklight. However, because this action is actually bound to Fn+Space on the xx30 keyboard, you will need to press Fn+Space to activate the ThinkLight after installing the xx20 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.

Reflashing 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 bricked 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

Method 1 (X230 only): Replace the X230 palmrest with the X220 one

The least invasive method is to replace the entire X230 palmrest with the X220 palmrest. The palmrest costs about $10-20 on eBay, search for these FRU numbers:

  • No fingerprint reader - 04W1411
  • With fingerprint reader - 04W1410

It's pretty simple:

  1. Remove and unplug the original palmrest.
  2. Install and plug in the X220 palmrest, but do not screw it down.
  3. Insert they keyboard while the palmrest is tilted slightly upwards. Then, lower both the keyboard and the palmrest into position and reinstall all the screws.
    1. If you have removed the plastic tabs as per the image guide by lightproof, you can omit the third step. The keyboard will fit just as if it was X220.
NOTE!
One of the keyboard screws might just spin in place, since it can't reach the screw hole. In that case, just push the keyboard downwards a little bit, while turning your screwdriver at the same time.

Other xx20 palmrests do not fit the xx30 chassis properly, thus this method won't work for them.

Method 2: Sand down the nubs to fit in the xx30 palmrest

A comparison of the nubs from the T430 and T410 keyboards
A comparison of the nubs from the T430 and T410 trackpoints

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.

A solution is to cut/sand down the extra nub and flatten/sand down the remaining ones to fit into the xx30 palmrest.

Method 3: Make the xx30 palmrest keyboard nubs holes bigger

This allows the keyboard to remain in it's original state (minus the tape on the connectors, but that can be easily reversed). Simply make the holes that are intended for the keyboard nubs bigger (both in width and height). Be careful when it comes to height, as you may simply pierce the top layer of the plastic, exposing the holes. This will most likely be less visually impressive than the 2nd method, unless you do it very precisely.

Installing the T410 keyboard


Reflashing the Embedded Controller

Reflashing is possible by creating a modified BIOS flashing image and then burning it onto CD or transferring onto a flash drive. Even after the flashing the remaining issues persist and are unlikely to be fixed:

  • the CapsLock light is does not work
  • the Fn+F3, Fn+F12 key combinations do not work

Full details on how to create and apply the patch are included in the README of the git repository at https://github.com/hamishcoleman/thinkpad-ec. It is the most up-to-date source for instructions and files.

Steps to patch your Firmware

It is best to use the git repository to build patched images, however the this method can also be used. Keep in mind that there shouldn't be a big version difference between your current BIOS and the BIOS from the .iso.

To use the manual process, follow these steps:

  1. get the latest Lenovo update ISO image for your laptop (See links below)
  2. apply the ISO patch (from the links below) for your specific firmware file (See discussion below for more on this)
  3. put the updated ISO image onto a CDROM and boot it, you will be prompted to flash your firmware
Model Lenovo ISO ISO patch EC Firmware Version Notes
t430 [1] [2] G1HT35WW tested and working
t430s [3] [4] G7HT39WW tested and working
t530 and t530i [5] [6] G4HT39WW tested and working
w530 [7] [8] G4HT39WW tested and working
x230 [9] [10] G2HT35WW tested and working
x230t [11] [12] 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 - if needed - but that would be quite tedious as they are a little large.

The hexpatch.pl tool from the git repo is the simplest way to apply a patch. This tool is a small perl script that is run like this:

hexpatch.pl binaryfile patchfile

An even better option is to use the git repo to fully automate the building of a bootable USB disk image - just read the README in the repo for the details.

Handling mismatched keys in software

If you don't want to reflash 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

Remapping with SharpKeys

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.