I can't get any motor to move. I can't even get a beep. Help please!

Total Noob here, not a programmer… please forgive me!

I want to make a “lazy susan” table with a large gimbal motor under it to spin it to specific angles. The Odrive will receive input from an Frsky X8R drone receiver that outputs PWM servo signals.

I have already worked my way through the “Getting Started” section but was not able to get certain parts to work.

My Odrive board: 56 Volt Version 3.6, purchased in September 2020

My motor: T-motor G100 gimbal motor (I also tried 3 other motors)

My Encoder: 8192 CPR capacitive encoder from Odrive store

Battery hooked up to Odrive: 24 Volt

Things I have already done with Odrivetool:

Set current limit, Set cal current, set break resistance, set velocity limit, configured pole pairs, set encoder, and I set motor type to gimbal (Motor_TYPE_GIMBAL) Saved after all this.

Problem: In the “Getting started” everything is fine until I get to the part where I type :

odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE

This should start the calibration sequence, but nothing happens, not even a beep. I then wanted to see if it was the motor, so I switched out for multiple other motors. None did anything. I checked the voltage going to the board using “odrv0.vbus_voltage” and the voltage reads fine, exactly the battery voltage.

What do you think is wrong?

Thank you to anyone who can help me

What errors (if any) does the odrive give?

Try setting it up as a normal motor. I wouldn’t recommend anyone to use MOTOR_TYPE_GIMBAL unless they know what they are doing. It’s a badly named feature, IMO.
MOTOR_TYPE_GIMBAL actually means “don’t use closed-loop current control - assume that the motor behaves like a plain inductor and not a motor, because velocity is always very low, and resistance & inductance are very high”

This is what came up immediately after trying to do the calibration sequence.

I tried switching to MOTOR_TYPE_HIGH_CURRENT. The motors still do not move and the board does not beep.

Hi @awhitney, it seems you’ll want to update the software. Try pip install --upgrade odrive, and then odrivetool dfu.

Then dump_errors(odrv0) will work properly :slight_smile:

I did pip install --upgrade odrive and it worked
I did odrivetool dfu and it gave an error
I did startup calibration and nothing happened.
I then did dump_errors(odrv0) and it gave me an error

Any ideas? Thank you for your help so far. I really appreciate it!

Oh, you have to use odrivetool dfu outside of the odrivetool. Just at the powershell window or command prompt.

Also we’ve had problems with anaconda… can I suggest just boring old python 3.8?

I uninstalled Anaconda and then installed the most recent version of python. I then went to the cmd prompt and tried to open odrivetool , but it was not recognized. I then tried pip install --upgrade odrive , it starts to work but then spits out 3 pages of red errors.
Should I go back to anaconda?

I reinstalled anaconda, except this time I went with the 32 bit version. Ran the calibration --nothing happened. I then typed odrv0.axis0.motor to see if it would yield some useful information.

Make sure you don’t use Python 3.9, matplotlib (required by ODrive) is not updated yet, so it fails. You have to use 3.8.x

Looks like you have motor error 0x08. That corresponds to DRV_FAULT. That is quite unusual, and indicates a hardware fault. Have you tried axis 1?

I’m not sure what happened, but things got worse. Now my computer does not respond when I plug the odrive board into the USB. When I try to use Zadid to look at the driver it does not show up either.
I was trying different things connected to odrivetool dfu. I was trying to follow the instructions in the odrive tool section of the website for “Upgading firmware with a different DFU tool.”

When I reached the part where I am supposed to use DfuSe Demo , It can’t find the board. I had the tiny switch set to DFU. I then tried using STM32Cube programmer becasue people said it might work better than DfuSe. It found the board, but it would only find the .hex file and not the .dfu file that I created with DfuSe manager. Anyway, STMCube programmer let me download the .hex file to the board. The board seemed to work at first, telling me the voltage, but that was it.
The next morning my computer would not detect when I plugging in the USB. Zadig does not show anything odrive or anything STM32.

So, how bad did I mess things up?

Not sure. At this point, I would just go for the STLinkV2 and program it that way. Then you’ll be confident it flashed properly.