Hi Folks. I’m working on the zhop firmware retraction issue and already implemented it via reassigning handlers as Kevin and Arksine discussed a while back. I also implemented different zhop move styles including standard-vertical, diagonal (as proposes by teaching tech) and helix (as implemented by Bambu labs, still beta, see comment further below).
Now I am figuring out how to solve the canceled/finished-print-with-active-retraction issue. Further, I want to implement auto-firmware retraction like in Marlin, to replace slicer retraction on the go.
To implement the helix zhop move style in a way that enables the smoothest possible movements, I need to know the coordinates of the next move after retraction. For a good auto-firmware retraction, the issue is even more complex, as I’d need to know all moves between slicer retract and unretract, to then exchange those with the firmware retract moves including zhops. I’d very much appreciate if you guys could point me in the right direction how this could work in a stable way.
Finally, to tackle the cancel-finished print issue, I was thinking of using the reset-file-event from the virtual SD card module. Alternatively, I thought of polling the print-stats state to figure out if a print finished or was canceled. Both solutions need virtual SD card enabled. Implementing firmware zhop for steamed gcodes is almost impossible from how I see it. Any indications on how this can be done better are most welcome. Maybe I have overlooked a cancel-finished print related event.
I hope to have this ready within may and will do a PR then. Cheers Florian