PPR vs CPR caught me out while I was checking an encoder for an ODrive. The CUI AMT102-V datasheet says 2048 PPR, but the ODrive config asks for CPR, which is 4 x 2048 = 8192 because it counts every edge of the A and B signals.
I only caught it because I went back to the datasheet. How do you guys check a motor, encoder and ODrive combo before you order? Do you read through every datasheet each time, or is there a faster way?
PPR vs CPR is typically just one of those things you get a feel for – usually I’ll just double check the units they specify, and convert to CPR. The only issue is that some companies swap the terminology between PPR and CPR (US Digital especially), which is a pain. So usually you just have to scan the datasheet. If you’re using an ODrive S1/Pro/Micro, you can look at axis0.observed_encoder_scale_factor after a (failed) calibration to check what the ODrive thinks the CPR ‘should’ be.
Do you keep a note of the CPR you confirmed for each encoder, or check the datasheet again when you use it in another build?
Honestly, I usually remember off the top of my head 
- AMT102 is 8192 CPR
- AMT10E2 is 20480 CPR
- Those cheap rotary ‘600 P/R’ rotary encoders from Amazon are 2400 CPR
You could probably just grab a marker and write it on the encoder, if that helps. I don’t use too many different types of incremental encoder these days though – almost always just absolute encoders. And in the GUI (for S1/Pro/Micro only), if you enter the wrong pole pairs or CPR, it’ll detect that and suggest what the correct value should be.
Thanks, this helped a lot. I honestly thought I was the only one getting caught by PPR and CPR. From now on I’ll check which one the datasheet really means, convert it to CPR before it goes into the config, and write the number on the encoder so I don’t have to look it up again.
Haha, you’re definitely not the only one. I remember being back in college and being super confused why the AMT102 was advertised as 8192CPR when the datasheet only said 2048 