The measured motor phase resistance is outside of the plausible range.
During calibration the motor resistance and inductance is measured. If the measured motor resistance or inductance falls outside a set range this error will be returned. Check that all motor leads are connected securely.
The measured values can be viewed using odrivetool as is shown below:
In : odrv0.axis0.motor.config.phase_inductance Out: 1.408751450071577e-05 In : odrv0.axis0.motor.config.phase_resistance Out: 0.029788672924041748
Some motors will have a considerably different phase resistance and inductance than this. For example, gimbal motors, some small motors (e.g. < 10A peak current). If you think this applies to you try increasing config.resistance_calib_max_voltage from its default value of 1 using odrivetool and repeat the motor calibration process. If your motor has a small peak current draw (e.g. < 20A) you can also try decreasing config.calibration_current from its default value of 10A.
In general, you need
resistance_calib_max_voltage > calibration_current * phase_resistance resistance_calib_max_voltage < 0.5 * vbus_voltage
The measured motor phase inductance is outside of the plausible range.
PhaseResistanceOutOfRange for details.
The gate driver chip reported an error.
The ODrive v3.4 is known to have a hardware issue whereby the
motors would stop operating when applying high currents to M0. The
reported error of both motors in this case is
The conjecture is that the high switching current creates large ripples in the power supply of the DRV8301 gate driver chips, thus tripping its under-voltage fault detection.
To resolve this issue you can limit the M0 current to 40A. The lowest current at which the DRV fault was observed is 45A on one test motor and 50A on another test motor. Refer to this post for instructions for a hardware fix.
The bus voltage was insufficent to push the requested current through the motor. If you are getting this during motor calibration, make sure that config.resistance_calib_max_voltage is no more than half your bus voltage.
The phase current was outside the measurable range.
There is a default 10% margin between the max allowed current and the measurable current range.
This is usually sufficent, but in some situations you may need some more margin. You can simply
current_lim a bit, or you can increase the
requested_current_range. If you
still have issues after
requested_current_range is 30% higher than
you may have instability issues in the current controller.
Motor current magnitude exceeded the limit and margin.
There is a default of 8A margin between the
current_lim and this error. In some
situations the current controller may overshoot a bit more than this, so you can try to
turn this up a bit. If you still have issues after the margin is more than 30% of your
current_lim you may have stability issues in the current controller.
too much current pushed into the power supply
too much current pulled out of the power supply