[DIY USB? Touchpad] reuse old laptop parts (Synaptics, Asus M67n) - Page 1
Forum section: electronics / projects

author: faekjarz
author_rank: Regular Contributor
timestamp: December 22, 2016, 07:59:11 pm
content: Hey there!From ma'ole Asus M67N laptop i scavenged a touchpad.I reverse engineered (continuity tested) the pinout, see pictures,and i tried to hook it up to my PC, via USB …but, PC says nope (, see _all_ the pictures).Does anyone have experience with those Synaptics touchpads?It looks like USB - its got 4 connections ...is it?But it doesn't behave like a USB HID device (see syslog img)...what could it be?It started on twitter:https://twitter.com/platymew/status/811916478324817922...thread follow-up:https://twitter.com/platymew/status/811944122835726341...thanks to the permissiveness of twitters' CDN (Content Distribution Network), i can include all the relevant pictures via IMG-tag here in this forumThe touch panel (back side)The pinout (CN2 is for flat flex on backside of touch panel - ?, still not sure about USB D+/D-)...i made an octopus...and i tried USB (grey/yellow - both polarities)...the result (Linux kernel says nope)What went wrong?Is it not USB after all?Perhaps I²C?Or 3V3?Feel free to request more data (test results, debug logs, circuit designs, photos, ...)....i'll document the project progress in this thread.

author: ataradov
author_rank: Super Contributor
timestamp: December 22, 2016, 08:54:33 pm
content: My guess is super sketchy USB connection. Use a normal USB cable and cut one end off and solder that to the touchpad.

author: FireBird
author_rank: Regular Contributor
timestamp: December 22, 2016, 09:23:07 pm
content: According tothis pageit might be a PS/2 interface.

author: Gyro
author_rank: Super Contributor
timestamp: December 22, 2016, 09:30:46 pm
content: It's possible - the trackpoint 'nipples' used on IBM thinkpads are PS/2 (complete with 3 button inputs).

author: ataradov
author_rank: Super Contributor
timestamp: December 22, 2016, 09:32:09 pm
content: Quote from: FireBird on December 22, 2016, 09:23:07 pmThen connecting an oscilloscope first makes sense.

author: wraper
author_rank: Unknown
timestamp: December 22, 2016, 09:37:28 pm
content: Should be PS/2.

author: faekjarz
author_rank: Regular Contributor
timestamp: December 22, 2016, 10:15:21 pm
content: Yup! Thanks, and thanks tohttps://twitter.com/mikedigitalhome(who linkedhttp://sparktronics.blogspot.de/2008/05/synaptics-t1004-based-touchpad-to-ps2.htmltoo)....seems like it _IS_ PS/2, and not USB...hmm, i have one of those passive adaptor thingies, ...maybe... *does more research*...nope, they're all USB-to-PS/2, not PS2-to-USB - in this case the HID has to "know" how to "speak" PS/2 over its USB...so, i'll need an active translator device for PS/2 to USB...maybe... *continues reading those sparktronics comments*

author: FireBird
author_rank: Regular Contributor
timestamp: December 22, 2016, 10:26:18 pm
content: And just in case that you would like to use it in a homebrew project,hereis a Synaptics PDF that explains the touchpad commands.

author: faekjarz
author_rank: Regular Contributor
timestamp: December 22, 2016, 10:40:10 pm
content: Quote from: ataradov on December 22, 2016, 09:32:09 pmDUDE! You somehow know how to tickle my whiskers - an O-scope is totally what i want (need?)!...i tried my Chinese Saleae Logic8 clone ...it spat out errors when tried to decode USB (LS/FS) and I2C...never thought of PS/2. I'm living too much in 2016Of course, this thing is >10a old, so PS/2!

author: faekjarz
author_rank: Regular Contributor
timestamp: December 22, 2016, 10:44:59 pm
content: Quote from: FireBird on December 22, 2016, 10:26:18 pmNICE, thanks! It says "PS/2" in the title! The one i've found doesn't: mirror of ACF126.pdf (via ddg.gg) (http://ccdw.org/~cjj/l/docs/ACF126.pdf), which dates earlier.

author: zxsq
author_rank: Newbie
timestamp: December 22, 2016, 10:57:10 pm
content: Hey, I thought I might contribute my little bit of knowledge here:Touchpads, and often keyboards, built into laptops are usually PS/2 because that protocol is interrupt-based, meaning that the system does not have to use energy or cpu cycles to poll the devices at the ~1000Hz of usb, insted the system just "listens" for the keyboard/touchpad to tell it that something is happening.Just another way to cut down on excessive battery usage, to eke out that extra 5 minutes of life.There are ps/2 to usb converters available which may make the reuse easier, look for "active" ones, they generally work better if the original device was only intended for ps/2 use. Some are available on ebay for ~$2 US if you do a little digging.

author: faekjarz
author_rank: Regular Contributor
timestamp: December 23, 2016, 12:02:09 am
content: THIS! IS! AMAZING!Unaware of future projects, i somehow picked a PC mainboard ...guess what ...with a PS/2 port!LOL: The benevolent ASrock H97M-ITX/ac (http://www.asrock.com/mb/Intel/H97M-ITXac/index.de.asp)...should be a peace of cake from now on...nope, nope, yes, YES! *researches USB-to-PS/2 adaptor pinout*...sometimes *sigh* ...the universe doesn't suck (as in annoying) *purrs*

author: faekjarz
author_rank: Regular Contributor
timestamp: December 23, 2016, 01:49:09 am
content: DONE!Thanks everyone!Here's a short demo video:the tweet:https://twitter.com/platymew/status/812109659704356864plain mp4:https://video.twimg.com/ext_tw_video/812108452462002183/pu/vid/1280x720/3wIuApxApfLQsUn4.mp4Building an enclosure is probably too off-topic for this forum, so i'll …uhm, unless someone really, really wants to see the final thing.

author: senso
author_rank: Frequent Contributor
timestamp: December 23, 2016, 02:39:59 am
content: Almost all touchpads are PS/2, they are almost always connected to the SuperIO/EC and not to the chipset.

author: faekjarz
author_rank: Regular Contributor
timestamp: December 24, 2016, 04:56:12 pm
content: ...just for the record, how i configured tap-to-click (option 320)...https://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html...on Ubuntu 16.04...i know of the inefficiency, i just didn't bother to put "xinput list | awk..." in a var first - copy and paste, yay