Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Stepper movement, hiccups, and microstepping

    Scheduled Pinned Locked Moved
    General Discussion
    2
    4
    865
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • garyd9undefined
      garyd9
      last edited by

      In a different thread, there was a discussion that kind of jumped off-topic to duet movement hiccups and different microstep settings to reduce them. I wanted to continue that discussion in a different thread as I think it's an area of confusion.

      While my own focus is how this all applies to a delta printer (which has special needs due to carriages having to move much faster at bed edges), I think the topic might be useful to other printer types as well.

      Is a "hiccup" really a bad thing? I understand it essentially means that the duet is trying to send movement steps too fast, but are any movements actually lost, or are things just slowed down? If they are just slowed down, are the movements on all stepper motors still kept in sync? If everything is kept in sync, is there any effective difference between lots of hiccups and just reducing the print speed via M220? (This is probably best answered by @dc42 )

      Viewed like that, couldn't hiccups be viewed only as an "informational" message that the printer is dynamically slowing the print down due to processor limitations? (It's not a problem! It's a feature!)

      On the other hand, if hiccups are A Bad Thing, the only way to reduce them without slowing print speed would be to reduce the resolution of movements - either by using lower resolution stepper motors (1.8 degree vs 0.9 degree) or reducing microstepping (32 vs 64.) This can impact print quality, but I'm not sure by how much. When the difference between 800 steps/mm and 400 steps/mm is 0.00125mm per step, would there be any difference in a 3D printed object even on the extreme edge of a delta build plate?

      Even the difference between 800 steps/mm and 200 steps/mm is 0.00375mm per step. What kind of difference would that show at the edge of a delta build plate? 0.01mm? Is there any "FDM" 3D printer that doesn't already have a margin of error at least that big just as a result of the plastics we're melting?

      I guess what this comes down to is: While "reducing speed" is often the Best Solution to a large number of hiccups, which is the better alternative: Reduce the resolution (via reduced microstepping) or just ignore the hiccups?

      "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

      1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators
        last edited by dc42

        When the the processor finds that it has spent more than X microseconds in the step generation interrupt service routine (because as fast as it generates steps, more become due), it resets the move start time forwards by Y microseconds so that it appears that no more steps are due yet, and records a hiccup. This gives the processor a short interval (up to Y microseconds) to attend to other work. So the smooth step pulse train is interrupted with a gap of up to Y microseconds. This doesn't really matter when using stepper drivers because Y is small, as long as hiccups are infrequent. It matters more for step-servo drives. The motors remain synchronised.

        Increasing axis microstepping above x16 is most unlikely to improve print quality. Increasing extruder microstepping above x16 might improve print quality when using an ungeared extruder.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        garyd9undefined 1 Reply Last reply Reply Quote 0
        • garyd9undefined
          garyd9 @dc42
          last edited by

          @dc42 said in Stepper movement, hiccups, and microstepping:

          When the the processor finds that it has spent more than X microseconds in the step generation interrupt service routine (because as fast as it generates steps, more become due), it resets the move start time forwards by Y microseconds so that it appears that no more steps are due yet, and records a hiccup. This gives the processor a short interval (up to Y microseconds) to attend to other work. So the smooth step pulse train is interrupted with a gap of up to Y microseconds. This doesn't really matter when using stepper drivers because Y is small, as long as hiccups are infrequent. It matters more for step-servo drives. The motors remain synchronised.

          Can you simplify this from what happens internally to what impact a person sees? What this sounds like to me is that when the duet finds that it's running behind in generating steps, it just reschedules and continues. (Hey, I'm running late for my 5 o'clock appointment, so I'll reschedule it for 6 o'clock.)

          If that statement is true, then why would hiccups have any negative impact on print quality? Everything that should happen is still happening - it's just going a little slower. Yet, on this forum I've seen hiccups associate with skipped layers, layer shifting, bad extrusions, solar eclipses and perhaps even that hiccups are influencing political elections in the United States.

          "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

          1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators
            last edited by

            A small number of hiccups is unlikely to impact print quality, except perhaps if you use step-servo drives. However, if the number gets very large then it could result in missed steps and hence layer shifts.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            1 Reply Last reply Reply Quote 0
            • qurtundefined qurt referenced this topic
            • First post
              Last post
            Unless otherwise noted, all forum content is licensed under CC-BY-SA