Axis 0 loud whining on Closed Loop Control mode

The odrive generally works and we’re able to fully calibrate with our 8192-pos encoders… but axis 0 emits a loud whining sound whereas axis 1 is pretty quiet. The whining starts as soon as: odrv0.axis0.requested_state = 8 (closed loop control mode).

We swapped motors between axis0 and axis1 to confirm this issue was not a motor problem.

We disconnected axis1 to confirm this issue was not an insufficient-capacitance-between-a0a1 problem.

We have 2 odrive modules. On our second odrive module, not only does axis0 whine but it also jiggles the motor when no input_pos commands are issued. Again, we tested to confirm this is not a motor problem.

1 Like

Which motors are you using, out of curiosity?

Axis 0 and Axis 1 are slightly different from each other, unfortunately, and the axis whine you hear is the current shunt noise. You can reduce the overall noise levels with the ferrite rings from the shop, which may help here (depending on the noise source)

Electrocraft MPW86 (48VDC, 8-pole).

No luck with the big ferrite rings from our inventory. We’ll test further and see what we can discover.

Let me know if you know any other solution paths.

As a workaround (you shouldn’t need to do this) try reducing motor.config.current_control_bandwidth. I had to reduce it to 600 on my motor or I get audible noise on axis0.

1 Like

I have the same issue, two motors same configuration but noise from axis0 in closed loop control, while axis1 is completely quiet. reducing current_control_bandwidth helped, I had to go as low as 100. How is this variable used I have no idea :slight_smile: If someone can point me to right direction, is it still safe, I dont see any change on the system except noise.

1 Like

I have the same issue, ODrive 3.6 56V running on 24V with 2 motors (Dual Shaft Motor - D6374 150kv).

Same like with the people above: in closed loop control, axis0 hums quite annoyingly, axis1 is quiet (same config, same motor).

This helps decreasing the noise, but it’s still there:
odrv0.axis0.motor.config.current_control_bandwidth = 200

Anybody has a better way of dealing with it?
(The noise sounds like the wind going through a small place)