The Countdown to Maker Faire Bay Area is On!


Using an optical mouse for robotic position sensing



The standard optical mouse contains all of the hardware necessary for tracking X/Y movement on a flat surface. With a bit of modification, you can tweak the illumination and focal length of the device to create a compact motion tracking module for your robotics projects.

Mac A. Cody has done a really nice job of documenting a couple different configurations using the common Agilent/Avago ADNS-2610 Optical Mouse Sensor that powers a lot of cheap optical mice. The motion sensor pictured above has been hacked to sit further above the surface than a stock mouse, and he’s included some fairly simple example code for reading the X/Y movements from the sensor.

The cool thing about using something like this, aside from the cheap cost, is that the motion detected by this system isn’t dependent on your gearing, traction, or relative speed between wheels or tracks. If you are moving, the camera detects it. If you aren’t, it can tell that as well. This is pretty difficult with standard wheel encoders, where you can tell that a wheel is spinning, but not that the robot is moving.

Cody’s Robot Optical Motion Sensor #1 – Link
BTC Optical Mouse Hack – Link
Interface to Optical Mouse Sensor (PDF) – Link

5 thoughts on “Using an optical mouse for robotic position sensing

  1. Max says:

    Hmm, re-inventing the wheel sadly. checkout soundmodem


  2. Jason Striegel says:

    Thanks for the tip, Max. That’s no-doubt a better software stack for the radio modem.

    Do you have any recommendations on a cheaper or more simple solution for the hardware side of things?

  3. Max says:

    hardware wise I’d use an isolating interface between the radio and the computer. Unless you’re a HAM you could use some walkie talkies, and this

    Why not become a radio HAM, and get to play with this stuff with some real radios. google for ‘d-star’ it’s a system allowing digital voice and data over HAM radio. On the 1.2Ghz band you can have a mobile 128k connection. Although sadly it uses a proprietry codec.

    -Cheers Max

  4. Alexandru Capatina says:

    Hello. The picture is not showing and some links are not valid anymore. Can you provide some documentation for this example? I am working on a project and I want to implement an optical/laser mouse sensor to detect the movement of a model hovercraft, hence the need to track without touching any surfaces. Thank you!

    1. Harsh Rathore says:

      hey Alexandru … I am also working on the similar project of the optical mouse sensor.
      Did you find your piece for the sensor?
      Please revert me back as I required some.

Comments are closed.

Discuss this article with the rest of the community on our Discord server!
Maker Faire Bay Area 2023 30% off early bird ticket sales ends August 31st, 2023!

Escape to an island of imagination + innovation as Maker Faire Bay Area returns for its 15th iteration!

Prices Increase in....