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.
Most IIR systems are 128128, with some 240240.
Tight beamwidths on the optical path and fun algos.
Thank you for pointing this out. This could be a very cheap high speed camera, for which this community can certainly find a use for. Filming 100 ms at 9 kHz is about the RAM of an ESP32/RP2350 (500 kB), which is 30 seconds at 30 fps. If you feel up for it, build it :)
I think most of them can send frame data out at max 100-200 Hz or so. The higher framerates are available only internally to the sensor.
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.
please make a ufo finder from mouse
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.
https://hackaday.com/2006/01/07/optical-mouse-based-scanner/
Great article, thanks! :-)
That reminds me of two videos by LGR and Tech Tangents about the early optical mouse by Mouse Systems (1986).
It works without a camera sensor, needs a special pad to work. Very interesting!
https://www.youtube.com/watch?v=cBhA25qjL8Q
https://www.youtube.com/watch?v=tTD5cbe3jjk
people also forget that the mouse sensor has a dsp right on the chip. this offloads the heavy math for point tracking from the mcu that handles being a mouse. many modern sensors this is programmed at the factory and essentially set in stone, but on some of the older ones you can program the dsp to serve your own needs. ms sidewinder joysticks used the same sensor on their joysticks of the late ’90s early ’00s. so the possibilities for these sensors far exceeds mouseness, joystickness or even cameraness. maybe that should be the next had challenge.
and first sensor that started it all, the HP->Agilent->Avago HDNS-2000 chip from 1999 Microsoft IntelliMouse Optical had no DSP at all! DSP was too costly, slow and impractical in 1999 so the mad lads went Analog Computing:
Travis Blalock Oral History https://www.youtube.com/watch?v=wmqa9XJED-Q https://archive.computerhistory.org/resources/access/text/2018/10/102717371-05-01-acc.pdf
Hello. Is there any repository to dive in and do the project ?
He doesn’t include one, but check here for something quasi-similar: https://hackaday.com/2016/11/21/diy-optical-sensor-breakout-board-makes-diy-optical-mouse/
Otherwise, it’s just read-the-datasheet. I wish someone had a more-worked-out project. Anyone?
You could get color images by adding red green and blue lights and putting each one on for a third of the frames.
Also, how is this not an awesome component abuse hack?