TL;DR: I tried to do the ODrive motor calibration sequence on a “robotics motor”, heard a “pop”. Now ODrive is not connecting to odrivetool, 3.3V is only 2.3-2.5V, and M0 pin Z seems to be shorted to ground.
I am new to ODrive and recently bought two ODrive V3.6 24V version motor controllers. I successfully got one of the ODrives to do calibration and closed loop control (
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE and
AXIS_STATE_CLOSED_LOOP_CONTROL) by following the Getting Started guide with a Turnigy gimbal motor 5208 and an AMS 5047P encoder. So far so good.
I attempted to do the same with a “robotics motor” similar to this one from T-Motor with an AMS 5047P as the encoder. [As an aside, don’t get the T-Motor one if you’re looking for something similar, the gears don’t mesh well when I had the chance to try it out and it is overpriced. Let me know if you need suggestions!] What it is essentially is a large BLDC motor with a planetary gear set within the stator space. When I came to the full calibration sequence step, the motor would only jolt and move a tiny bit. Subsequent commands would not move the motor (despite the power led being on) until I power cycled the ODrive. With dump_errors(odrv0) in odrivetool, I see that the error is
ERROR_MODULATION_MAGNITUDE. Thinking that maybe the issue is with
motor.config.current_lim, I repeated the above steps a few times with different values and got the motor to make the “thunk” sound a few more times.
That’s when I heard a “pop” sound and my hand immediately hit the E-Stop on my power supply. I felt all the components on the board but nothing felt very hot. When I tried to turn the ODrive back on, the power (PWR) led would turn on, but the board no longer connects to odrivetool. Using a multimeter, I found that the 3.3V output on the headers is only 2.3-2.5V. Also, pin Z (this is probably the encoder index signal pin?) of axis 0 (M0) is now shorted with ground.
I tried to address the 3.3V issue first. After looking through the V3.5 schematics and with my working ODrive, I verified that I could power the board externally with just a 3.3V power supply to the 3.3V and GND header pins. This leads to the PWR led lighting up and odrivetool connects to the working ODrive. When I tried this step with the non-working ODrive, the 3.3V pin remains stubbornly at 2.3-2.5V and odrivetool fails to connect. I de-soldered and removed the 3.3V regulator (U3) thinking that it might be the problem but the 3.3V power supply still remains at 2.3-2.5V and odrivetool fails to detect the ODrive board.
Does this mean that the microcontroller (STM32F405RGT6) is the issue and needs to be replaced? Or is something else the problem? Based on my understanding of the V3.5 schematics (I’m assuming no big changes in V3.6), the only thing connected to M0 pin Z (M0_ENC_Z in the schematics) is the microcontroller.
Also how did this happen and what steps should I take to avoid this in the future?
Thank you for reading so far and I appreciate all suggestions!