Motors not running at max current


Im using a pair of odrive 3.5s each controlling an 18” hub motor. I’ve got it mocked up as a rc rover which I can drive around happily. However, the motors only seem to be drawing up to ~9A each even when its stalled. Anyone have any ideas why this may be?

* The motors are 800W 48V
* Its running on a 36V lead acid that can-do bursts of 330A
* There are no errors given
* The odrives aren’t hot


* motor.config.current_lim=30
* motor.config.calibration_current= 10
* motor.config.pole_pairs=24
* motor.config.resistance_calib_max_voltage = 4
* motor.config.requested_current_range = 60 #Requires config save and reboot
* motor.config.current_control_bandwidth = 100
* encoder.config.mode = ENCODER_MODE_HALL
* encoder.config.cpr = 144
* encoder.config.bandwidth = 100
* controller.config.pos_gain = 4
* controller.config.vel_gain = 0.1
* controller.config.vel_integrator_gain = 0.4
* controller.config.vel_limit = 160

If the motor is stalled, it’s quite normal for the ODrive to pull much less current from the DC input than it is sending to the motor, because current is still flowing through the motor windings while the MOSFETs are in their ‘off’ state. :slight_smile:
The current recirculates through the inherent diode of the FETs, so the drive acts a bit like a switch-mode power supply, with the motor as the inductor.

if you look at motor.current_control.iq_measured it should be the full 30A that you’ve set.

1 Like

thanks for getting back to me,
you were correct iq_measured is ramping to 30A almost perfectly.
i’m just not getting the tractive force that i should based on what data i have for the wheels.
at least this rules out the odrive.
thanks for the help.

1 Like