replace w540 touchpad with a 3 button w541 touchpad

Original From: Lenovo Forum and Reddit

Some pre-information:

Every hardware has an hardware id. With this id the right driver for the hardware can be installed.

But the Touchpads seems to be dumb and don’t have any hw-id. The system (BIOS, system controller, whatever) propagated an hardware id to the operating system.

The hardware ID of the touchpad can be read out in windows in the device-manager.

When you look at the properties of the “Synaptic” or “Thinkpad” Pointing Device the hardware ID can be found in the “Detail”-Tab and the property “Hardware-IDs”. In my case the old and new Touchpad had the same ID, LEN0034.

I’ve done some research and found out, that the Touchpad on a W541 has the ID LEN004A. These two id’s are all we need.

First download a current driver for you thinkpad. In my case I used the driver N10GW15W which is normally only for the W541. But since both system are very similar, there are no problem to expect.

After download extract the driver and DON’T start the installation procedure.

Go to the extraction directory search for the right installation directory for your system. On an 32bit Windows, use the directory WinWDF/x86, and on a 64bit the directory WinWDF/x64.

In this directory you should find a file named “SynPD.inf”. Edit this file with an editor (Notepad or similar).

With this file the right driver for your hardware is choosen.

Now search for your current HW-id. In my case it is LEN0034.

%SMB.IBMDeviceDesc%  = LENOVO_GROUP16_InterTouch_Inst,*LEN0032
%SMB.IBMDeviceDesc%  = LENOVO_GROUP14_InterTouch_Inst,*LEN0033
%SMB.IBMDeviceDesc%  = LENOVO_GROUP17_InterTouch_Inst,*LEN0034
%SMB.IBMDeviceDesc%  = LENOVO_GROUP37_InterTouch_Inst,*LEN0035
%SMB.IBMDeviceDesc%  = LENOVO_GROUP38_InterTouch_Inst,*LEN0036

Now remove the line %SMB.IBMDeviceDesc% = LENOVO_GROUP17_InterTouch_Inst,LEN0034* Now the wrong driver won’t be installed any more.
Now search for the HW-id for your new touchpad (the W541 ID, where the new-old one is installed at, is LEN004A).
In my case I found LEN004A a few lines below.

%SMB.IBMDeviceDesc%  = LENOVO_GROUP12_InterTouch_Inst,*LEN0047
%SMB.IBMDeviceDesc%  = LENOVO_GROUP40_InterTouch_Inst,*LEN0048
%SMB.IBMDeviceDesc%  = LENOVO_GROUP43_InterTouch_Inst,*LEN004A
%SMB.IBMDeviceDesc%  = LENOVO_GROUP40_InterTouch_Inst,*LEN004B
%SMB.IBMDeviceDesc%  = LENOVO_GROUP8_InterTouch_Inst,*LEN0050

In this line, change the HW-ID from LEN004A to LEN0034 (please use your IDs).

Now repeat this until you have changed every section. In my case, there is 3 different LEN0034 and LEN004A.

Save the file and just start the normal installation. You will get an error because the driver has changed. By modifying the file, the driver became unsigned now, and you have to disable driver signature enforcement in Windows 8+ in order to install. It is found in advanced startup options, in Settings - Update - Recovery in Windows 10. Only then will the setup offer the option to install the driver ‘anyway’, and be able to succeed. A bit lengthy, but you can get the latest version of the driver working.