I am working on a six-axis robotic arm, and I am using BLDC’s in combination with incremental, 2400CPR encoders (no index).
Now I get that you need to calibrate the electrical phase difference between the encoder and the motor every boot, but it is kind of impossible to temporarily remove the load of the robotic arm on every boot. So calibrating the encoder is not possible on every boot.
Now I thought of this and I have designed my robotic arm so that it can not be moved in any way manually. This works because I use one-way transmission systems. So when I turn off the power and turn it back on again, there is no change of position possible. So I thought that I could log the offset, position, … values of the encoder, and manually place them back during startup (via a python program). But because is_ready is read only, I can not set it to True and as a result, I can not set the requested_state to closed loop control.
I don’t think that the calibration does something else because shadow_count does behave normally even when is_ready is False.
So my question is the following: Is there a way to still manually override the is_ready parameter?
If not, could I change the source code to build my own, custom firmware to add this functionality? If yes, where should I start changing the source code?
Much thanks in advance!