Using a Strobe Light to Measure VEX Motor RPM

I am trying to measure the speed of a VEX Motor using a DIY Strobe Light made with a bright white LED. I know the frequency that I am pulsing the strobe and can “freeze” the teeth of a VEX 36 tooth gear attached to the motor’s shaft running at full speed (PWM=255). This should be near or equal to the maximum 100 RPM that the motor is rated at.

When I try freezing a target (a 30 degree black slice) drawn on a white cardboard disk attached to the motor shaft, it does not freeze, probably because the motor is running too slow.

Does anyone know of a way to relate the freezing of the gear teeth to the actual VEX motor RPM at the output shaft?

Freezing the teeth means that each time the strobe flashes there are 35 teeth that have an opportunity to take the place of each tooth you saw on the previous flash.

To me that means that you can’t combine the gear teeth with a strobe to track the motor’s (angular) speed.

If I understand your question, I think I would draw a few narrow lines on some gears and use them in various combinations (to create various turn rates) to home in on a correct set up for the strobe.

However, If the strobe can be set to flash at rates between 0 and 150 flashes per minute, The rate you need will be somewhere in between those extremes. I am surprised it is hard to tune it to the correct rate.

PS: Am I correctly understanding your problem/question?

Hi Blake,

Thank you for your response, you understand my question perfectly and your answer sounds reasonable. I built the strobe light using a VEX controller to drive a bright white LED. I used a call to Wait(n) (WPILIB) to delay for n milliseconds, which generated the period for the flash, which is set using a Quadrature Optical Encoder as a frequency control.

It may be that my strobe light is not bright enough (as compared to a Xenon Flash) or that I have some other timing issue or software bug.



It may also be that you have too much of a fade in fade out type of thing. Strobes are one and off in no time while all the LED’s I’ve ever seen have a bit of a start up fade in and shut down fade out which could mess with this.


Hi DinerKid,

The Bright White LED that I am using could have this fade delay that you mention, I will have to look further into the specifications for the LED. It may also be that slow flash rates may be confusing my vision (persistence of vision problem?)



Yeah i have never seen strobes be used at such slow speeds so that could certainly be part of this.


The problem isn’t finding “a way to relate the freezing of the gear teeth to the actual VEX motor RPM at the output shaft”, it’s determining which of the infinite number of ways of relating them that’s occurring.

To determine the rotational period by using a strobe, one varies the period of the strobe until it corresponds to the period of rotation. That way, every time the light flashes, the rotating object is in the same position (the phenomenon you call “freezing”.)

By definition, as the motor is what you are trying to measure, the motor is not “too slow”. The DIY strobe is too fast. Why not just slow it down until it is flashing at the motor’s rotational frequency:
100 rev/min = 100/60 rev/sec = 1.67 rev/sec
If you take the reciprocal of that:
1/(1.67 rev/sec) = 0.6 sec/rev
To be safe, I’d build a strobe that could be adjusted to a period of at least 1.2 sec; 2 sec would be better. Here’s why:

The problem with using a 36-tooth gear is this: You don’t know how many teeth went by between flashes of the strobe. If the gear had advanced by one tooth in t seconds, then the whole rotation would take (36 * t). However, if the gear had advanced 2 teeth, the whole rotation would take ((36/2) * t) seconds. This goes on ad infinitum.

In fairness, this problem isn’t limited to having multiple, indistiguishable marks per rotation. If you have a single mark and it appears not to have moved between flashes, you can’t tell if the wheel has turned once, twice, or some other integral number of times.

The way to deal with this is to adjust the strobe until the rotating object appears to stop, then increase the frequency until it is no less than twice the frequency at which the object appeared to stop. If you find no more points at which the object appears to stop, you’ve found the right period. If you find another frequency at which the object appears to stop, keep increasing to twice that frequency. Keep looping until you find a frequency two times which does not also “freeze” the object.

For example:
If I start at 0.9 Hz (0.9 flashes per second) and the object is “frozen” when I get to 1 Hz, I know the object completes some integral number of rotations in 1 second. What I don’t know is how many.

So, I increase the strobe rate, looking for other “freezing” points. If the image “freezes” again at 2 Hz, then I know the rotational frequency is some integral multiple of 2 Hz, so I keep adjusting to at least 4 Hz. If the object doesn’t “freeze” at 4 Hz, then the rotational frequency of the object must be 2 Hz. If it does “freeze” at 4 Hz, then I need to keep going.

The question may well have occurred to you: But what if the rotational frequency is between 2 Hz and 4 Hz, for example 3 Hz? Wouldn’t that also “freeze” at 1 Hz? The answer is “yes”. The way you’d find the correct frequency, though, is in the scanning between 1 Hz and 2 Hz. An object rotating at 3 Hz will “freeze” at a strobe rate of 1.5 Hz. (At a strobe rate of 1 Hz, you’re seeing every third rotation; at a strobe rate of 1.5 Hz, you’re seeing every second rotation.) Once you see the “freeze” at 1.5 Hz, though, you must keep increasing the strobe rate to at least 3 Hz. The image will “freeze” again at 3 Hz, but nowhere above that.

You can simplify the procedure by starting the strobe at its maximum frequency and adjusting it downward until the image “freezes”. What you need to keep in mind, though, is that if the first “freeze” is at more than half the strobe rate at which started, you may not be getting the right answer.

So, back to the question of the 36-tooth gear: If the motor is turning at 100 rpm, the gear is advancing at:
(36 teeth/rev) * (100 rev/min) = 3600 teeth/min = 60 teeth/second.

If you start with a strobe rate of 10 Hz, you’ll find the image has “frozen”, as the gear has advance exactly 6 teeth between flashes. It will also “freeze” at:
12 Hz (5 teeth between flashes)
15 Hz (4 teeth between flashes)
20 Hz (3 teeth between flashes)
30 Hz (2 teeth between flashes)
60 Hz (1 tooth between flashes)
However, at no strobe rate above 60 Hz will it “freeze”. Remember that you need to increase the strobe rate to at least 120 Hz to know you’re not missing anything.

If you take 60 Hz, convert it to teeth per minute and divide it by the number of teeth, you get the number of revolutions per minute:
(60 teeth/sec) * (60 sec/min) / (36 teeth/rev) = 100 rev/minute.

Good Luck,

PS: I wrote this a couple of hours ago, before anyone else had responded to original posting. Despite that, it appears to contain some things that may be of use, so here it is.

Hi Eric,

Thank you very much for your detailed explanation of the strobe light operation and theory. I will modify the strobe light to run much slower and try the examples that you suggested. I built my strobe light using the VEX Microcontrolle and a bright white LED in an effort to reproduce strobe light exhibits shown at the Boston Museum of Science, which I found fascinating during a school field trip to the museum a while back, where they flashed targets using a very powerful Xenon strobe light. These exhibits were based on the work of Harold Eugene “Doc” Edgerton.

In order to build a “safer” strobe light I chose the VEX Microcontroller, a Bright White LED and a power transistor powered with a standard 9 Volt battery over using discrete high voltage construction and a Xenon flash bulb, that could be used to carry out various Stroboscopic experiments, including: freezing gears, spinning disks with targets drawn on them, fans running at various speeds and also reproduce the illusion of making water flowing from a faucet flow in reverse direction.

I noticed some recent posts on the VEX Forum relating to RPM/Volt for VEX motors and thought that the strobe light would make a good tool to measure motor speeds when attached to loads, when optical encoders were not available or impractical to use.

I understand that Strobe lights can trigger photosensitive epileptic seizures in individuals who are sensitive to flashing lights, so it may be a problem being used during contests and in the schools lab.