Copyright Brian Starkey 2012-2014
Valid HTML 4.01 Transitional

Valid CSS!
iconThe not-so-magic Trackpadmax, min, close
June 2011
Overview(top)

I really like two-finger scrolling. I think that multitouch touchpads are a great input device for general computing, and especially for surfing the web. Granted, touchpads are no good for gaming, but for everything else I think I would rather use a touchpad. Apple have, of course, realised that multitouch touchpads are pretty cool and sell their Magic Trackpad for a sum of GBP 59. Being an impoverished (and notionally thrifty) student, I didn't want to part with my un-earned beer money, especially when I wasn't sure how well it would work with linux.

Luckily, like any self-respecting geek, I've managed to accumulate quite a lot of surplus computer junk over the years including an old Dell laptop with a Synaptics touchpad which supports multitouch in linux. At the time I was using a different Dell laptop as my main computer, attached to a keyboard and monitor. The task, then, was to add an external touchpad to this laptop for a cost of less than GBP 59.


Identify the Signals(top)
The rear of the touchpad PCBThe rear of the touchpad PCB

All the touchpads I've played around with used a PS/2 protocol, though it appears some newer models use a USB protocol. Identifying the signals for USB could me much more challenging than PS/2, but the latter is very straightforward. I'd recommend you first google your touchpad's model number to see what information is available on the 'net. In my case I couldn't find out a lot, so I set to with a multimeter.

To find the necessary signals you'll need to poke around with the donor computer running, so take care not to short anything out. The likelihood of doing any permanent damage is low, but still be careful. The PCB is covered with test points which make it easy to probe for signals. Ground is easy to identify - pick any part of the large copper areas. Then you want to find +V, which should be 5V. My touchpad also carries the signals for a set of media buttons across the front of the laptop. The signals for the buttons come in on one ribbon connector and go straight across the board to the motherboard connector, this meant I could straight away eliminate around two thirds of the pins on the connector from my search for PS/2.


Clock (top) and data (bottom)Clock (top) and data (bottom)

Now you've found connections for power and ground you need to find the PS/2 clock and data lines. This is dead easy to do with an oscilloscope - put a probe on each pin in turn and move your finger around on the touchpad. There should be two pins which show activity, with one looking like a regular clock, and the other displaying more random data pulses.


2.50 V on the clock line2.50 V on the clock line
2.32 V on the data line2.32 V on the data line

If you don't have an oscilloscope then don't fear, you can still determine clock and data the ghetto way - with a simple multimeter. Multimeters will display an average of the probed voltage, which we can take advantage of to identify the clock and data. You're looking for pins which show a constant (probably high) voltage until you touch the touchpad, at which point the value should fluctuate. If you can find two of these pins, there's a good bet that they are your clock and data. To tell them apart, you should see that with continuous motion on the touchpad one of them settles to almost exactly 2.5 V, and the other settles to something a little less or a little more. The 2.5 V one is your clock, the 50% duty-cycle of the clock signal makes the average value exactly half of the 5 V signal level. The other is data, which will probably show a value slightly less than 2.5 V as the PS/2 data stream seems to contain more 0s than 1s (<50% duty cycle).


Wire it up(top)

Now you've figured out the signals the touchpad uses, you need to wire it up to something. The simplest answer is to solder on a PS/2 cable and plug it straight into a PS/2 port (if you have one). Consult the connector pinout to see which wire goes where, and with any luck you'll be in business. I didn't have a PS/2 port but I did have a PS/2 to USB converter (the active kind). When I plugged the touchpad into this, it worked, but multitouch didn't. I'm not 100% sure, but I guess that Synaptics use non-standard PS/2 messages to convey multi-touch information, which my cheap adapter didn't understand and thus ignored.


Plan B(top)
The motherboard connectionsThe motherboard connections

Defeated at the last hurdle, my only other option was to attach wires directly to the motherboard. The target laptop's motherboard connector had a resonably large pitch and I had some thin single core wire, so I was confident I could solder to it without doing any damage. Using the same process as for the touchpad to start with, I identified the clock and data signals on the connector.
PinSignal
1GND
2Data
3Clock
9+5 V


The 4-pin connector from the insideThe 4-pin connector from the inside
The 4-pin connector from the outsideThe 4-pin connector from the outside

Having found the PS/2 signals, I searched for a spot to put a 4-pin connector so I could plug-in and remove the external touchpad without needing to access the laptop's internals. The 4-pin connector is acually a section of a DIP chip socket, which fits nicely in a bit of unused space on the left-hand side of the laptop. Then it was just a case of routing the 4 wires across the motherboard to the connector and sticking everything down.

I was hoping the new external touchpad would "just work" in parallel with the internal touchpad, but alas it doesn't. As a result, I pulled the clock and data signals from the internal touchpad out of the motherboard connector (just carefully bend back the plastic retainer and pull them out), meaning the internal touchpad does not function unless you lift the keyboard and plug them back in. As I rarely ever used the laptop anywhere but plugged in on my desk, this was a non-issue.


Conclusion(top)

In conclusion, I am pretty pleased with my makeshift magic touchpad. It might not be as big or pretty as Apple's, it's not wireless and it moves around on the desk a lot, but it was free save an afternoon of hacking. I've since built a desktop with a real PS/2 port, and the touchpad works perfectly plugged into that. Some USB converters might even be able to manage multitouch commands, your mileage may vary.