Currently, moves >5000 steps are done non-blocking. This is slightly inelegant, because it involves quite a few queries:
- Disable blocking moves
- Start the move
- LOOP
- Query if we're moving
- Wait
- Re-enable blocking moves
There's also jitter that will come from the Python code waiting in between polls.
A much more elegant way would be to add a timeout to wait_until_stopped (would require firmware update) so that we can long-poll it. I'd be pretty confident that this wouldn't affect the timings noticeably, so we could then make moves non-blocking by default.
Currently, moves >5000 steps are done non-blocking. This is slightly inelegant, because it involves quite a few queries:
There's also jitter that will come from the Python code waiting in between polls.
A much more elegant way would be to add a timeout to
wait_until_stopped(would require firmware update) so that we can long-poll it. I'd be pretty confident that this wouldn't affect the timings noticeably, so we could then make moves non-blocking by default.