Clicking noise when stopping or changing direction?

Hi All,

I’m using the D5065 270KV motor and 8192 CPR AMT102 encoder from the ODrive shop in closed loop velocity control with braking resistor.

I’ve noticed that the motor makes a clicking noise whenever the ODrive engages or disengages to begin moving or change direction. I’m guessing that there’s not a whole lot that can be done to stop this, but can someone at least satisfy my curiosity by explaining what’s going on? It sounds mechanical, but is this actually electrical noise of some sort? It’s actually pretty annoying, as the motor operation is pretty silent otherwise.

When accelerating or decelerating, these are the moments of highest torque.
If you have a pure inertial load, such as an unloaded motor, then they are the only moments when there is any torque at all. The faster you want to change direction, the higher the torque.
It may be that this sudden torque is causing your motor to shift on its mounting slightly, and that’s what you are hearing.

If you have the latest firmware, you could use INPUT_MODE_POS_FILTER or INPUT_MODE_TRAP_TRAJ to smooth out the acceleration when changing direction, which would reduce the ‘jerk’ (i.e. rate of change of torque).

Thanks @towen. This does not appear to be related to acceleration or movement at all. The clicking noise occurs when the motor controller switches from idle to closed loop velocity control states. It occurs regardless of what velocity command is issued, even zero, and does not happen when the motor stops or changes directions while remaining in closed loop control. It is consistent between both motor0 and motor1 channels on the ODrive. Looking back, I realize that I didn’t describe this well in my original post.

We have had to hack-fix the system to put motors in idle state below a lower threshold velocity, as they produce too much EMI when holding zero velocity setpoint. Therefore clicking noise does occur on direction change in this system, but only because of idle mode transition.

Any chance you can record the sound?

You can use the gain scheduling to reduce the oscillating and EMI problem at zero velocity.


Sure, I’ll capture this tomorrow afternoon and link it here. (~24 hrs from now)

I would also be very interested in learning how to reduce the EMI issue. Is there a good resource you can point me to for gain scheduling? I assume that this means changing the PID gains on-the-fly, based on input commands?

Yes, the PID gains are linearly reduced as the actual position reaches the target position.

See controller.config.gain_scheduling_width and enable_gain_scheduling

I did not realize that this capability existed in the ODrive firmware. Thanks, I’ll definitely give it a try.

@Wetmelon Here are some isolated captures of the “clicking” noise that is heard when closed loop control engages:

FWIW, I get these same clicks, but not when changing between idle and closed loop in velocity mode (though maybe because the input velocity is always 0?). I get them in every calibration state, at the end of the calibration movement. Motor calibration produces two clicks at the end.