There is a point where taking technology for granted hides some of the incredible capabilities of seemingly simple devices. Optical mice are a great example of this principle, using what are more or less entirely self-contained cameras just for moving the cursor across your screen. Don’t believe us? Check out this camera made from an old optical mouse from [Dycus]!
For those unfamiliar with optical mice, the sensor used for tracking movement, like a camera, is just an array of photosensitive sensors. This allows a simple on-board microcontroller to convert the small changes from the visual sensor into acceleration/movement information to be sent to the computer.
Proving how capable these sensors can truly be, [Dycus]’s camera manages a whole 30×30 array of picture quality. Along with glorious greyscale, the pictures achieved from such a camera are more than recognizable. Putting together the camera didn’t even require anything crazy beyond the sensor itself. What appears to be a Teensy LC board, basic buttons, and a small screen are essentially everything required to replicate the camera’s functionality. Pictures, both standard and “panoramic”, can be viewed in a variety of color palettes stored on board. Along with a surprisingly impressive feature set, the idea is impressive.
Limitations are often the mother of innovation, no matter if self-imposed or not, as seen here. However, [Dycus] still had a whole 30×30 array to photograph. What about a single pixel? Let’s make it even harder; we can’t look directly at the subject! This is exactly what was done here in this impressive demonstration of clever engineering.
Thanks to JohnU and Thinkerer for the tip!

The resolution is rather low, but the framerate is impressive, some go up to 8000 fps.
Hmm i bet the military uses something similar in missiles etc but with better resolution. 8k fps is crazy
Should be no problem for you to run a 16×16 sensor grid with these and have an FPGA read them. Your mind is the limit, but so is your freedom if they dislike your academic curiosity.
In the 1990s this was an Int 33 system function call. In DOS, even.
Not a standalone camera though :-)
I wonder if modern Windows even still supports it, or even if the notion of a system call is still a thing.
Not via interrupts, but programs make calls to the OS via the system APIs. Basically the application has a list of functions it wants to call with their names, and when the OS loads the program, it supplies the pointers to those functions, which are in the same memory space as the application. I’m not sure how the handover to the OS context works.
typically, the program loads a service number and arguments into registers and generates a trap which is [wait for it] a type of interrupt.
Video here: https://v.redd.it/x68uaqndmpyf1
I was hoping they were using a more modern sensor. As far as I can tell you can’t read it an image with the new pixart modules.
A few thoughts:
(a) How is this not an awesome “component abuse” candidate?
(b) The end-result evokes memories of 80’s “hacks” that turned decapped DRAMs into image sensors
(c) This is simply cool. Well done.