Encoder PPR Calculator

← All Tools

Encoder & System Parameters

CPR = number of physical line pairs on the disc. Also called LPR or lines/rev.
×4 is standard for servo/PLC applications. Uses A and B channels.

Maximum motor speed at which encoder must still count correctly.
RP2350 = 150 MHz; Arduino Mega = 16 MHz; STM32F4 = 84–168 MHz.

Leave at 0 if this is a pure rotary application.
Enter 5 for 5:1 reduction. Enter 1 for direct drive.

Results

PPR (Pulses per Revolution)
counts per revolution
Max Count Frequency
kHz at max RPM
Angular Resolution
arc-minutes per count
Linear Resolution
µm per count
Velocity Resolution
mm/min per count/s
Min Measurable Speed
RPM at 1 count/sec
Count frequency at max RPM vs. timer capacity
0 Hz

Timer / Counter Requirements

Minimum timer counter resolution to correctly capture all encoder edges at maximum RPM.

Min Counter Depth
bits (for 10× oversampling)
Min Sampling Rate
× count frequency
Counts per Nyquist Period
timer ticks per edge

Common Encoder Specifications

Encoder / ApplicationCPR×4 PPRMax freq (3000 RPM)Notes
Generic stepper shaft encoder10040020 kHzBasic positioning feedback
Omron E6B2 (standard)3601,44072 kHzPopular incremental encoder
T&C DC Servo Drive default1,2505,000250 kHz5mm screw → 1µm resolution
Heidenhain ERN 10202,0488,192410 kHzHigh-res industrial encoder
Renishaw RESOLUTE (abs)26-bitSerial protocolAbsolute; BiSS-C / SSI
Dynapar HS35 (1000 CPR)1,0004,000200 kHzIndustrial duty cycle encoder

MCU Hardware Encoder Counter Limits

MCU / PlatformHardware Encoder?Max Count FreqNotes
RP2350 (Pico 2)Yes — PIO~62 MHzPIO state machine; effectively limited by clock/4
STM32F4 (TIM1/TIM2)Yes — HW TIM168 MHz ÷ 2TIM in encoder mode, 32-bit counter
STM32G4Yes — HW TIM170 MHz ÷ 2Also supports LPTIM for slow speeds
Arduino Mega (ATmega2560)No — software ISR~25 kHzISR latency limits; use external QDEC chip for fast axes
ESP32Yes — PCNT40 MHzPCNT unit; 16-bit signed counter with filter
ATSAM3X8E (Arduino Due)Yes — TC in QDEC84 MHz ÷ 2Native quadrature decode in timer/counter