I have one odrive and two heverboard motors, I have done initialization by instruction https://github.com/madcowswe/ODrive/blob/master/docs/hoverboard.md on 0.4.7 firmware version and I see an issue:
– I send command odrv0.axis0.controller.vel_setpoint = 120 - motor 0 starts spin
– Then I send command odrv0.axis1.controller.vel_setpoint = 120 - motor 1 starts spin, but motor 0 stop the spinning, and hex(odrv0.axis0.encoder.error) give 0x20, //<! the motor was unexpectedly disarmed.
When I send commad to uart (v 0 120, v 1 120) I see the same behavior.
I have done all the commands from instruction with:
Do you have filtering (capacitive) on the HALL sensors?
We used ~20nF to ground which cleans up the noise on the sensors so that they do not illicit an illegal state as detected by the firmware.
IIRC, the HALL signals should never be all high or all low, in our case (with hoverboard motors) there was so much noise coupled from the motor wires that it was triggering the firmware to generate a error.
Also, the probability of the error triggering increased with speed.
Hi, no, I do not have filtering for hall signals now, on previous firmware I sow couples times error code ILLEGAL ENCODER, now on 0.4.7 I see UNEXPECTED DISARMED. I tried diferent speed, it is doesn’t matter.
So, when I downgraded to 0.4.6 everything works good, I keep in mind that I need to add capacitors for reliability.
When I add capacitors I may try again, but now I think that UNEXPECTED DISARMED it is not the same with ILLEGAL ENCODER STATE, is it correct for 0.4.7?