Weird Motor Sound and Over Current Limit

I am currently trying to get a NEO Motor to move using the ODrive. I was able to calibrate the motor and its internal hall effect encoder without any issues. Using the PID values from the hoverboard example as a starting point I was able to set velocity from 0-30RPS with no issues. The problem occurred when I tried to go to 0-40RPS I got an overcurrent limit error. I figured this was because the vel gain was too high and or the integrator vel gain. So following the PID tuning example, I removed the integrator gain and decreased the vel_gain. This worked pretty well and I was able to get to 0-70RPS without error.

I plotted it with the following command
start_liveplotter(lambda: [

This all works fine but I run into issues when I try to go from 0-80RPS which I have attached a graph of here.

For some reason, the OVER_CURRENT_LIMIT is triggered at 80RPS. The specs of the motor are 473RPM KV. My system is running at 24 volts. Theoretically, the motor is capable of 189RPS. Also in my graph I dont see the target current going anywhere near my max of 60 amps. I have attached my motor configuration below.

odrv0.axis0.motor.config.current_lim = 60
odrv0.axis0.motor.config.requested_current_range = 90
odrv0.axis0.controller.config.vel_limit = 100
odrv0.config.brake_resistance = 0
odrv0.axis0.motor.config.pole_pairs = 7
odrv0.axis0.motor.config.torque_constant = 8.27 / 7.88333333333
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT
odrv0.axis0.motor.config.resistance_calib_max_voltage = 4
odrv0.axis0.motor.config.current_control_bandwidth = 100
odrv0.config.dc_max_negative_current = -15
odrv0.config.max_regen_current = 15

odrv0.axis0.encoder.config.cpr = 42
odrv0.axis0.encoder.config.use_index = False
odrv0.axis0.encoder.config.mode = ENCODER_MODE_HALL

odrv0.axis0.encoder.config.bandwidth = 100
odrv0.axis0.controller.config.pos_gain = 1
odrv0.axis0.controller.config.vel_gain = 0.01 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr
odrv0.axis0.controller.config.vel_integrator_gain = 0 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL

The motor is also making weird noises that can best be described as a crunchy whining sound. When controlling the motor with Spark Max motor controller it was designed for I have no such sound.

Have you tried a ferrite ring choke on the motor wires?

We have not tried that yet I just placed an order for a ferrite ring so we will see what that does to the noise. As for the over-current limit I am still not sure what is causing that issue.

Normally that is caused by noise in the current measurement circuit, or an unstable current controller (less common)
You could try reducing the current control bandwidth, or else you can work around the problem by increasing motor.config.current_lim_margin which just raises the threshold for triggering the error.