We’re debugging an issue in a system we’ve built around an ODrive controller. We’re debugging an issue and want to check whether the config data downloaded through use of odrivetool backup-config contains all the motor calibration data.
Essentially - the ODrive is currently calibrated for motor A and we have backed up the conifg. We want to recalibrate the ODrive for motor B. Our question is - ‘When we restore the motor A config, will we need to do a recalibration or does the config contain everything needed?’
Hi! This depends on the specific motor/encoder types.
First off:
want to check whether the config data downloaded through use of odrivetool backup-config contains all the motor calibration data.
Yes, it does, with some caveats.
Typically, calibration contains two main types of information:
Motor calibration information (phase inductance, phase resistance)
Encoder calibration information (phase offset, hall timings, etc)
If you’re using the same motor between two setups, you can typically reuse the motor calibration information, however in nearly all situations, the encoder calibration will be different, so you need to re-run encoder calibration. As a result, by default, with odrivetool restore-config, it doesn’t actually restore the encoder calibration, as running with an incorrect calibration is dangerous.
Typically, the only case where you can reuse encoder calibration data is when you’re using hall sensors as the commutation encoder. For any other type of commutation encoder (absolute, incremental, onboard magnetic, etc), you need to re-run calibration.
We’ve got the 16384 CPR Absolute RS485 Encoder . The encoder is not going to be disassembled and removed from Motor A . From looking at the docs, am I right in thinking that provided there is no relative motion of the encoder and the motor shaft whilst we’re disconnected and that the phases are reconnected in the same order, then this is one of the cases where can avoid re-running the calibration?
Is it simply the case of manually copying over the parameters mentioned under ENCODER_OFFSET_CALIBRATION, i.e.:
From looking at the docs, am I right in thinking that provided there is no relative motion of the encoder and the motor shaft whilst we’re disconnected and that the phases are reconnected in the same order, then this is one of the cases where can avoid re-running the calibration?
This is correct! Very important there’s no relative motion, but as long as it all stays assembled, should be fine.
Is it simply the case of manually copying over the parameters mentioned under ENCODER_OFFSET_CALIBRATION, i.e.: