ERROR_DRV_FAULT on ODrive 3.5

Hello!

I’ve got a problem with ODrive 3.5 48V.

Some time ago the board was used in a project and everything worked fine. After some changes in electronics (other components than ODrive) motors started to vibrate in random moments (we checked encoders, PID gains and so on). Replacing the ODrive with a new board with the same configuration solved the problem.

Now I’m trying to check this old board. With old firmware (0.4.11) when I ran AXIS_STATE_FULL_CALIBRATION_SEQUENCE the motor (6354-180kV) didn’t move (or made only a small movement) and I got ERROR_PHASE_RESISTANCE_OUT_OF_RANGE.

Later I updated the firmware (0.5.1)(had to use STLink, odrivetool dfu and DfuSe didn’t work for me) and I got MOTOR_ERROR_DRV_FAULT after rebooting ODrive (before running calibration sequence - tried few times, even without the motor connected).
(screenshot)

Screenshot_6

I’m powering the board with a lab PSU, 31 V.
I also checked the motor phase outputs - ther are no shorts between them.

What troubleshooting should I do next? I know there’s a tutorial about ERROR_DRV_FAULT related to ODrive 3.4 - I have the 3.5 version.

Thank you in advance for your help.

Hmm, you should have a drv fault code if you have that error… what happens if you put dump_errors(odrv0, True)? Also, make sure you don’t have anything plugged into the SPI lines.

2 Likes

I get the same messages when using dump_errors(odrv0, True):

I have disconnected everything - I’m using only power input, braking resistor and USB:
odrive

Did you have anything previously connected to SPI?
Also, some of these faults have been from faulty hardware on “fake” boards from AliExpress/Taobao/etc. Where did you get this board?

1 Like

No, I haven’t connected anything to SPI previously - only USB serial (as far as I remember).

We bought it from ODrive store - board is not “fake”.

Are there any other things I can check? Replacing these DRVs might change something?

If you have a scope or a logic analyser (e.g. a cheap saleae clone) then you could check on the SPI comms to see if it’s a problem with the STM32 chip or (both of) the DRV chips.
You should at least see a square-wave pulse on SCK when the board boots up. If you don’t, then there is something wrong with the SPI.

1 Like

I’ve got only cheap dso150 scope. When I power up the board there are some voltage changes on MISO and SCK, I haven’t noticed anything on MOSI.

I’ll buy a logic analyser and try to check it again…

Just a sanity check: Have you checked tup.config and made double sure that the board version matches your board?
You could also try asking info@odriverobotics.com if they would replace your board with a new one.

What components exactly did you change?

1 Like

I just took the ODriveFirmware_v3.5-48V.elf file from https://github.com/odriverobotics/ODrive/releases.
tup.config will be used if I compile firmware on my own? Do I understand correctly?

Screenshot_8
These numbers match markings on the board.

Well, to be honest I don’t remember exactly, it was about 2 years ago… If I am not mistaken, we tried to communicate Arduino Nano with ODrive using serial (TX and RX pins), but finally ODrive recived commands from Raspberry Pi via USB. There is a chance that there was a ground loop for a moment (I just read about it in odrive docs) so that could do the damage (but I’m not sure).

So I used a logic analyzer and it seems like there are only 0x00 values on MISO and nothing on MOS (I tried swapping channels and the connections were ok - no voltage changes on MOSI).

What does it mean and what can I do next?

Do you have anything else plugged into the external SPI lines?

1 Like

I don’t have antyhing else plugged - here is my setup:

odrive_logic

Just odrive and logic analyzer