Difference between revisions of "Install Classic Keyboard on xx30 Series ThinkPads"
(→Steps to patch your Firmware) |
(Added links to reports of mouse buttons no longer working and suggested fix) |
||
(23 intermediate revisions by 6 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 | + | {{NOTE|This modification doesn't apply to the T430u, T431s, X130e, X131e, X230s, E330, E335, E430, E430c, E431, E435, E530, E530c, E531, E535, due to a completely different keyboard layout and keyboard connector. It may apply to the L430 and the L530 however, but there are no embedded controller modifications available to fix the potentially mismatched keys.}} |
+ | The W530, T430, T530, and the X230, was the first premium generation to use chiclet/island-style keys. While many prefer the classic keyboards, the general consensus is that the chiclet/island-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]) | ||
− | + | It is possible to easily fit the classic keyboard into xx30 series chassis, with some hassle, of course. | |
− | + | {{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.}} | |
+ | 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. | ||
− | + | ==Warning== | |
− | + | ===Pinout=== | |
− | |||
− | == | ||
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | The | + | 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. Step-by-step pictures of this process can be found [https://imgur.com/a/fsRe6 here]. |
− | + | {|style="margin: 0 auto;" | |
− | + | | [[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]] |
− | | | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | |- | ||
− | |||
− | | | ||
|} | |} | ||
− | + | {{WARN|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. [[File:X220_keyboard_burn.jpg|thumb|300px|X220 keyboard, showing burn mark]]}} | |
− | + | {{NOTE|There have been several reports of the physical mouse buttons no longer working after the mod. It maybe from too thick tape and use thinner, or keep reseating. | |
− | + | [https://www.reddit.com/r/thinkpad/comments/hp3li9/mouse_button_failure_after_x220_keyboard_swap_on/ Reddit Example A], [https://www.reddit.com/r/thinkpad/comments/7z7mxp/classic_keyboard_in_x230_mouse_buttons_not_working/ Reddit Example B], [https://www.reddit.com/r/thinkpad/comments/8dp06r/just_swapped_my_x230_with_an_x220_keyboard_the/ Reddit Example C], [https://www.reddit.com/r/thinkpad/comments/sxqlo7/x230_classic_keyboard_swap_trackpoint_buttons_not/ Reddit Example D] | |
− | + | }} | |
− | |||
− | |||
− | |||
− | |||
===Key Functionality=== | ===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. | |
− | * The | + | 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+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. | ||
− | === | + | ===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 | + | 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 | + | 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 174: | Line 153: | ||
|} | |} | ||
− | ==The replacement | + | ==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: | It's pretty simple: | ||
# Remove and unplug the original palmrest. | # Remove and unplug the original palmrest. | ||
− | # Install and plug in the | + | # Install and plug in the X220 palmrest, but do not screw it down. |
− | # Then | + | # 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 | + | 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]] | ||
− | |||
− | |||
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. | ||
− | + | 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. | ||
[[File:t430keyboardinstall.jpg|thumb|floatright|175px|Installing the T410 keyboard]] | [[File:t430keyboardinstall.jpg|thumb|floatright|175px|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. | |
==Handling mismatched keys in software== | ==Handling mismatched keys in software== | ||
− | If you | + | 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=== | ===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. | 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. | ||
Line 269: | Line 203: | ||
====Menu Key==== | ====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. | 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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 05:45, 20 May 2023
The W530, T430, T530, and the X230, was the first premium generation to use chiclet/island-style keys. While many prefer the classic keyboards, the general consensus is that the chiclet/island-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, with some hassle, of course.
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.
Contents
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. Step-by-step pictures of this process can be found here.
Reddit Example A, Reddit Example B, Reddit Example C, Reddit Example D
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:
- Remove and unplug the original palmrest.
- Install and plug in the X220 palmrest, but do not screw it down.
- 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.
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
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.
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.
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
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.