After some playing around with the Odrive I found a problem for what I want the Odrive to work with.
I am using it to steer a big robot with an AMT102 encoder with Z Index. The problem is that when there is an index search the motor moves a bit, but after the index is found it resets the steps it has taken.
This is unwanted since the callibration that the external MCU saved is not accurate anymore and the wheels then drift.
Is there a possibility to get the steps taken in the ENCODER_INDEX_SEARCH or to just stop the Odrive from resetting the position?
Sorry, I’m not sure what you mean. It sounds a little bit like a solution without a problem… can you describe your system and what you’re trying to do?
The system I use is an odrive controlled by an MCU.
The Odrive is used for steering a castor style wheel with a gearbox between the motor and the base of the wheel. The encoder being used is a incremental AMT102 encoder.
When the robot is being rebooted the current degrees of the wheel and the current odrive position is saved.
When only the MCU is being restarted there is no problem. However when there is a power cycle the Odrive needs to do a index_search. This will turn the motor a bit and when the index is found the amount the motor has moved is set back to 0. This in turn makes the value we think the wheel is on and where it really is drift by a small amount.
The reset of the motor move amount should not be done or should be saved somewhere else.