perhaps there are experiences and solutions about this topic ?
my setup:
Odrive 3.6 hardware with the firmware version 0.4.10.
eX8108-105kV motor coupled to the AMT102-V encoder
settings like described in the documentation " Encoder with index signal"
my problem:
I try to use the index impulse but after every AXIS_STATE_ENCODER_INDEX_SEARCH cycle the bldc motor does not stop at the “zero position of the index pulse”.
If you take a look to the odrv0.axis0.encoder.shadow_count register you can see the exact “distance of steps” to the index impulse location. The electrical measurement of the “zero index signal” at the connector J4 looked good. Therefore - adding a 10nF capacitor did not result in any improvement . Attached there is a screen shot with some index searches an the monitored encoder shadow register with the distance to the pulse location.
It seems that the correct location of the index impulse is found and can be used correctly by the position setpoint command, but Index_search and calibration cannot stop exactly at this point ?
We never made that guarantee. When you flip it into CLOSED_LOOP_CONTROL mode, it’ll go to the index position (position 0). Try odrv0.axis0.config.startup_encoder_index_search = True and odrv0.axis0.config.startup_closed_loop_control = True if you want it to sorta behave like that.
many thanks for your hints -
I have set the both variables “odrv0.axis0.config.startup_encoder_index_search” and “odrv0.axis0.config.startup_closed_loop_control” to True.
On Power on - now the system starts with a closed loop with the same
behaviour like before - some counts besides of index location -
but with the “odrv0.axis0.controller.pos_setpoint = 0” the correct position can than be
reached by the motor.
When flipping from IDLE into “closed loop” the problem is still the same.
In my application I want to drive two motors with spindle shafts simultaneously.
My main interest is that both motors will do exactly the same rotation all the time - perhaps there are better ways than using the index impulse ?
do you habe any idea about my problem ? It looks strange because after calibration the shadow count shows the exact distance to the “index pulse location” but the closed loop state do not move the rotor to the “shadow count = 0 position” ?
But much more important is the question - can Odrive drive two motors synchronously that means that they should do exactly the same rotation/movement all the time ?
(the motors rotate two spindle shaft, that are mechanically coupled and there would be a jam e.g. if the calibration procedure would rotate the motors differentially)
thanks for reply
For me it look likes as there is no possibilty to work with the index impulse like discribed - do you intend to make a new software release to fix it (e.g. the last step within the calibration process will do a rotation to shadow count = 0, or something …)