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)
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.
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.
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?
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.
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.
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).
Have you tried putting the 0.4.11 firmware back on (or even updating to 0.5.3?)
TBH most likely the STM32 SPI port is fried, either by a ground loop or by ESD… (or maybe you accidentally connected 5V to MOSI)
If you are confident with a hot air station you could probably replace it and reprogram with your ST-Link.