I’m challenging to spin bldc motor with sensorless mode.

The motor spin for second time but, stop suddenly.

And dump_errors(odrv0)


I don’t know what is this error caused.

The sensorless_ramp params are below:
accel: 1000.0 (float)
current: 1.0 (float)
finish_distance: 100.0 (float)
finish_on_distance: False (bool)
finish_on_enc_idx: False (bool)
finish_on_vel: True (bool)
ramp_distance: 3.140000104904175 (float)
ramp_time: 0.4000000059604645 (float)
vel: 3000.0 (float)


This usually means you’re trying to spin too fast for your system voltage.

1 Like

Thank you for your reply.
I changed the voltage.
It works well.

1 Like

I solved this problem by changing voltage and sensorless_ramp.finishe_on_vel=False.
But, this error appear with sensorless_ramp.finishe_on_vel=True.
If anyone can tell me why, please let me know.

Can I change the velocity with “sensorless_ramp.finishe_on_vel=False”?
I want to change the speed while spinning.

You should be able to change the speed while spinning regardless of this option. The sensorless_ramp config only applies while starting.
What happens if you change controller.input_vel after it has started ?

Thank you for your reply.
I change the controller.input_vel after started, but Nothing changed.
I think it works as open loop control with “sensorless_ramp.finishe_on_vel=False”

It may be that your velocity gains are too high, so as soon as it quits the open loop part it fails. Try reducing vel_gain and vel_integrator_gain to zero and bringing up vel_gain gradually.


You’re absolutely right.
I changed vel_gain =0.0001,vel_gain_integer=0, everything works well.
input_vel works too.
The maximum ramp_vel I could switch from open loop to closed loop was about 600.
Thank you very much.
Sensorless control tuning is very difficult…

1 Like