MotorError.CONTROL_DEADLINE_MISSED

Hi Everyone!
I was following the getting started guide on the odrive website and everything worked like a charm(well, after a couple of tries…) until I reached to the point where we implement closed loop control. For whatever reason I am unable to implement that, or even velocity control. Meaning, other than requesting “AXIS_STATE_FULL_CALIBRATION_SEQUENCE” or using the “AXIS_STATE_LOCKIN_SPIN” I am unable to move my motor (which is a 90KV motor :https://hobbyking.com/en_us/9225-90kv-turnigy-multistar-brushless-multi-rotor-motor.html)
I am just starting out with robotics so unfortunately, I don’t really have a lot of experience with this stuff. I read a lot of forum posts before posting and followed the steps that solved their issues but the ones about “control deadline missed” don’t really apply to me because of my simple setup. (There’s no external arduino, or load applied to the motor, or a specific control I want etc). I’m just trying to initiate closed loop control for now using my laptop connected to odrive. Any help is greatly appreciated. I know I might’ve glossed over some important information so anything you need I can provide. Thanks again.

I’m using Odrive v3.6-56V version and
dump_errors(odrv0) gives
system: not found
axis0
axis: Error(s):
AxisError.MOTOR_DISARMED
motor: Error(s):
MotorError.CONTROL_DEADLINE_MISSED
DRV fault: not found
sensorless_estimator: no error
encoder: no error
controller: no error

I would erase everything using the erase_configuration() command and then restart the Getting Started procedure over again.

You should be able to initiate the AXIS_STATE_FULL_CALIBRATION_SEQUENCE and see the motors turn. It takes a few seconds after the beep.

Then do odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL. From there you should be able to command the motor to turn using odrv0.axis0.controller.input_pos = 1 or some other number.

Then tell me what happens.

I had some false starts due to my power supply. I bought a 24 VDC Meanwell and those issues were fixed. What power supply are you using?

1 Like

Thanks for the suggestion…I’ll let you know how it goes.
And I am using a variable DC power supply configured at 32V at the time of setting everything up. But later on I plan to use a battery to power everything up.

Hi. Sorry for being a bit late, the weather here is severe right now.
So, I did as you suggested, in fact I tried to run closed loop control with another new Odrive I had, as well as using a 22.1V battery. The response is exactly the same. It works with commands like FULL_CALIBRATION_SEQUENCE, LOCKIN_SPIN, and ENCODER_OFFSET_CALIBRATION but not with closed loop control.
This is so frustrating because I’m running against a deadline here and my supervisor is not the most understanding about this whole thing. Any other ideas are welcome and thanks again for trying.

One extra note I’d like to leave, is that I am using motor type high current with my motor because it only has a resistance of 0.2ohms according to the supplier. However, in the getting started guide on Odrive website, the motor type examples show mine to be most similar to the gimbal motor (visually at least). Can someone comment on that?
I tried to use gimbal motor type earlier, but I wouldn’t even get to the calibration sequence, and it would throw out a “Motor Error - Modulation Error” to me.

I would update everything first, run these commands in powershell/bash in this order:

To upgrade the tool to 0.6.3.post0: pip install --upgrade odrive
To upgrade the firmware: odrivetool dfu

Control Deadline Missed only makes sense as a follow-on error to something else.

1 Like