So, what could you do with the old scanner part of a cheap multifunctional scanner/printer combo? I decided that I could turn it into a multitouch touchscreen with the addition of just a few extra components and a bit of programming.

So, how did I arrive at such a crazy idea? Well, they say that inspiration can come from the weirdest places. The inspiration for this project came when I was cleaning the desk I use for hacking. It was, as usual, riddled with parts and broken devices, amongst others an Epson Stylus SX125 multifunctional printer. I bought it to (ab)use the printer parts for some other experiment, and while the scanner hardware still was intact, the controller board that controlled both the printer and the scanner probably wasn't going to do much anymore.

The scanner is a big part to stow away somewhere, but it still contained useful parts like the stepper motor, so I decided to dismantle it. One of the parts that came out was the scanner head. This is a LIDE-like scanner which has a few advantages. Old scanners use a small color line-CCD and a lot of heavy optics to scan and a CCFL to illuminate the document-to-be-scanned, making for a heavy and bulky scanner. Instead, this scanner uses a black&white line-CCD the same width as the document, some tiny optics and a multicolor LED to iluminate the document.

I recently learned a line-CCD isn't too hard to read out. It basically acts as a huge analog shift-register: you make a pin high to tell the CCD to 'take an image' and then you run a clock signal to another pin. Every time the next clock pulse arrives, the CCD will send out an analog value representing the light level falling on the next pixel. Because a CCD is a dynamic element, you can't lower the clock signal too much and if you stop reading frames from it, the device will take a while to 'start up' again.

As soon as I had the scanner head in my hands, I knew I oughtta hack it. I'd never interfaced a microcontroller with so many light sensors before, and I thought it would be a good excuse to put off cleaning the room for another time.

 1 Next »

© 2006-2021 Sprite_tm - Contact