maximum rpm for encoder.

Has anyone found the maximum rpm that the encoder can track a wheel before some of the pulses are missed because the pulse train is too fast? The reason why I ask is that I am considering using the encoder to track the velocity of a cell shoot wheel. any thoughts?

We know that the digital inputs on the cRIO are sampled at 153KHz. From the Shannon-Nyquist theorem we know that we need to sample at twice the maximum frequency we are expecting in order to fully reconstruct the waveform - so the maximum frequency of each encoder channel is 153KHz/2 = 76.5KHz.

Note that there may be (and there probably is) some filtering component on the input, so the actual limit could be lower. Still, I think that “tens of kilohertz” is probably the right answer.

What this means for encoder shaft RPM is a product of the gearing of your system and the CPR of the encoder.

For example, the kit encoders are 250CPR (1000PPR because of the 4x decode). So you probably want to limit these to a maximum of 10-20 rotations per second, or 600-1200 RPM. You can certainly buy lower resolution encoders (or you can make your own using reflective tape strips and an optical sensor - this is what we did in 2006 for our flywheel).

great stuff! Thank you very much! I have some 100PPR encoders that might be able to do the job, otherwise, i might take you up on your make your own encoder wheel idea.

So its been suggested to me that for ppvs I increase the rp maximum to 5. I thought Id see what the board thinks of that idea.

If you look at the sensor manual it says that the maximum RPM’s of the sensor is 10000. But i don’t anyone is going to need anywhere near that. And it all depends on the processing speed of your cRIO.


we are sampling at 20,000 cps without any difficulty using the kit-supplied encoders.

This is using the 4X sampling feature, which is enabled by default. This means even though the encoders produce 250 cpr, the cRIO is actually able to read 1000 cpr by capturing every edge transition on both phases.

My related question is:

I’ve noticed in the WPILib documentation that the FPGA is only mentioned when using the 4x encoder mode. In 1x mode, the documentation mentions that a Counter object is used instead. If we use 1x mode, is the FPGA NOT used to count pulses? If the FPGA is not used, does this reduce our maximum count rate by more than a factor of 4? Does this basically mean the 4x mode is always our best bet when using encoders?

The FPGA implements 4 encoders and 8 counters. The encoders are used in 4x mode while the counters are looking at only one of the phases in either 1x or 2x mode. The FPGA is doing the counting in either case.

If you’re just counting pulses, you’ll get the highest resolution with 4x. However, if you’re using the rate feature, you will probably get better results (less noise) with 1x, as it is always counting the same transition.

As for the maximum rate question: