I've been looking to this for a while now, and so far I can't find what I need. But I'm think I'm missing the right search terms for it..

I've got a little project in mind where I can measure the speed of a conveyor belt. I'd like to do this by having an arduino sized box with the sensor inside. You could hold it on the belt and measure the speed, showing this on a few 7 segment displays or LCD display. How I'd like to do this is by using a system like an optical mouse, and from my understanding they have a module inside that compares low res pictures that compares how much the mouse has moved. This way I can keep my system a bit airtight instead of a wheel of some sort, and it looks fancy.

Does someone know what I should be looking for?

EDIT1: It has to calculate m/s, with 1, maybe 2 decimal numbers. I can't place extra detection stuff on the belt(s). It has to be one handheld device that can measure it all in a few seconds.

  • 1
    \$\begingroup\$ It sounds like you are looking for a mouse. \$\endgroup\$
    – Andy aka
    Jun 26, 2017 at 8:42
  • \$\begingroup\$ @Andyaka Just looking for the part that measures the distance moved.. not a complete mouse. \$\endgroup\$
    – pascal0312
    Jun 26, 2017 at 8:55
  • 1
    \$\begingroup\$ @pascal0312 to be completely honest, still sounds like you're looking for a mouse (to crack open and look inside, just to realize you'll just buy another mouse to use as belt speed measurement device). Point being that in early mice, there was indeed a separate low-res camera component and a separate piece of image processing logic and a separate PS/2 or USB interface logic, but I guess these days you'll find a single integrated IC that does all that. So, I agree with Andy, the easiest way is using a mouse as is, and write some software to interpret the mouse readings as speed. \$\endgroup\$ Jun 26, 2017 at 9:32
  • 1
    \$\begingroup\$ The common industrial way is to use an optical encoder, driven by a calibrated diameter wheel that is held to the device under test. \$\endgroup\$
    – R Drast
    Jun 26, 2017 at 11:35

2 Answers 2


Your mouse linear motion sensor could be done. What reliability you need is not addressed. Optical mouse sensor modules compatible with microcontrollers are available:

ADNS3080 sensor module with lens attachment

This ADNS3080 Mouse sensor chip combines:

  • optical sensor array
  • array processor
  • digital communication output

The array processor processes image frames, and updates X & Y position registers. When you read these registers, they're reset to zero, so that your microcontroller can calculate speed (it is up to the microcontroller to measure time between successive reads). XY array could be aligned so that one axis (say X) is aligned with conveyor motion. Y-axis should then read near zero on average. Or XY axis could be aligned with 45 degree offset, so that X and Y registers yield similar numbers.

The mouse chip itself has no optics, so a simple external lens is required to focus an image of your conveyor belt onto its internal optical array. You'll also likely want to illuminate the conveyor belt with a lamp.
Some speed calibration will be required, since the image size is affected by lens magnification, hence the motion registers will yield different numbers.
For this module, standard serial communication is used to configure, read and write mouse-chip registers.
Many of these chips can deal with video-speed image processing with enough illumination, but there will be an upper limit to the conveyor belt speed sensing.
This is likely not a robust way of controlling conveyor speed, but as an open-loop sensor as you have outlined, seems workable.

  • \$\begingroup\$ Yeah, this kind of stuff is exactly what I'm looking for. I can't buy exactly this IC very easy here, but you definitely helped me looking in the right direction with the optical flow sensors. Didn't knew about them. \$\endgroup\$
    – pascal0312
    Jun 26, 2017 at 19:32

Your specification is vague. You don't give a speed range, measurement time requirements, etc.

A much simpler solution and more reliable would be to place timing marks on the belt in a pattern such as


simulate this circuit – Schematic created using CircuitLab

Figure 1. Photo-sensor and timing marks.

It should be a fairly simple job to time between the close pulses or the wide pulses or some other arrangement.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.