Converting a scanner into a touchscreen

[Sprite_TM] was cleaning up his hacking workbench when he came across an all-in-one device that had seen better days. After a bit of consideration he decided to tear down the scanner portion of the device and ended up turning it into a multi-touch display.

The scanner relies on a long PCB with a line CCD sensor. This sensor is read in a similar way that information is passed along a shift register. Tell it to take a reading, and then start a clock signal to pulse out each analog value from the pixels of the sensor. In order to scan color images it uses multicolored LEDs to take different readings under different illumination.

[Sprite_TM] takes advantage of this functionality to turn it into a multitouch sensor. The sensor board itself is mounted below an LCD display along with a shield with a slit in it to help filter out ambient light. Above the screen a series of LEDs shine down on the sensor. When you break the beams with your finger it casts a series of shadows which are picked up by the sensor and processed in software. Watch the clip after the break to see it for yourself. It has no problem detecting and tracking multiple contact points.

Seriously, this is cool stuff. One of the things I do at work is program an old monochrome plasma IR-matrix touch screen. It’s amazing how a design using far fewer beams can have multitouch and higher resolution!

I agree with [Sprite_TM] that I prefer keyboard/trackball for my *vertical* display. But, for a big, horizontal multi-touch display, using – say – libTISCH (HaD, 10/29/09)? Add a driver, and now we’re getting somewhere.

@Therian: You’re right!
I bought an 8" Lilliput LCD with touch a few years back for a media center project but I always ended up using a USB mouse instead. (Of course, it had a stylus and was not touch in any modern sense.)