Hello, I have a problem with my motor. When I try to reach small positions, for example:
odrv0.axis0.controller.input_pos = 0.5
odrv0.axis0.controller.input_pos = 0.8
it performs a good position control without any major difficulties. However, when I try to do more than 3 or 4 turns,
odrv0.axis0.controller.input_pos = 4
El motor acelera rápidamente y se detiene automáticamente forzando el apagado y hace un golpe interno (al menos creo que es un golpe).
This is the error I see after the failure:
In [128]: print(odrv0.axis0.error)
64
In [129]: print(odrv0.axis0.motor.error)
4096
PS: Sometimes it doesn’t even turn off, it just gets stuck, the coils start to rattle loudly and the current consumption increases.
Hi! Can you please give a bit more information as to your setup? Specifically:
- What ODrive, motor, and encoder are you using?
- Can you share some images of the wiring and encoder mounting?
- When you have the errors, can you show the output of
dump_errors(odrv0)?
Hi,
I’d say you should probably increase current_lim_margin and switch to pos_filter or trap_traj input mode. However, unfortunately we really can’t help with those clone ODrives, they have all sorts of reliability and performance issues (and the encoder is much worse than that on the Pro
). Really high current noise is a common issue, which could absolutely explain this. I’d recommend picking up a genuine ODrive or reaching out to the manufacturer for support.