Vbus overvoltage despite 50W resistor

Hi all,

Hoping to find some direction for solving my issue. I am using a 24V ODrive with the D5065 270KV along with the included 50W brake resistor (0.5 ohms) and a 24V 450W power supply. The motor provides a constant load in current control mode and during use is backdriven against that load at a variable rate. At very low currents (3-5A) I was constantly tripping the vbus voltage limit.

I reduced the power supply to output only ~20V and bumped up the brake resistor value in the software to 0.7 ohms. That helped a bit, but now I’m having the same issue at a currents of >=12A.

I also noticed that if the motor is backdriven very slowly, or very quickly, the resistor seems work properly. At certain backdriven RPMs (~800-1000) the voltage spikes heavily and trips the overvoltage error.

Any insight into what I’m seeing? Is a fix as simple as using a larger power resistor? I’m not sure how to solve this, or if this application just isn’t a good one for the hardware.

A side question (I’m sure it’s related), but during the backdriving of the motor, the power supply tends to click and I think the fan turns off momentarily - is this damaging the power supply?

Thanks for any assistance!

Hi Dramn,

We made significant improvements to the brake resistor handling in the Release Candidate (rc-v0.5.0). If you’re willing to try it, I can send you a .hex file to flash and some instructions on how to use it.

Hey Wetmelon,

Thanks for the support, I really appreciate you guys and what you’ve created here! I’d love it to try it and see what happens.

@Wetmelon is there a difference between the .hex file you mentioned and the rc-v0.5.0 on GitHub?

Nope, i was just about to build one for you and PM it. If you can build it yourself, that also works. What version of ODrive do you have? 3.6-24V?

Once in hand, you have to set:

odrv0.config.brake_resistance = <nominal value of brake resistor>
odrv0.config.enable_dc_bus_overvoltage_ramp = True
odrv0.config.dc_bus_overvoltage_ramp_start = 22
odrv0.config.dc_bus_overvoltage_ramp_end  # Simply verify that the max voltage is approximately 26V

this will turn on the closed-loop feedback for the DC bus voltage. With the values i used above, it will be setup so that it will start to put more current into the brake resistor above 22 volts, up to maximum current at 26V. Make a note that if this is enabled and you power the device with a voltage above 22 volts, the brake resistor will always be drawing current, trying to get the bus voltage back down to 22 volts!

If you want a higher or lower value than 22 volts, change dc_bus_overvoltage_ramp_start

@Wetmelon Ah, okay. I’m not that fluent, so I guess if you don’t mind I’d gladly take the PM. Confirmed that I have 3.6-24V and thanks very much for the explanation, I’m excited to try that out!

Isn’t the included resistor 2 ohm?

@CthulhuLabs I measured mine (50WR5J) to be 0.5 ohms with a multimeter.

Interesting mine came with a 50W2RJ. Though I got the 56V version. Maybe that is why.

@Wetmelon, thanks so much for sending the .hex file. I can now see the busvoltage spikes plateau at 22V, and I was able to increase the motor current without issue to the point where I must now build a more robust rig before I can take it any higher. Even so, it does appear that this has fully solved the issue.

Thank you so much!