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

    Request for variable acceleration(slower acceleration at higher speed)

    Scheduled Pinned Locked Moved
    Firmware wishlist
    8
    64
    10.2k
    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.
    • InSanityundefined
      InSanity
      last edited by

      @deckingman:

      In my experience, I find the opposite of what you are proposing to be true in terms of speed and quality. That is to say, I use a high print speed but low acceleration. What this does in effect is slow down short moves to maintain quality but allow higher speeds for long moves.

      Sounds like you agree with my post then on the system needs to be intelligent.

      Jeff

      Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

      1 Reply Last reply Reply Quote 0
      • Shenundefined
        Shen
        last edited by

        Yes, I agree high speed/low acceleration does give good results, but as you mentioned for short moves the high speed is never reached, the speed is limited by acceleration. When printing some particular shapes, like vertical walls at 2mm, the speed can be dramatically different for printing at high vs low acceleration. That's why I wanted to have low acceleration at high speed, and high acceleration at low speed to take advantage of both world.
        And I'm sure my printer won't survive printing at 200mm/s with high acceleration, but it should be ok if I use very low acceleration after 50mm/s.

        1 Reply Last reply Reply Quote 0
        • botundefined
          bot
          last edited by

          I actually had this idea the other day, but opposite. It seems that the higher the acceleration is, the more the ringing is visible on corners. By having NO acceleration on direction change (feedrate is equal to jerk rate), the ringing is completely gone. For this reason I thought having a LOWER acceleration at first and a higher acceleration for fast moves would allow the corner ringing to be damped before the acceleration really ramps up.

          *not actually a robot

          1 Reply Last reply Reply Quote 0
          • InSanityundefined
            InSanity
            last edited by

            @bot:

            I actually had this idea the other day, but opposite. It seems that the higher the acceleration is, the more the ringing is visible on corners. By having NO acceleration on direction change (feedrate is equal to jerk rate), the ringing is completely gone. For this reason I thought having a LOWER acceleration at first and a higher acceleration for fast moves would allow the corner ringing to be damped before the acceleration really ramps up.

            Ahhh..slowness…it burns....

            Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

            1 Reply Last reply Reply Quote 0
            • botundefined
              bot
              last edited by

              If we could have variable acceleration, so that the corners were treated ultra-delicately, but then acceleration ramped up (perhaps after a given "settle time") the slowness would not burn as much…

              *not actually a robot

              1 Reply Last reply Reply Quote 0
              • InSanityundefined
                InSanity
                last edited by

                The look ahead code should just add variable acceleration to the move as it sees fit. The algorithm might take a while to prefect and of course should have settable parameters. I've run 160mm/s with 4000 acceleration and it does great on the straights but not so great on the corners. Keep in mind what I'm running before passing judgement.

                Jeff

                Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

                1 Reply Last reply Reply Quote 0
                • Shenundefined
                  Shen
                  last edited by

                  @bot:

                  I actually had this idea the other day, but opposite. It seems that the higher the acceleration is, the more the ringing is visible on corners. By having NO acceleration on direction change (feedrate is equal to jerk rate), the ringing is completely gone. For this reason I thought having a LOWER acceleration at first and a higher acceleration for fast moves would allow the corner ringing to be damped before the acceleration really ramps up.

                  It's probably because our printers have very different structures.(My printer is extremely rigid, everything is made with metal and I'm using ballscrews for all axis.) But if variable acceleration is supported, it can definitely be used either way.

                  1 Reply Last reply Reply Quote 0
                  • InSanityundefined
                    InSanity
                    last edited by

                    What might work out well is if you could specify a distance range and acceleration percentage.

                    Range and percentage of default acceleration.

                    0-10 -20
                    11-50 0
                    51-999 20

                    Jeff

                    Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

                    1 Reply Last reply Reply Quote 0
                    • Shenundefined
                      Shen
                      last edited by

                      @(In)Sanity:

                      The look ahead code should just add variable acceleration to the move as it sees fit. The algorithm might take a while to prefect and of course should have settable parameters. I've run 160mm/s with 4000 acceleration and it does great on the straights but not so great on the corners. Keep in mind what I'm running before passing judgement.

                      Jeff

                      An intelligent algorithm is defiantly nice to have, but it might be very hard to implement, that's why I proposed a simple two stage acceleration to start with.

                      1 Reply Last reply Reply Quote 0
                      • InSanityundefined
                        InSanity
                        last edited by

                        @Shen:

                        @(In)Sanity:

                        The look ahead code should just add variable acceleration to the move as it sees fit. The algorithm might take a while to prefect and of course should have settable parameters. I've run 160mm/s with 4000 acceleration and it does great on the straights but not so great on the corners. Keep in mind what I'm running before passing judgement.

                        Jeff

                        An intelligent algorithm is defiantly nice to have, but it might be very hard to implement, that's why I proposed a simple two stage acceleration to start with.

                        It wouldn't be hard to use a simple lookup table to implement 1 - xx number of variable accelerations based on my example. It would really boil down to RAM on the boards and how many table entries can be handled. Even if it's just 5 variations that would still allow massive tweaking. I'm a software engineer btw with a strong side of EE.

                        Jeff

                        Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

                        1 Reply Last reply Reply Quote 0
                        • Shenundefined
                          Shen
                          last edited by

                          @(In)Sanity:

                          @Shen:

                          @(In)Sanity:

                          The look ahead code should just add variable acceleration to the move as it sees fit. The algorithm might take a while to prefect and of course should have settable parameters. I've run 160mm/s with 4000 acceleration and it does great on the straights but not so great on the corners. Keep in mind what I'm running before passing judgement.

                          Jeff

                          An intelligent algorithm is defiantly nice to have, but it might be very hard to implement, that's why I proposed a simple two stage acceleration to start with.

                          It wouldn't be hard to use a simple lookup table to implement 1 - xx number of variable accelerations based on my example. It would really boil down to RAM on the boards and how many table entries can be handled. Even if it's just 5 variations that would still allow massive tweaking. I'm a software engineer btw with a strong side of EE.

                          Jeff

                          I do agree with you a lookup table shouldn't be too hard. My first proposal is actually very similar to the range and percentage table you proposed, it's just value vs percentage. I probably didn't read your previous posts carefully, I thought by intelligent you meant something really fancy, everything is situational. Well I'm also a software engineer, but one hates the EE side : p

                          1 Reply Last reply Reply Quote 0
                          • InSanityundefined
                            InSanity
                            last edited by

                            @Shen:

                            I do agree with you a lookup table shouldn't be too hard. My first proposal is actually very similar to the range and percentage table you proposed, it's just value vs percentage. I probably didn't read your previous posts carefully, I thought by intelligent you meant something really fancy, everything is situational. Well I'm also a software engineer, but one hates the EE side : p

                            We don't have the resources to do anything AI or fuzzy logic based. I think a lookup table would allow for some really good results. If the table could reach 5 entries or more I think that would be enough to make for some really nice prints with great speeds as well.

                            In all reality acceleration kind of does this on it's own as it ramps up over distance, I think having the ability to fine tune this would produce even better results. I like a percentage only because it allows for speedups without rework of the entire table map.

                            Jeff

                            Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

                            1 Reply Last reply Reply Quote 0
                            • deckingmanundefined
                              deckingman
                              last edited by

                              I just can't believe what I'm reading here. I'd better go before I say something that I'll regret.

                              Ian
                              https://somei3deas.wordpress.com/
                              https://www.youtube.com/@deckingman

                              1 Reply Last reply Reply Quote 0
                              • Shenundefined
                                Shen
                                last edited by

                                "allows for speedups without rework of the entire table map" thats a very good point.

                                1 Reply Last reply Reply Quote 0
                                • Shenundefined
                                  Shen
                                  last edited by

                                  @deckingman:

                                  I just can't believe what I'm reading here. I'd better go before I say something that I'll regret.

                                  There are all kinds of printers out there. I know you have a corexy printer, this might look completely useless to you but it might be useful to someone with a completely different printer.

                                  1 Reply Last reply Reply Quote 0
                                  • InSanityundefined
                                    InSanity
                                    last edited by

                                    @deckingman:

                                    I just can't believe what I'm reading here. I'd better go before I say something that I'll regret.

                                    I'm assuming your leaning towards the Why bother as acceleration already does all of this ?

                                    Please elaborate as nobody can understand a potential mistake or poor sense of direction if those with the answers don't share.

                                    Jeff

                                    Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

                                    1 Reply Last reply Reply Quote 0
                                    • T3P3Tonyundefined
                                      T3P3Tony administrators
                                      last edited by

                                      In essence what you are looking to achieve is the ability to fit the (currently flat line) acceleration to a non flat line (and possibly a series of lines). The reason for doing this is to have an effect on the velocity though so what would be a good experiment to do to confirm this is a worth while change is to edit some g-code of a simple test print and show the differences. (sorry Ian, I get your point but I am interested to see if there is an observable print quality difference with acceleration changes through test extrusion)

                                      What can be seen as "ringing" on corners is its the manifestation of the nozzle not smoothly moving around that corner, or smoothly extruding around that corner. This can be caused by a springiness within the moving parts within the printer causing oscilation of the hotend, it can be caused by the hotend slowing down and the flow rate in the nozzle not adjusting smoothly (nozzle too hot - ooze, underextrusion, ooze etc) and there are probably other reasons I have not though of.

                                      My understanding (Ian feel free to jump in) is that in an ideal situation the speed (scalar) of the nozzle through the corner will remain constant, the velocity(vector) is obviously going to change because of the direction change. With a smooth speed the extrusion can remain constant (excepting anything clever the slicer might be doing to prevent over packing of corners), that removes one of the variables that could be contribution to poor print quality on corners (changing extrusion rates)

                                      If the aim the the acceleration values is to keep the change of the resultant vector of the axis at a constant speed, can this be achieved with a constant acceleration or not? I an not up for hauling calculus from the depths of my memory right now but would be interested if someone more knowledgeable can chip in.

                                      www.duet3d.com

                                      1 Reply Last reply Reply Quote 0
                                      • botundefined
                                        bot
                                        last edited by

                                        I can't understand at all why accelerating fast, for slow moves makes sense. Maybe that is what deckingman is thinking. What is the point of variable acceleration, if not to improve visual print/surface finish quality? If the point is to improve surface finish, I don't see how accelerating FASTER during slow moves and slower during fast moves is going to help at all. This is why I proposed the opposite – which would be useful to everyone, including those with ballscrews instead of belts for motion.

                                        Why would it be useful to accelerate faster during slow moves, and slower during fast moves?

                                        *not actually a robot

                                        1 Reply Last reply Reply Quote 0
                                        • InSanityundefined
                                          InSanity
                                          last edited by

                                          I'm thinking the term acceleration might not be the best approach here.

                                          Goals should be outlined:

                                          1. I want the printer to move as fast as possible where possible
                                          2. I want the printer to be careful in some areas where too much speed will cause quality issues
                                          3. I want to be able to adjust the settings to best fit my printer model to achieve #1 and #2

                                          So this might be speed and/or acceleration change. It might be as simple as a dynamic implementation of the speed factor already present based on move complexity.

                                          Jeff

                                          Duet WiFi Powered FFCP with E3D legends hotend system. BLTouch grid leveling.

                                          1 Reply Last reply Reply Quote 0
                                          • T3P3Tonyundefined
                                            T3P3Tony administrators
                                            last edited by

                                            A further point. This is already achievable in slicers to a certain extent by setting different max speeds for different areas. maybe the right answer is get slicers to have a "max velocity" as well as max speed.

                                            Btw Shen - that is one solid looking printer (/cnc machine!)

                                            www.duet3d.com

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