# Encoder line count vs PPR

I am slightly confused about the terminology of rotary incremental encoders. The encoder in question is a dual channel quadrature encoder. I have attached the datasheet here: Nidec RE30E-1000-213-1 encoder datasheet.

The reason I ask is I am trying to calculate RPM of a motor that is rotating this encoder.

What is the difference between pulses per revolution (PPR) and line counts?

This encoder is 1000 PPR for each channel, so that is 2000 PPR total. However I am counting both rising and falling edges of each channel pulse, so am I correct in saying this encoder is 4000 PPR? What is the line count of this encoder then?

Also I have turned the motor at approx 4000rpm and the output frequency of each channel is 66.6kHZ.

• Where is the "line count" phrase referred to? No mention in the data sheet from what I can tell. Apr 11, 2021 at 10:30
• I am asking about line count in general, where some formulas for rpm use line count instead of PPR Apr 11, 2021 at 10:39
• Apr 11, 2021 at 10:40
• Ok, so I have to use 4000 as PPR for my calculations. I will maybe post my formula to show how I am calculating rpm Apr 11, 2021 at 10:44
• If you leave an answer I will accept it. I think it wold be better if I post a new question instead of editing this one. Apr 11, 2021 at 11:04

The PPR number gives the number of pulses for a full rotation. But every pulse has two edges, or signal change. So if you monitor only the rising edge, you will count exactly PPR events in a full rotation.

Every pulse has also a falling edge: it is "electrically" necessary in order to generate a subsequent rising edge. And you can monitor it too, so you will have twice the count than before. But, this does not mean the resolution will be double, it depends on how the falling edge is generated.

Think at a rotor having a directional light source on it, and a receiver. Every time the rotor aligns the light source with the receiver, the receiver output goes high but, briefly after, the output will go down again. Clearly, this system generates a pulse for every rotation and, by counting both the edges of the signal, 2 events per rotation will be counted. But the falling edge does not increment the accuracy of the system: after a falling edge, the rotor can be practically anywhere. The output signal is something like:

__--_____--_____--_____--_____

In the same system, think now that the sensor does not output 1 when it see the light, instead it inverts its output. Now, the signal will be:

__-------_______-------_______-----

Now, the resolution is halved, 0.5 PPR, but both the edges give valuable information and, by counting both, the resolution gets doubled.

If the system implements a quadrature output, i.e. two output channels, we can say very similar things. Quadrature is necessary to know direction of rotation, and useful to detect failures or noise. But, again, this does not mean that the accuracy is really increased, by evaluating both channels and/or both edges of the two channels. An example output referring to the first signal, but with quadrature output, would be:

A: _____--_____--_____--_____--
B:   ____--_____--_____--_____--


This signal is correct, but does not really increase accuracy.

So, the "safe" answer to your question is: use the PPR number to calculate speed, and divide it by two if you count both edges, and divide it by four if you count both edges of both signals.

On the other hand, may well be that the encoder is constructed similarly as the second example (inverting state). If that is mentioned in the datasheet, or you can prove it by experimenting, then you can effectively think that the encoder has a resolution 2 or 4 times greater than the declared PPR, as we see in the second example.

Also I have turned the motor at approx 4000rpm and the output frequency of each channel is 66.6kHZ.

4000 rpm is 66.66 rotations per second. Giving that the encoder has 1000 pulses per rotation, correctly it outputs the frequency of 66.6 kHz, which is the frequency of the rising (or falling) edges. So everything matches.