Skip to content

Encoder Resolution (PPR) and Quadrature: Configuring Your Encoder on SOLO

Motion Terminal

Introduction

Set the wrong PPR by a factor of two, and your motor will report half the real speed and drift in position on every turn. The value is small, but it feeds every position and velocity reading the controller makes.

This article shows how to set the right resolution and quadrature on SOLO. You will learn what PPR and CPR mean, why a quadrature encoder gives you four counts per line, and where to enter the value in Motion Terminal so your feedback is accurate.

PPR, CPR and Resolution: What the Numbers Mean

An incremental encoder reports motion as a stream of pulses. The question is how many pulses you get per turn, and that is where the labels matter.

PPR stands for pulses per revolution. It is the number of pulses on a single channel for one full turn of the shaft. This is the number the datasheet usually prints, and it is the encoder lines value you enter on the controller.

CPR stands for counts per revolution. With a quadrature encoder, the controller counts every edge on both channels, so CPR is four times PPR. A 1000 PPR encoder gives 4000 counts per revolution.

Resolution is the smallest angle the controller can resolve. Divide 360 degrees by CPR. A 1000 PPR encoder reaches 4000 counts per turn, which is 0.09 degrees per count. Higher PPR means finer steps, but it does not come for free, as the table below shows. For a wider look at encoder families and how they differ, see motor encoders.

Encoder PPRQuadrature CPR (x4)Resolution (deg/count)Noise sensitivity
50020000.180Low
100040000.090Low
204881920.044Medium
4096163840.022Medium
10000400000.009Higher

Takeaway: PPR is what you read and enter, CPR is what the controller counts, and resolution is the result. Mixing up PPR and CPR is the most common setup mistake.

Why x4 Quadrature Multiplies Your Counts

A quadrature encoder has two output channels, A and B, offset by 90 electrical degrees. That 90 degree offset is the quadrature part. Because the two channels are shifted, each line produces four distinct edges as the shaft turns: A rising, B rising, A falling, B falling.

The controller counts all four edges, so it sees four counts for every one pulse on a single channel. This is why CPR equals PPR times four. The same phase offset also tells the controller the direction of rotation, since the order of the edges flips when the shaft reverses.

You do not enter the x4 factor anywhere. You enter the PPR, and SOLO applies the quadrature multiplication internally.

Setting Encoder Lines (PPR) in Motion Terminal

In Motion Terminal the parameter is called encoder lines. It lives in the encoder configuration section, next to the feedback mode setting. The value you enter is the PPR from your encoder datasheet, not the CPR.

Initial wiring of an encoder BLDC motor to a SOLO board and PC for Motion Terminal setup

Enter the number, write it to the controller, and the feedback chain is configured. Wiring and the calibration routine are a separate step, covered further down.

Reading the Value from Your Encoder Datasheet

The PPR is printed on the encoder datasheet, but the wording varies. Look for pulses per revolution, lines per revolution, or PPR. Some datasheets list a part number where the resolution is encoded as a suffix, for example a 1024 line variant.

Watch for two traps. A datasheet may quote CPR or counts after quadrature. If you see a number that is already multiplied by four, divide by four before you enter it. And a motor with a gearbox lists shaft PPR, not output PPR, so check which shaft the encoder sits on.

Verifying the Configured Resolution

After you set the value, confirm it. Turn the shaft exactly one full revolution by hand and watch the position counter. It should advance by the CPR, which is your PPR times four. A 1000 PPR encoder should move the counter by about 4000 over one turn.

If the counter reads half or double what you expect, your PPR is off by a factor of two, often a PPR versus CPR mix-up. Fix the value and check again before you tune any loop.

Takeaway: enter PPR, write it, then verify with one full turn. Two minutes of checking saves hours of chasing a phantom tuning problem.

How Resolution Affects Position and Speed Accuracy

Resolution sets the floor on how finely the controller can sense motion. More counts per turn means finer position steps and a cleaner speed estimate, because speed is derived from how many counts pass in each time slice. At low speed especially, a coarse encoder gives a jumpy, quantized velocity reading.

So higher PPR is better, up to a point. Very high resolution makes the controller more sensitive to mechanical play, vibration, and electrical noise on the A and B lines. Each of those can add false counts, which the velocity loop then amplifies. As a rule, pick the lowest resolution that meets your accuracy target, then leave headroom rather than reaching for the highest count available.

For closed-loop position work where resolution drives the result directly, see position control of a brushless motor with incremental encoders.

Wiring and Calibration Come First

This article is about configuration only, the PPR and quadrature values. Before they mean anything, the encoder has to be wired correctly and calibrated to the motor.

Wiring connects A, B, and the index channel to the right pins, with proper grounding and supply. Calibration aligns the encoder’s zero to the rotor’s electrical angle, which the controller needs for closed-loop commutation. Both steps, with the pinout and the routine, are covered in how to connect and calibrate an incremental encoder with SOLO. Do that first, then come back here to set the resolution.

Noisy Counts and Missed Steps

If the position counter drifts over many turns, jumps when the motor accelerates, or never closes back to the same value, the cause is usually one of two things: a wrong PPR or electrical noise on the encoder lines.

A wrong PPR shows up as a consistent ratio error, the counter always reads a fixed fraction of the truth. Noise shows up as random extra counts, worse under acceleration or near power cables. Long unshielded leads, missing differential pairs, and bad grounding are common sources. SOLO has a built-in filter to reject short glitches before they become counts.

Anti-glitch filter diagram showing noisy encoder pulses sampled into a qualified output

For symptoms and the filter settings, see manage noisy encoders or hall sensors.

Takeaway: a fixed-ratio error points to PPR, random extra counts point to noise. Separate the two before you change anything.

How SOLO Handles Encoder Resolution

SOLO controllers handle quadrature encoders across the supported motor types and apply the x4 multiplication for you, so you only set the encoder lines (PPR) value. The same encoder configuration works for DC, BLDC, PMSM, and AC induction motors in closed loop.

Quadrature encoder disc with CHA, CHB and index channel waveforms connected to SOLO

You set the value in SOLO Motion Terminal, verify it with one turn of the shaft, and the glitch filter helps keep the counts clean. It is a short setup, and it works the same way across the controller range.

Conclusion

Getting encoder feedback right on SOLO comes down to one value entered correctly. Read the PPR from your datasheet, enter it as the encoder lines in Motion Terminal, and remember that quadrature gives you four counts per line, so CPR is four times PPR. Verify the setting with a single full turn of the shaft, and watch for fixed-ratio errors (PPR) versus random extra counts (noise). Once the wiring and calibration are done, this configuration step is what makes your position and speed readings trustworthy. To set it on your own bench, open the value in SOLO Motion Terminal.

FAQ

What is the difference between PPR and CPR on an encoder?

PPR is pulses per revolution on a single channel, and it is the number you enter as encoder lines. CPR is counts per revolution, which the controller produces by counting every edge on both quadrature channels. CPR is four times PPR, so a 1000 PPR encoder gives 4000 CPR.

How do I find the right PPR value for my encoder?

Read it from the encoder datasheet, where it is listed as pulses per revolution, lines per revolution, or PPR. If the datasheet quotes counts after quadrature or CPR, divide that number by four to get the PPR. For a geared motor, confirm whether the figure is for the encoder shaft or the output shaft.

Why does my motor read the wrong speed or position after setup?

The most common cause is a PPR set to the CPR value, or the reverse, which makes every reading off by a factor of four or by half. Verify by turning the shaft one full revolution and checking that the counter moves by PPR times four. If the error is random rather than a fixed ratio, suspect noise on the encoder lines instead.

Does higher encoder resolution always mean better control?

Not always. More counts per revolution give finer position and a smoother speed estimate, which helps at low speed. But very high resolution also makes the feedback more sensitive to vibration and electrical noise, which can add false counts. As a rule, choose the lowest resolution that meets your accuracy target and keep some margin.

Tags:EncoderFeedbackMotion Terminal

Browse all categories

Drive your next innovation today

Discover our High-Performance Motor Controllers, Test Benches, and Services trusted worldwide.