ODrive v3.6 MOTOR_ERROR_DRV_FAULT on startup, no motors attached

Hi, I’ve recently been trying to use ODrive V3.6 56V to power some Turnigy Aerodrive SK3 motors. I’m using a Meanwell 48V 2kw PSU, no power spikes > 50V observed on oscilloscope.

See error dump:

In [27]: dump_errors(odrv0,True)
axis0
  axis: Error(s):
    AXIS_ERROR_MOTOR_FAILED
  motor: Error(s):
    MOTOR_ERROR_DRV_FAULT
  fet_thermistor: no error
  motor_thermistor: no error
  encoder: no error
  controller: no error
axis1
  axis: Error(s):
    AXIS_ERROR_MOTOR_FAILED
  motor: Error(s):
    MOTOR_ERROR_DRV_FAULT
  fet_thermistor: no error
  motor_thermistor: no error
  encoder: no error
  controller: no error

In [28]: dump_errors(odrv0,True)
axis0
  axis: Error(s):
    AXIS_ERROR_MOTOR_FAILED
  motor: Error(s):
    MOTOR_ERROR_DRV_FAULT
  fet_thermistor: no error
  motor_thermistor: no error
  encoder: no error
  controller: no error
axis1
  axis: Error(s):
    AXIS_ERROR_MOTOR_FAILED
  motor: Error(s):
    MOTOR_ERROR_DRV_FAULT
  fet_thermistor: no error
  motor_thermistor: no error
  encoder: no error
  controller: no error

In [29]: odrv0.axis0.motor.gate_driver.drv_fault
Out[29]: 1024

In [30]: odrv0.axis1.motor.gate_driver.drv_fault
Out[30]: 0

I’ve erased my configuration and am using the defaults with no modifications.

I measured GVCC on C32 and C47, both are stable at 12V. From the DRV8301 datasheet, this fault code on bit 10 is just called “fault” with no further information that I can see.

This ODrive board was able to do some calibration spins and some index seeks for a while, but no dice anymore. It’s been stuck in this state – so I assume either the board/driver chip is defective, or I’ve done something obscure to break it. It boots in this state, regardless of dcbus voltage, motors connected, and/or encoders connected.

I’ve seen some posts referencing this, but no concrete solutions. Does anyone know whats up or how I should proceed debugging?

Could be an over-current lock-out on the gate driver caused by a short circuit between phases. Check your wiring.
https://e2e.ti.com/support/motor-drivers/f/38/t/677684
Although given that it persists after a power cycle without enabling motors, it’s probably something else with the chip. :frowning:
You could try disabling overcurrent protection in the chip (firmware hack) but if the chip really does have an internal fault then doing that may cause smoke.
It is possible to remove and replace the chip with a hot air station if you have one. Otherwise, you should probably contact info@odriverobotics.com and see if they will send you a replacement.

I checked the motor phase outputs, no shorts between them. I also checked for DCBUS voltage rise by connecting psu after it has been on for a bit – no change. I contacted ODrive about a replacement, thanks @towen.

Is this an official ODrive purchased from odriverobotics.com?

If you’d like, try flashing the devel branch, it should give you a better error code for the DRV fault

Great idea!
I did just that, I got the following error codes:

In [12]: odrv0.axis1.last_drv_fault
Out[12]: 0

In [13]: odrv0.axis0.last_drv_fault
Out[13]: 1058

Also interesting is that I didn’t get a fault until I tried to request calibration (I really got my hopes up there lol). I guess it delayed initialization of drivers? I’ll try to find in the firmware what this number means.

It appears to say the high side of A and C on motor 0 are overcurrent – I checked and A is apparently shorted to ground. C does not appear to – might just be a sideaffect of A being shorted though. Some of the solder pads on the transistors for M0A look low-flux/low-quality – maybe it got shorted to ground pad through them? I’ll keep looked but I probably will keep a soldering iron away from it now – I’ve already destroyed one too many of these boards with my skills. :stuck_out_tongue:

Please email info@odriverobotics.com with a link to this thread and your order number, and we can replace your board.