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

    Pressure Advance Calibration

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    52
    187
    67.6k
    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.
    • dc42undefined
      dc42 administrators @RCarlyle
      last edited by

      @rcarlyle said in Pressure Advance Calibration:

      but what does RRF do on reprime between a travel move and a printing move? That’s just another corner as far as XYZ is concerned, but it’s starting from a standstill for the extruder.

      RRF doesn't apply jerk at the join between a printing move and a non-printing move. A printing move is one that has both forward extrusion and XY movement.

      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

      RCarlyleundefined 1 Reply Last reply Reply Quote 0
      • MOundefined
        MO
        last edited by MO

        Geez I haven't posted in a long long time, connected my Duet to new delta printer, since my previous printer which housed it got disassembled, but speaking of pressure advance calibration - are there types of prints where it shouldn't be used?

        I've spent last 2 day testing pressure advance, settings of jerk/acceleration etc, got to the point where a cube would print ok, but other shapes had issues. It's a Bowden tube, 65cm-ish, quite long, after temperature calibration of the PLA I'm using, I've found the sweet spot for retraction and S value of 0.18 gave me best edges.

        Now, I have used Marlin K factor calibration tool as my basis ( http://marlinfw.org/tools/lin_advance/k-factor.html ), modified it to suit Duet, removed what I didn't need etc, came up with a code to test the best S value this way - and it's S 0.65 where the line is most uniform right across.

        Printing geometric shapes like cubes, polygons etc looks much worse than with lower value, thick seams, bit rounded corners etc, now to make it even stranger, I'm printing a twisted tower model as I'm writing this, which is an "organic" shape, not just technical straight shapes - started it off with S value of 0.18 but the quality was shocking, extruder was having a seizure, each layer looked inconsistent compared to the previous one etc... after 10mm I've disabled it - model from there on looks perfect.

        Is it not recommended to use PA for organic shapes? Sorry if it's something that was discussed to death, haven't visited this forum for a good year by now.

        Here's the gcode I've used to test S value: 0_1539501893621_sfactor0.5.gcode

        dc42undefined 1 Reply Last reply Reply Quote 0
        • DigitalVisionundefined
          DigitalVision
          last edited by

          To see if I could separate extrusion from motion effects, as an experiment, I built a small jig to measure the thickness of a single-walled print. I then printed a 150 mm long print with uniform print speed (50 mm/s), but varying extrusion volume (0.7 -> 0.4 -> 0.7 mm extrusion width) as a step function. One caliper of the jig measures thickness (mechanically magnified 4x) and another the x position along the test print. Manually measuring a number of positions gave the following result. I'm treating wall thickness * layer height * linear distance as an approximation for extrusion volume here (ignoring the fine layer induced surface structure).

          0_1539501856465_2e598be3-ecd5-4bfa-a31e-732718f07c51-image.png

          For a first quick experiment, I'm pretty happy with how nice the data looks. Interfacing digitally with the calipers would make this a lot quicker though.

          I'm not sure why the first segment didn't converge to the same value as the last one – but I can see some minor ripples that look like the print needs a bit more cooling towards the end of the first segment that may pollute the measurements a bit. I'll retry with some delay between each layer to allow for more cooling next time.

          @dc42, when running at constant linear speed but varying extrusion rate like this pressure advance doesn't seem to have any effect. Is that expected?

          I'll redo this for a few different extrusion rate pairs and see how well I can get the current model to fit.

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

            @mo said in Pressure Advance Calibration:

            Now, I have used Marlin K factor calibration tool as my basis ( http://marlinfw.org/tools/lin_advance/k-factor.html ), modified it to suit Duet, removed what I didn't need etc, came up with a code to test the best S value this way - and it's S 0.65 where the line is most uniform right across.

            Printing geometric shapes like cubes, polygons etc looks much worse than with lower value, thick seams, bit rounded corners etc, now to make it even stranger, I'm printing a twisted tower model as I'm writing this, which is an "organic" shape, not just technical straight shapes - started it off with S value of 0.18 but the quality was shocking, extruder was having a seizure, each layer looked inconsistent compared to the previous one etc... after 10mm I've disabled it - model from there on looks perfect.

            Is it not recommended to use PA for organic shapes? Sorry if it's something that was discussed to death, haven't visited this forum for a good year by now.

            Please explain what you mean by "extruder was having a seizure". High values of pressure advance cause the extruder to retract filament before the end of some printing moves. For this to work well, the extruder must have low backlash. With some geared extruders, the gears don't mesh tightly enough, resulting in high backlash and a lot of noise.

            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

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

              @digitalvision said in Pressure Advance Calibration:

              To see if I could separate extrusion from motion effects, as an experiment, I built a small jig to measure the thickness of a single-walled print. I then printed a 150 mm long print with uniform print speed (50 mm/s), but varying extrusion volume (0.7 -> 0.4 -> 0.7 mm extrusion width) as a step function. One caliper of the jig measures thickness (mechanically magnified 4x) and another the x position along the test print. Manually measuring a number of positions gave the following result. I'm treating wall thickness * layer height * linear distance as an approximation for extrusion volume here (ignoring the fine layer induced surface structure).

              0_1539501856465_2e598be3-ecd5-4bfa-a31e-732718f07c51-image.png

              For a first quick experiment, I'm pretty happy with how nice the data looks. Interfacing digitally with the calipers would make this a lot quicker though.

              I'm not sure why the first segment didn't converge to the same value as the last one – but I can see some minor ripples that look like the print needs a bit more cooling towards the end of the first segment that may pollute the measurements a bit. I'll retry with some delay between each layer to allow for more cooling next time.

              @dc42, when running at constant linear speed but varying extrusion rate like this pressure advance doesn't seem to have any effect. Is that expected?

              I'll redo this for a few different extrusion rate pairs and see how well I can get the current model to fit.

              That graph is close to what I expect when there is no pressure advance. The measured extrusion rate approaches the commanded extrusion rate exponentially with a time constant of about 0.2 seconds. So I would expect the measured extrusion to look a lot squarer with 0.2sec of pressure advance.

              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
              • MOundefined
                MO @dc42
                last edited by

                @dc42

                Good evening sir!

                Hehe by having a seizure I didn't mean anything erroneous on the side of Duet or pressure advance - I'd say it was doing exactly what it was supposed to, adjusting the pressure of extrusion according to speed and turns/corners, it was just doing it at a frequency I wasn't expecting, it hardly stopped, I have a small gear shaped knob placed on the shaft for decoration and to see retractions better and it was in constant back and forth motion, paired with the sound it makes. Hence the 'seizure' reference 🙂

                From what I'd assume after lurking on forums and browsing previous posts and threads, I didn't think that S0.18 was a particularly high value, especially for a bowden with a tube that's over 60cm long.

                It's an ungeared extruder feeding directly into the ptfe tube (Anycubic Kossel Linear Plus), current settings M566 E1800, M203 E1800 , M201 E1000.

                Not sure what happened there to be honest, when it was tracing the rock base of this statue (3 outlines) it would regulate the pressure on every turn, change of direction or corner, but whether it's the hardware not keeping up or just jitter induced by so many adjustments, the bottom layers are all messy and misaligned, I'll post a picture soon, 4% left.

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

                  @mo said in Pressure Advance Calibration:

                  Hehe by having a seizure I didn't mean anything erroneous on the side of Duet or pressure advance - I'd say it was doing exactly what it was supposed to, adjusting the pressure of extrusion according to speed and turns/corners, it was just doing it at a frequency I wasn't expecting, it hardly stopped, I have a small gear shaped knob placed on the shaft for decoration and to see retractions better and it was in constant back and forth motion, paired with the sound it makes. Hence the 'seizure' reference

                  If it's applying pressure advance between the short segments of a curve, there are two reasons why this may happen:

                  • Your XY jerk setting is too low, so the machine is having to slow down at the junctions between segments;
                  • Your slicer is generating moves with changing extrusion rates instead of a uniform extrusion rate. S3D used to be particularly bad at doing this.

                  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

                  MOundefined 1 Reply Last reply Reply Quote 1
                  • MOundefined
                    MO @dc42
                    last edited by

                    @dc42
                    Hmm, S3D it is indeed, that I've used to slice it up.

                    And I've been tackling some ringing issues today and have drastically lowered the jerk values, this model now is printing at 120 value only.

                    Your comment answers something that I'm observing, PA is disabled, value 0, beside retractions the gear should be moving uniformly forward while extruding - but it's not, it does have moments of speeding up and slowing down, so what you've just said about S3D seems to be at play in here.

                    1 Reply Last reply Reply Quote 0
                    • MOundefined
                      MO
                      last edited by

                      0_1539512448390_IMG_20181014_201508.jpg 0_1539512462594_IMG_20181014_201558.jpg

                      Here you can see exactly where I've disabled pressure advance.

                      What's the lowest jerk you'd recommend to go with that doesn't cause issues with pressure advance?

                      1 Reply Last reply Reply Quote 0
                      • LHelgeundefined
                        LHelge
                        last edited by

                        Also made a python-script to generate test pattern for pressure advance. I use a cylinder printed in spiral vase mode instead. Plan to extend it into generating a square pattern and Marlin-like pattern as well. Feel fre to try it out if you like. Just rename it to pa_cal.py and run the command:
                        python pa_cal.py > pa_cal.gcode
                        0_1539520976520_pa_cal.py.txt

                        Anyone running into problems with Jerk on a Zesty Nimble above 0.1 when tuning pressure advance?

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

                          I don't want to appear to be spamming these forums but I've just posted something elsewhere that has a bearing on this thread. https://forum.duet3d.com/topic/7276/high-speed-high-volume-flow-rate-printing

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

                          1 Reply Last reply Reply Quote 0
                          • LHelgeundefined
                            LHelge
                            last edited by

                            A g-code question...

                            Will these produce a different result for calibrating pressure advance, if so, which of them is best?

                            G1 X0 Y0 F12000
                            G1 F4200
                            G1 X0 Y30 Ex.xx
                            G1 X0 Y60 Ex.xx F1200
                            G1 X0 Y90 Ex.xx F4200

                            or

                            G1 X0 Y0 F12000
                            G1 F4200
                            G1 X0 Y30 Ex.xx F4200
                            G1 F1200
                            G1 X0 Y60 Ex.xx
                            G1 F4200
                            G1 X0 Y90 Ex.xx

                            Will the top one be interpreted as a linear interpolation of the feedrate between the start and end point and the second one be a more instant acceleration?

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

                              They should both be treated exactly the same.

                              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

                              LHelgeundefined 1 Reply Last reply Reply Quote 0
                              • LHelgeundefined
                                LHelge @dc42
                                last edited by

                                @dc42 That's a little bit contradictory to what's written in the feedrate part of G0/G1 documentation: https://duet3d.dozuki.com/Wiki/Gcode#Section_G0_G1_Move

                                G1 F1500
                                G1 X50 Y25.3 E22.4
                                In the above example, we set the feedrate to 1500mm/minute on line 1, then move to 50mm on the X axis and 25.3mm on the Y axis while extruding 22.4mm of filament between the two points.
                                G1 F1500
                                G1 X50 Y25.3 E22.4 F3000
                                However, in the above example, we set a feedrate of 1500mm/minute on line 1, then do the move described above accelerating to a feedrate of 3000 mm/minute as it does so. The extrusion will accelerate along with the X and Y movement, so everything stays synchronized.
                                Feedrate is treated as simply another variable (like X, Y, Z, and E) to be linearly interpolated. This gives complete control over the acceleration and deceleration of the printer head in such a way that ensures that everything moves smoothly together, and the right volume of material is extruded at all points. The feedrate specified may not be reached due to a lower feedrate limit being configured, or the move being too short for the axis to accelerate and decelerate in time.

                                1 Reply Last reply Reply Quote 0
                                • RCarlyleundefined
                                  RCarlyle @dc42
                                  last edited by

                                  @dc42 Why doesn’t RRF use jerk in those cases?

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

                                    @rcarlyle said in Pressure Advance Calibration:

                                    @dc42 Why doesn’t RRF use jerk in those cases?

                                    The reason for having jerk is so that if you print a curve made up form short line segments, the print head can maintain a constant speed. Without jerk it would have to stop at the boundaries between segments, to avoid an instantaneous change in X or Y speed due to the small change in direction. Jerk is not required in other cases.

                                    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

                                    RCarlyleundefined 1 Reply Last reply Reply Quote 1
                                    • RCarlyleundefined
                                      RCarlyle @dc42
                                      last edited by

                                      @dc42 If jerk benefits you on extrusion-extrusion corners, it will also benefit you on starts, stops, travel-extrusion changes, and extrusion-travel changes. From a speed standpoint at least, if not so much blobbing. I could see it affecting performance of coast, as well, if you slow to a stop between the last print segment and the start of the first coast segment. What’s the downside of doing it?

                                      Another question if you don’t mind, since we’re talking about it... does RRF ever use different entry/exit speeds at the same corner? For example, if two colinear segments have different feedrates, will RRF decel all the way to the new speed, or will it jerk at the corner?

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

                                        @rcarlyle said in Pressure Advance Calibration:

                                        @dc42 If jerk benefits you on extrusion-extrusion corners, .....................

                                        But does it offer a benefit? My take on it is that "jerk" or instantaneous speed change is just horrible (as it's name implies). As David has pointed out, it is necessary for segmented curves otherwise the print head would have to decelerate to a complete stop at the end of every segment, before starting the next so the time to complete a segmented arc move would be just too long. The same could be said for any situation where there are a series of very small moves. The only "benefit" is that it saves time in those situations but in terms of motion control, it's just horrible. I just think of "jerk" as a necessary evil that we have to put up with.

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

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

                                          Using XY jerk on starts/stops etc. would require intentional extruder jerk too. In order to apply pressure advance to a move that requires extruder jerk, it would be necessary to instantaneously advance or retract the filament by the appropriate amount (the amount of extruder jerk required multiplied by the pressure advance time). That's even more impossible than changing the speed instantaneously.

                                          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

                                          RCarlyleundefined 1 Reply Last reply Reply Quote 0
                                          • DigitalVisionundefined
                                            DigitalVision @deckingman
                                            last edited by

                                            @deckingman said in Pressure Advance Calibration:

                                            I just think of "jerk" as a necessary evil that we have to put up with.

                                            Based on some experimentation I theorize that some "jerk" might actually be advantageous and make the motion smoother. Consider the motion platform a dynamic system (difference in actual vs commanded nozzle position). This can be modeled as a spring-damper system, which models e.g. ringing artifacts. "jerk" effectively puts some pre-tension on the spring in this system which in some of my tests seems to lead to a more faithful adherence to a linear acceleration profile, and in turn make the assumption pressure advance is based on more accurate.

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