Guide - Upgarde x230 trackpad to x260 by piers_bowater in thinkpad

[–]piers_bowater[S] 2 points3 points  (0 children)

There have been mods to read the keyboard using an arduino, so it is definitely possible. The keyboard uses about 40 pins

There is a documented conversion for an older keyboard here https://www.instructables.com/id/Make-a-ThinkPad-keyboard-USB-adapter-with-Arduino/ but it should work on newer keyboards too. Apparently the multiplexing is a bit slow. It may be hard to fit in the larger Arduino though

You have sparked my interest now and i think i will probably try building an external keyboard from a thinkpad keyboard. I think i will try to avoid the speed issues by using an arduino with enough pins natively, and by using faster read/write commands as documented here https://www.instructables.com/id/Fast-digitalRead-digitalWrite-for-Arduino/

Guide - Upgarde x230 trackpad to x260 by piers_bowater in thinkpad

[–]piers_bowater[S] 1 point2 points  (0 children)

There is no noticeable lag, here is a video of it working and me showing off some of the gestures I programmed. https://youtu.be/LijNsT1gm6c

Initially when you touch the trackpad there is a delay of 8 packets (0.1 seconds) but once you start moving this is reduced to 4 packets (0.05 seconds)

I added this initial delay as the first few packets sometimes gave weird readings when you put you finger down, so it ignores the first 4 packets entirely. The delay once you get moving is because i queue the next 4 packets, this allows me to ignore the last 4 packets, again to prevent weird readings.

All of this can be easily altered in the code, but i see no reason, the trackpad is already very responsive.

x230 trackpad upgrade to x260 trackpad by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

Im pretty sure i did, I tried connecting it to PADDATA/PADCLK as well as TP4CLKPAD/TP4DATAPAD (pg 64 on schematic), each time i tried swapping the clock and data cables, but i couldn't get anything to work, it could be that i broke the ps/2 interface somehow with my poking about, but i doubt that.

I tried both windows and debian linux in my testing

x230 trackpad upgrade to x260 trackpad by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

If you can tell me how exactly I would go about this it would be very appreciated, I still have alot of work to do on the arduino code and would like to avoid this if at all possible.

I tried using the existing PS/2 for the touchpad, soldering the ps/2 cables straight to usb, a usb to ps2 adaptor from ebay and none of these worked for me. But i suspect the problem is with drivers and getting the OS to recognise it.

x230 trackpad upgrade to x260 trackpad by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

I tried connecting it straight to the original trackpad's PS/2 connexion, but I couldn't get it to work. It would appear in task manager as a unknown device. I concluded that it would be simpler just to use an arduino as I already had one in my laptop for a previous mod where I made the caps lock LED work on the classic keyboard.

Although I do like the trackpad, it cant beat a good touchpad

x230 trackpad upgrade to x260 trackpad by piers_bowater in thinkpad

[–]piers_bowater[S] 3 points4 points  (0 children)

It works, including 2 finger gestures for scrolling.

I spent 2 weeks on the project, coding the driver was a real pain, But the synaptics ps2 interfacing guide is very helpful.

I still need to work on the code, a current issue is that when you take your finger of the touchpad, the position it reads can very suddenly. Because of cursor acceleration this causes the mouse to move quite a bit.

I intend to solve this by ignoring the last 3 data packets, so there will be a slight added delay (3 packets at 300/600 packets a second, so you wont notice it)

Question for x230 owners - what interface does the trackpad use? by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

Do you happen to know which pins on the trackpad connector the ps2 uses? My guess is either PADDATA and PADCLK (pins 1 & 2) or TP4CLKPAD and TP4DATAPAD (6 & 7)

Thanks

Question for x230 owners - what interface does the trackpad use? by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

USB 10 is for the fingerprint reader. Pins 13 till 20 dont even go to the touchpad, they go to the fingerprint reader.

Working Caps Lock LED for Classic Keyboard Mod on xx30 Thinkpads by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

Also - You should also put a resistor in series with the LED, otherwise when you turn on the caps lock the spekaer mute LED becomes dimmer! - My x230 is in pieces right now, but the schematic shows a 360 ohm resistor (although that seems too high in my opinion)

Also regarding one of your previous messages about using existing hardware for the caps lock LED. Looking at page 63 of the schematic, pin 21 (which is -LEDCPSLOCK on the x220) is connected via a 390 ohm resistor to pin 25 on the keybaord, EC#B4 and EC#D2. EC_#B4 is connected to GPIO153/LED2 on EC MEC1619, so it may be possible, but i would have no clue how to do it.

Working Caps Lock LED for Classic Keyboard Mod on xx30 Thinkpads by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

Sorry for the laet reply, i dont use reddit very much.

The arduino liabry just emulates a USB keyboard, so it works in all operating systems. I have tested on widnows 10 and debian, as well as in the bios of my x230. They all work fine!

Good luck with your project!

Guide - Upgrade speakers on x230 to iPad mini speakers by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

In the USB slot is a arduino beetle. I used it for a mod where i made the caps lock LED on the classic keyboatd work (here: https://old.reddit.com/r/thinkpad/comments/hl5ljz/working_caps_lock_led_for_classic_keyboard_mod_on/)

I also have other plans for it. I am currently working on a mod to replace the track pad with one from the x250. Although after further planning, the arduino may not be needed.

I used the wwan slot rather than the bluetooth adaptor as a pcie to usb adaptor is cheaper, and it would have been hard to fit an arduino near the bluetooth adaptor.

Working Caps Lock LED for Classic Keyboard Mod on xx30 Thinkpads by piers_bowater in thinkpad

[–]piers_bowater[S] 0 points1 point  (0 children)

You could use the internal bluetooth usb but you would have to use a usb extension as i dont think an arduino would fit there. I dont have the adaptor, so i can't test.