Scanner Sensor Multi Touch


[Kyle McDonald] had a Visioneer XP 100 portable scanner laying around, so he started trying to come up with alternative uses for it. In the video above, we can see a multitouch setup rigged together using Openframeworks in Ubuntu. As you can see in the video, there’s some considerable lag. That is due to the 250-500 ms of buffering built into the scanner. It does have nice resolution; 10k pixels wide at 60 fps, so it has to be useful for something (aside from scanning). Anyone got any ideas? He says if the field of view was wider, he’d use it on a river bed to watch fish.

28 thoughts on “Scanner Sensor Multi Touch

  1. three mounted vertically (facing inward) with a stepper motor to allow precise rotation around an object would create a 3d scanning rig of high precision. just add software and you have the ability to digitize objects on the cheap.

  2. @Nemo & davity

    That might work, but why use three Nemo? Wouldn’t a single one work? Perhaps the lighting would be a problem, but I don’t see why three would improve the issue. It would certainly allow for those quicktime panorama things, at least on small objects.

  3. @dan: yes, always more theremins! I was thinking multitouch-ish theremin, though :)

    @dreamspending: this is really an ideal use case, as the high resolution would be perfectly suited for scrubbing long footage. You wouldn’t need to zoom in and out: 10k pixels at one pixel per frame would let you scrub almost 3 hours of 60fps video.

    @davity, @nemo, @andar, @brsnow: There is DOF was larger (not FOV, as the post says), 3D scanning would be possible (assuming a bright light on the scanner). If you have a scanner, try scanning an inclined ruler to get an intuition for its DOF. If it’s large, you don’t need to do any hacking at the software or hardware level — just take a scan with the room lights out and recover a 3D height map in post processing.

    @dane: Thanks :)

  4. Practical science thought:
    Was watching a autonomous penguin weighing station that the little creatures could just walk across to be counted on some PBS show.

    So, what about using these to passively monitor insect activity. Two so as to determine which direction if necessary.

  5. You might be able to get more speed out of the scanner if you were only in greyscale or black and white. Also, lower resolutions may be faster if your scanner was anything like the Epsons I used to work with. If you get a chance, take it apart and you should see a very long and narrow piece of silicon for the ccd.
    Have you tried to mask the the scanning area with a very narrow slit to accomplish the DOF of a pinhole camera (my optics is a little rusty, is that even possible?)?
    As for ideas, I like the idea of a spectrometer, maybe use it to fine-tune RGB LEDs.
    A linear encoder could be accomplished with a fine needle attached to a moving part.
    Anything involving measuring a fluid height/depth in a transparent tube would also be great.

  6. @st2000: Awesome idea regarding insects. I’ll take a stab at that :)

    @googfan: The FOV is fine, the DOF is the issue.

    @devlin: Surprisingly, the scanner doesn’t seem to be bottlenecked by any of its hardware as far as data rate goes. Color or grayscale (or line art/1 bit) didn’t seem to make a difference. I actually got more lines per second from the higer DPI (60 fps vs 30 fps) probably due to physical limitations/assumptions about the characteristics of the stepper motor (or maybe the hardware is always doing full-res scans, then binning). I’m pretty sure the narrow slit wouldn’t work unless you want massive blurring across the sensor. You’d have to actually use a pinhole. Since the sensor is very sensitive, this might work given daylight conditions. Also, measurement applications are great; this could be ideal (if a bit expensive) when trying to determine absolute linear position along a single axis over a fairly limited range.

  7. So the lag is caused by an onboard buffer. This is probably contained all in small microproc that has so many bytes of buffer memory. To get around it, instead of trying to hack the buffer chip or bypass it… why not just clock it up so it would essentially buffer quicker? It probably takes an external clock signal, the same that the image processor runs on.

    Just guessing.

  8. @mj: Since this is an imaging device, clocking it up might destroy the acquired data — you would be effectively decreasing the exposure time and get a darker image. I’m also not sure if the acquisition and buffering run asynchronously from the transmission. If so, it seems possible.

  9. Question to original poster if you are still listening:

    Do not most modern scanners shake their imaging bars such that each optical sensor in the array of 1 x n sensors “scans” a patch of the entire field?

    So, if one removes the imaging bar the resulting resolution is only 1/10th to perhaps 1/1000th of the original resolution? (i.e. instead of 1000 dots per inch only a couple of dots per inch)

  10. Hummm, maybe the “shake” is old school too.

    You may be right – the newer scanners may not shake. They may actually have some sort of detector with 1000s of elements per inch.

    I’ll have to watch the next time I use one of my newer scanners.

  11. Forgive me for what might be construed as hijacking this thread – but I can not think of a better hacking audience then those of *you* reading this to pose this question to.

    Large format scanners are *expensive*! I want something that can scan something a bit larger then 12 inches wide. Has any of you considered hacking a older scanner for this? That is, placing a new glass plate above the existing bed and refocusing the lens onto this plane?

    Obviously you would need one of the older “mirror” type scanners, not a newer one like the one Kyle took apart here.

  12. Agh! It’s like nobody after Caleb so much as Wikipedia’d what scanner types were, or why the 24,000lpi large-format ones might be pricey, before posting! It doesn’t read depth, just light as usual; tweak the light profiles to and from the subject, make effective use of the servos and middleware at hand (Openframeworks, SANE or Processing, an OS) and you can get something amazing and impressive (but not unreal.) The black OLED eye in the Openframeworks video is really impressively melded into the black frame to make the CG eye pop out.

    N.B. the ‘he says’ link shows what he did to SANE scanner drivers to get this far.

    Someone tell me the new scanners, MFPs et al make no noise….

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.