I have been unable to get motor calibration to work. Whenever I try to run the command it will jump forward just a little bit and then stall. changing the amount of motor poll pairs didn’t help and neither did changing the motor calibration current. However, I did verify that changing the current and increasing it did make the motor hold its position with more torque than it does at a lower one. So the Odrive is working, I just seem to have a parameter wrong
requested_state = 3 will do full detection which includes motor, index, and encoder offset; requested_state =4 will just do the motor and runs regardless of the encoder, which helps narrow down the problem
Thank you both for the help! I was following the getting started guide, but clearly not good enough! I will give it a try when I get back home and let you know.
I did both the 3 and 4 states and the motor acted exactly the same as it does in the video I linked above. I have 14 poles, i entered in 14 pole pairs, should it have been 14?
I also don’t get a beep when I try to the axis state motor calibration. It just stutters without any sort of beeping
I was actually just able to get an error and it is error 34359738368
which is a MOTOR_ERROR_UNBALANCED. the windings are incorrect? I had another simple ESC driving this motor just a couple weeks ago. If it is a hardware issue is it because I am using bullet connecters to connect the motor to the wires that lead into the Odrive terminals? Is that creating too much resistance differentials?
You may have some bad connections somewhere, check all your wires between the windings and the Odrive, you are looking for wires that are damaged (cut, kinked, twisted, crushed, stretched) or connections that are bad (not seated, oxide coated, poor solder joint, loose crimp/screw terminals)
If you have 14 poles then that means you have 7 pole pairs
I have replaced all motor wire connections, tried it with and without solder and shortened the length of the wires as well as increase the wire gauge. However the same error still remains. Also yes I mistyped I had 7 pole pairs entered. the only thing I have not tried is looking at the windings themselves.
Hmm,
First I tried to decrease the calibration current and increase the max voltage, but there was no change in behavior.
Then, I typed in odrv0.axis0.motor.config.phase_inductance into anaconda and the output I received was “inf”.
Connected to ODrive 3678386B3131 as odrv0
In [1]: odrv0.axis0.requested_state=AXIS_STATE_MOTOR_CALIBRATION
In [2]: odrv0.axis0.motor.config.phase_inductance
Out[2]: inf
This occurred on all the motors I have. So, I just did a full configuration reset and tried it on both my 35-36 910 KV propdrive V2 and my 35-42 1000KV propdrive V2 with no change in behavior during calibration, but now I get an inductance of zero?
Connected to ODrive 3678386B3131 as odrv0
In [1]: odrv0.axis0.motor.config.phase_inductance
Out[1]: 0.0
In [2]: odrv0.axis0.requested_state=AXIS_STATE_MOTOR_CALIBRATION
In [3]: odrv0.axis0.requested_state=AXIS_STATE_MOTOR_CALIBRATION
In [4]: odrv0.axis0.motor.config.phase_inductance
Out[4]: 0.0
In [5]: odrv0.axis0.motor.config.calibration_current=10
In [6]: odrv0.axis0.requested_state=AXIS_STATE_MOTOR_CALIBRATION
In [7]: odrv0.axis0.motor.config.resistance_calib_max_voltage=8
In [8]: odrv0.axis0.motor.config.calibration_current=8
In [9]: odrv0.save_configuration()
←[93;1m12:46:00.515744500 [LEGACY_OBJ] protocol failed with 3 - propagating error to application←[0m
Oh no odrv0 disappeared
Reconnected to ODrive 3678386B3131 as odrv0
In [10]: odrv0.axis0.requested_state=AXIS_STATE_MOTOR_CALIBRATION
In [11]: odrv0.axis0.motor.config.phase_inductance
Out[11]: 0.0
Thank you for your continued help anyway! I guess that’s what I get for trying to afford something I couldn’t by going through ebay. I will do what you suggested when I get home and if it still doesn’t work I will try my best to see if I can get a return.
I am powering the board with a 4s lipo battery that outputs a voltage of around 15V.
Okay, I just tried your suggestion and had no change in outcome. So it might be the hardware itself
If it doesn’t work after doing an erase config and then motor calibration like suggested above, you can also try the M1 motor channel to see if you get a different result, which would help to narrow down the set of possible causes.
I just tried the M1 motor channel with all the pins and such readjusted to no avail. The motor still behaves just as it did in the video I uploaded earlier in this thread. it turns a little bit, stalls and does not move anymore. its unfortunate It might be the hardware because I was finally starting to get better at using the python terminal. Will just have to save up more to afford a non-used one in the future.
Also thanks for offering your advice! Words can’t express how amazed I am at the work you have done here.
This is expected when running motor calibration. You need to run dump_errors to see what is actually happening. While possible, it is unlikely to be an inverter hardware issue on both channels at the same time.