Duet3D / RepRapFirmware

OO C++ RepRap Firmware
GNU General Public License v3.0
945 stars 535 forks source link

Potential issue with delta printers #924

Closed T3P3 closed 7 months ago

T3P3 commented 1 year ago

https://forum.duet3d.com/topic/33886/y-slope-with-3-5-0-rc1-not-seen-with-3-4-6/14

dc42 commented 1 year ago

User reports it is solved by the latest 3.5.0-rc1+ build, see forum thread.

dc42 commented 7 months ago

Issue is not solved and affects 3.5.0-rc.3. See https://forum.duet3d.com/post/335641 and the following posts.

dc42 commented 7 months ago

Found two causes:

  1. We were only allowing step times to be calculated late (beyond the move duration) in the last segment of the move. On delta printers we have previously seen that the last two steps may be calculated late. When input shaping is enabled the last segment may contain only one step, so the penultimate segment may have a late step calculation. This should have led to a step error being logged, but the code to record step errors was not working because the error status was being cleared when the move was seen to have completed (or in this case, aborted).
  2. A delta move may sometimes have zero net steps but a DM is still created in case the carriage needs to move up and then down by the same amount during the move. However, if the move really didn't require any steps then although totatSteps was set to zero one step was always taken.

I have tested the fixes locally and provided a binary to the users who reported the problem.

dc42 commented 7 months ago

Confirmed fixed.