Hey,Guys.
Now when I’m doing my project, I found a strange and interesting thing.
My device is Odrive_V3.5_24V,and my encoder is AS5047P.
The CPR of that encoder should be 4000,while when I’m debugging, it is always wrong.
And I use the function,(<ordv.axis>.encoder.config.cpr ),I found that the number is under 3000, so I input 3000 as my CPR of the encoder. Thanksfully, it works. But it makes me wondering.
Can someone tells me what happend?
As towen mentioned, the AS5047P has a couple interfaces you can use. From the datasheet (page 19), the default settings for the incremental interface is binary mode with 4096 CPR.
There is also a decimal mode available and that supports a CPR of 4000 (but is not the default).
How are you checking the CPR you’re getting? I would mark your starting position, then rotate the motor by hand as close to one perfect revolution as you can.
Also in your screenshots you seem to be using axis1 but set the cpr value of axis0?