I always use on-axis absolute sensors (e.g. AS5047P connected via SPI) because I need absolute rotor position to within one turn at startup. I don’t want to run calibration on each boot, and also I want to make use of cogging compensation. None of this is possible with an incremental encoder. Off-axis sensors are always incremental, so you have to do some sort of open-loop calibration at each startup. If you cannot disconnect the load then this will be a problem.
Does this mean – in case of using an off_axis encoder – that:
The odrive calibration software uses the index impulses to calibrate and as a result of this procedure the needed linearization is also done ?
(correction of the behavior of the radial and tangential magnetic field B vector)
In case of usage of the MA310 – I do not need to do error correction by writing into the BCT register of the chip.
(BCT :Bias current Trimming needed for side-shaft configuration -)
I am also considering off axis encoder. My main concern is mounting option, mechanical alignment and susceptibility to impacts. Compared to off-axis, on-axis mounted magnet is less likely to be affected by shock loads or lateral forces on rotating elements.
Timken does have some material comparing the two but they are likely to be biased since their business is based on high cost off-axis kit solutions as opposed to low cost shaft end DIYs:
Thanks to your answer - we want to place diametrical neodymium magnet on the shaft and tiny encoder PCB beside.
The place is under discussion and as mentioned my main concern is the field linearisation what has to be done - perhaps this is handeled by the software of ODrive (odrive calibration software uses the index impulses ???)
I haven’t seen any code on ODrive master branch that can do linearization. Some encoder chips have the ability to perform self calibration and linearization at start up where user rotate the shaft unloaded a few turns by hand. However in case of an outrunner with strong cogging torque there is already some harmonic components in the velocity as you rotate the shaft, so the quality of the self calibration/linearization would be questionable.
They set up an on-axis experiment to study the relationship between “remaining error” and total amount of storage used in the computation. I think the case of multi-pole off-axis magnet ring with uncompensated encoder chip would be similar to the performance of “Linear interpolation” method in the study. That curve might give you some idea of minimum number of poles you should aim for.
" linearization at start up where user rotate…" which encoder chips do you mean ?
so we intend to make a trial with the MA310 chip (TBMA310-Q-LT-01A) from MPS and do linearisation by writing to the mentioned BCT register - also hoping the small bandwidth of this encoder (93Hz) will not be limiting the whole control loop ? (all encoders listed in the Odrive encoder quide have bandwidth greater than 200Hz…)
the multi-pole off-axis magnet solution, you mentioned, sounds good - but do you have an idea where to get such parts - only in China ?
the “ODrive master branch” - can you please send me the link to the location on Github - (try to get myself a little bit more familiar with this environment…)
Price wise RLS is around $60+$30 (shipping) versus taobao seller around $1~4+unknown shipping. The raw magnet rings are such fragile items I worry about Chinese quality shipping.