S1 effective_current_lim Help

Hello,

I am using the S1 driver to Drive a BLDC motor. I am struggling with a current limit on that I cannot understand how it is being set. Somehow it is stuck at 32 Amps, but I do not know what is driving this value?

Per the documentation, there are three possible limits:

effective_current_lim*: [Amp] - Float32Property*

This value is the internally-limited value of phase current allowed according and is the minimum of the following:

  • config.motor.current_soft_max, optionally derated based on motor temperature.
  • config.inverter0.current_soft_max, optionally derated based on ODrive power stage temperature.
  • Maximum measurable current range

I am printing the first two:
the motor current limit (it is set at 40 Amps) and the FET current limit (80 A), and I also am looking at the temperature de-rating, the temp estimate is around 25 C, and the FET Temp Lower limit is 84 C and the motor one is disabled. So according to the data sheet the temperature limit is not reached

So that leaves the final possible limit “Maximum Measurable current range” which is not referenced anywhere else in the documentation. Does anyone know how I can affect this value? I want to be able to drive 40 Amps. Thank you,
-Josh

Hi there,

Thanks for reaching out!

The S1 limits current based on dc_bus_overvoltage_trip_level, as seen here: ODrive S1 Datasheet — ODrive Documentation 0.6.11 documentation

What bus voltage are you running at? Typically, you shouldn’t need to set the overvoltage threshold more than a few volts above the nominal bus voltage, so even at 48V you should be able to set an overvoltage trip of 51V and achieve 40A.

Apologies for that not being listed in the effective_current_lim docs – I’ll fix that!