Startup procedure rotation direction


I was wondering if it is possible to set the rotation direction for the startup procedures and if so, how?


Carelsbergh Stijn

Hi Stijn!

Funny, I have the same question. Why? Before I will start my motion platform, the weight of the platform will move the actuators to the internal hardware stop. When switching on the Odrive, the startup precedure will turn the motors in the direction that the cylinder rod will be retracted - but it is still on the hardware-stop :scream:. The solution could be to start turning the motors in the opposite direction first.
I am eager to the answers you will get!
Kind regards Peter


For me, it’s the same application.


Carelsbergh Stijn

If you wish to scan for the index pulse in the other direction (if for example your axis usually starts close to a hard-stop), you can set a negative value in <axis>.encoder.config.idx_search_speed .


1 Like

Hi Robin,

thank you for your hint!
I was able to change the direction, but nevertheless, during the startup process, one time the motor is going further back than the starting point.
I tryed to change this with the: .encoder.config.offset = xxx command. But after a reboot the setting is gone. Dont know whether this is a bug in the firmware? Maybe its the completely wrong command to influence this ?
kind regards

Switch your phase wires around.

Also, make sure there is no load on the motor when calibrating the offset (like a load that drives the carriage back to the endstops)

I solved this by changing the parameter “motor.config.direction”.
I set “1” to go forward, “-1” to go reverse.

Don’t change this motor direction variable, it is not the right way to do it. The correct way is what @Robin said with the negative search speed.

It seems that idx_search_speed was removed from the codebase. What is the correct way to change the motor calibration direction now?

A year later, but for anyone else wondering as of April 2021, the following was taken from Encoders | ODrive

Reversing index search

Sometimes you would like the index search to only happen in a particular direction (the reverse of the default). Instead of swapping the motor leads, you can ensure that the following three values are negative:

  • <axis0>.config.calibration_lockin.vel
  • <axis0>.config.calibration_lockin.accel
  • <axis0>.config.calibration_lockin.ramp_distance
1 Like

I tried reversing these three parameters however when I performed the index search the motor didnt rotate at all anything I could do to solve this issue

Did the motor calibration work?

Normally yes it does however reversing the calibration lock-in parameters causes the problem

I don’t understand what you mean.