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

    Issues with pressure advance since RRF 3.4

    Scheduled Pinned Locked Moved
    General Discussion
    46
    308
    37.9k
    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.
    • jens55undefined
      jens55
      last edited by

      I don't know if this helps but I decided to run some tests. Two printers were used to compare the output. One is a CR10-S5 and one is a Jubilee printer. The CR10 is running a Duet2wifi and a Duex5 expansion card, the Jubilee is running a Duet3-6HC with the extruder being run off a tool board.
      In both cases the extruder is a direct drive extruder. Both use firmware 3.4.0.
      I used a pressure advance python script that I plugged the correct data into in order for it to generate a gcode file. The file prints a single line with fast and slow segments. Slow segment was 5 mm/sec, fast segment was 100 mm/sec.
      The same filament (same roll) was used in both cases.
      It probably has been well over a year since I last ran this pressure advance test but it used to show very clearly what the pressure advance should be set to.
      I can report that the result was absolutely useless - there was no discernible difference in the layer lines. I ran pressure advance from 0.000 to 1.000 just to cover my bases but did more in-detail testing in the 0.000 to 0.080 range which is the expected range for a direct drive extruder.
      There was an occasional abnormality here and there but it was not consistent and certainly was not repeatable.
      I have set config.g on both printers to 0.01 as a wild guess. I could have chosen pretty much any figure between 0.00 to 0.08 as the test print showed no difference in the output.
      When I was getting close to 1.0, I was seeing some issues but again, there was no clear 'this is good' and 'this is bad'.
      I am left with two possible alternative explanations: 1) I don't know what I am doing or 2) PA is completely and utterly borked.
      Since these tests have been a good indicator for PA before, I am leaning towards #2.
      In all fairness, it did take me some time to tweak the python script to work with a multi extruder printer which initially also caused no change in the printed output. That was caused by me printing with extruder 1 but setting the pressure advance for extruder 0 ... doooohhhh ..... but I did correct that and feel that I have valid gcode files and pressure advance is simply not working. I have run M572 on the active extruder and as far as I can tell, the printer thinks it is set to the right pressure advance.

      gloomyandyundefined Adrian52undefined 2 Replies Last reply Reply Quote 2
      • gloomyandyundefined
        gloomyandy @jens55
        last edited by

        @jens55 What was the version of firmware you were using when this test worked? Has anything else changed in your printer setup (hardware or configuration) since then?

        If you think this is a problem with 3.4 that did not exist on an earlier version please switch back to that earlier version and publish the results from both. So far I do not think we have any examples that show this is a change between versions of the firmware (when using the same settings and hardware for both new and old versions). If you are using any 3.4 features (like input shaping), you may want to try disabling them and re-run the 3.4 test again before switching back to the older version.

        jens55undefined 1 Reply Last reply Reply Quote 0
        • jens55undefined
          jens55 @gloomyandy
          last edited by

          @gloomyandy, I do not use input shaping. It's been likely a year or more since I last ran these tests. I can not reasonably claim that nothing else has changed. Heck, I wouldn't even know where to start the recreating of old config.g files. I am not in a position to start reverting to old versions. I have neither the time nor the energy to go through that process in a thorough manner. I will likely continue my experimenting for a while but it isn't an exhaustive investigation (and is not meant as such). I am simply throwing my observations into the mix of things.

          gloomyandyundefined jay_s_ukundefined 2 Replies Last reply Reply Quote 0
          • gloomyandyundefined
            gloomyandy @jens55
            last edited by

            @jens55 If you are not using any 3.4 features, I don't think switching to 3.3 would be a big problem, your 3.4 configuration should work I think.

            1 Reply Last reply Reply Quote 0
            • jay_s_ukundefined
              jay_s_uk @jens55
              last edited by

              @jens55 i've ran a 3.4 config with 3.2 quite happily

              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

              Argoundefined 1 Reply Last reply Reply Quote 0
              • Argoundefined
                Argo @jay_s_uk
                last edited by Argo

                @jay_s_uk

                Did you already have the time to print a comparison between RRF and Klipper on your setup?

                jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                • Adrian52undefined
                  Adrian52 @jens55
                  last edited by

                  @jens55 I was stimulated by your post to try again a gcode script I use to calibrate PA, adapted from a previous post. For me, this seems to work as expected:

                  alt text

                  It does 4 lines at 20mm/sec, then 4 lines speeding up from 20mm/sec to 100mm/sec and back for each PA setting - I have pictured to speeding up section, where you can clearly see the effect of PA, and confirming the .04 I usually use.

                  My system is pretty basic - duet2wifi with no SBC running 3.4.4, with mzv IS, single nozzle, direct drive orbiter 2.

                  Adrian52undefined 1 Reply Last reply Reply Quote 0
                  • Adrian52undefined
                    Adrian52 @Adrian52
                    last edited by

                    @Adrian52 should add that the script is adapted from that posted by DonStauffer (https://forum.duet3d.com/user/donstauffer) here

                    https://forum.duet3d.com/post/250961

                    I found it quicker without a raft, so made an anchor piece to start the test strips . Apologies to DonStauffer for mangling your script.

                    ;	set variables
                    
                    var StartX = -70
                    var StartY = -25
                    var LinesPerTest = 4
                    var LinesBetweenTests = 4
                    var AnchorLines = 10
                    var TempBed = 60
                    var TempTool = 195
                    var ToolNum = 0
                    var Ext1 = 0
                    var Ext2 = 1
                    var Width = 0.55
                    var Height = 0.2
                    var ExFactor = 1.0
                    var Retract = 1.0
                    var Prime = 0	;	Before Raft
                    
                    var PALow = 0.0
                    var PAHigh = 0.07
                    var PAIncrement = 0.01
                    
                    var SpeedRaft = 400
                    var SpeedSlow = 1200
                    var SpeedFast = 6000
                    var SpeedTravelXY = 9000
                    var SpeedTravelZ = 1200
                    var SpeedRetract = 7200
                    
                    ;	Calculated and Utility Variables
                    
                    var TestCount = 1 + floor((var.PAHigh - var.PALow) / var.PAIncrement + 0.5)
                    
                    var FilFactor = var.ExFactor * var.Width * var.Height / (pi * 1.75 * 1.75 / 4)
                    
                    var PA = var.PALow - var.PAIncrement
                    
                    var Dist = 0
                    
                    ;	PREPARE
                    
                    T{var.ToolNum}
                    
                    M82	;	Extruder Absolute Mode
                    
                    ;	Heat Bed and set Hot Ends to Standby
                    
                    M400
                    
                    M117 "Heat"
                    
                    M140 S{var.TempBed}				;	set Bed Temp
                    
                    M568 P{var.ToolNum} S{var.TempTool} A2	;	set Tool Temp
                    
                    M116 H{var.ToolNum + 1} S1			;	Wait for temp
                    
                    G4 S12					;	Delay to Allow for Overshoot
                    
                    M116 H{var.ToolNum + 1} S1		;	Wait for Recovery
                    
                    M116 H0 S1					;	Wait for Bed
                    
                    M400
                    
                    M117 "Home"
                    
                    
                    G1 Z30 F3000
                    G30
                    
                    M400
                    
                    ;M117 "Anchor"
                    
                    ;	Go to StartX - Width *5, StartY
                    
                    G90	;	Absolute
                    
                    G92 E0
                    
                    G0 E{-var.Retract} F{var.SpeedRetract}
                    
                    G1 X{var.StartX - var.Width * (var.AnchorLines-4) } Y{var.StartY} F{var.SpeedTravelXY}
                    
                    G1 Z{var.Height} F{var.SpeedTravelZ}
                    
                    G91	;	Relative
                    
                    
                    set var.Dist = (2 * var.TestCount * var.LinesPerTest + var.LinesBetweenTests * (var.TestCount - 1)) * var.Width
                    
                    M221 S110 ;set extrusion factor to 110% for anchor
                    
                    while iterations < var.AnchorLines
                    
                    	;	Draw anchor Line
                    
                    	G0 Y{var.Dist} E{abs(var.Dist) * var.FilFactor} F{var.SpeedRaft}
                    
                    	G92 E0
                    
                    	;	Break here if last time
                    
                    	if iterations + 1 >= var.AnchorLines
                    
                    		break
                    
                    
                    
                    	;	Move Over
                    
                    
                    
                    	G0 X{var.Width} E{var.Width * var.FilFactor} F{var.SpeedRaft}
                    
                    	G92 E0
                    
                    
                    
                    	set var.Dist = -var.Dist
                    
                    
                    
                    G0 E{-var.Retract} F{var.SpeedRetract}	;	Retract
                    
                    
                    
                    ;	BEGIN TEST PATTERN
                    
                    
                    M400
                    
                    M117 "Test Pattern"
                    
                    
                    
                    ;	Go to StartX, StartY
                    
                    G90	;	Absolute
                    
                    G1 Z{var.Height} F{var.SpeedTravelZ}
                    
                    G1 X{var.StartX} Y{var.StartY} F{var.SpeedTravelXY}
                    
                    G91	;	Relative
                    
                    while iterations < var.TestCount
                    
                    	;	set PA
                    
                    	set var.PA = var.PA + var.PAIncrement
                    
                    	M572 D{var.Ext1} S{var.PA}
                    	M572 D{var.Ext2} S{var.PA}
                    
                    	echo "PA=",{var.PA}
                    
                    	;	Draw Reference Lines
                    
                    	while iterations < var.LinesPerTest
                    
                    		G0 E0 F{var.SpeedRetract}		;	Unretract
                    
                    		G0 X140 F{var.SpeedSlow} E{140 * var.FilFactor}
                    
                    		G92 E0
                    
                    		G0 E{-var.Retract} F{var.SpeedRetract}	;	Retract
                    
                    		G1 Y{var.Width} F{var.SpeedTravelXY}
                    
                    		G1 X-140 F{var.SpeedTravelXY}
                    
                    
                    
                    	;	Draw Test Lines
                    
                    	while iterations < var.LinesPerTest
                    
                    		G0 E0 F{var.SpeedRetract}		;	Unretract
                    
                    		G0 X35 F{var.SpeedSlow} E{35 * var.FilFactor}
                    
                    		G0 X70 F{var.SpeedFast} E{105 * var.FilFactor}
                    
                    		G0 X35 F{var.SpeedSlow} E{140 * var.FilFactor}
                    
                    		G92 E0
                    
                    		G0 E{-var.Retract} F{var.SpeedRetract}	;	Retract
                    
                    
                    		G1 Y{var.Width} F{var.SpeedTravelXY}
                    
                    		G1 X-140 F{var.SpeedTravelXY}
                    
                    
                    
                    	;	Move to start of next comparison
                    
                    
                    
                    	G1 Y{var.LinesBetweenTests * var.Width} F{var.SpeedTravelXY}
                    
                    
                    
                    ;	Finish up
                    
                    
                    
                    M400
                    
                    M117 "Done"
                    
                    G10 P0 S0 ; turn off temperature
                    M140 S0  ;turn off bed heater
                    G28  ; home
                    
                    
                    
                    jens55undefined 1 Reply Last reply Reply Quote 0
                    • jay_s_ukundefined
                      jay_s_uk @Argo
                      last edited by

                      @Argo I have but I'm awaiting some feedback for I post anything

                      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                      1 Reply Last reply Reply Quote 1
                      • jens55undefined
                        jens55 @Adrian52
                        last edited by

                        @Adrian52, thanks for posting the script and the results. I will see if I can get that working here!

                        1 Reply Last reply Reply Quote 0
                        • jens55undefined
                          jens55
                          last edited by

                          I went back to the original script posted by DonStauffer with the raft and I did see the ever so subtle change in the printout. Interpretation of the test print is difficult but it works better than what my previous script was able to do.
                          I kept the raft so I could remove the finished print in one piece and examine it clearly. I did have adhesion problems because it's a single line and I am working on adjusting my bed temperature to fix that.
                          Final verdict: I didn't know what I was doing and pressure advance does in fact work on the CR10 printer. I have not yet tried this on the Jubilee where the extruder is driven off a tool board. Note that this only speaks to PA changing and not necessarily to how effective the PA is in an actual print.
                          Tests are ongoing ......

                          1 Reply Last reply Reply Quote 1
                          • gnydickundefined
                            gnydick
                            last edited by

                            This post is deleted!
                            1 Reply Last reply Reply Quote 0
                            • Heartleander81undefined
                              Heartleander81
                              last edited by

                              Update on my conversion to Klipper.
                              At first the corners didn't look any better than with RRF until I came across a post today that refers to extruder smooth time.
                              The standard is with Klipper 0.04, which I also use.
                              Switched to 0.01 and the corners look awesome.
                              In the article it was said that some extruders can not cope with the smooth time and then you have to get smaller. see my pictures.

                              20221121_171555.jpg

                              With smooth time 0.04

                              20221128_153229.jpg 20221128_153233.jpg 20221128_153236.jpg

                              With smooth time 0.01

                              R4ffersundefined Argoundefined 2 Replies Last reply Reply Quote 2
                              • R4ffersundefined
                                R4ffers @Heartleander81
                                last edited by

                                @Heartleander81 wow mate what a difference

                                Mb6hc + 3hc + 1lc on Voron V2.4, Mini 5+ exp 2+ on Vzbot 235 AWD, Duet 2 wifi on Ox CNC and Mini 5+ on Millennium Milo v1.5 mini mill.

                                Heartleander81undefined 1 Reply Last reply Reply Quote 0
                                • Heartleander81undefined
                                  Heartleander81 @R4ffers
                                  last edited by

                                  @R4ffers oh yes.

                                  @dc42 is there also something like pressure advance smooth time under RRF? A few clippers have the problem with the high smooth time, but those who have problems are mostly DirectDrive extruder users. Maybe that's an approach you can follow.

                                  Phaedruxundefined dc42undefined 2 Replies Last reply Reply Quote 0
                                  • Phaedruxundefined
                                    Phaedrux Moderator @Heartleander81
                                    last edited by

                                    @Heartleander81 Can you link that article you mention?

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    sebkritikelundefined 1 Reply Last reply Reply Quote 0
                                    • sebkritikelundefined
                                      sebkritikel @Phaedrux
                                      last edited by

                                      @Phaedrux I see some discussions on it at the bottom of Klipper's Kinematics page
                                      https://www.klipper3d.org/Kinematics.html

                                      Some other pages of interest
                                      https://klipper.discourse.group/t/pressure-advance-smooth-time-on-direct-extruders-with-short-filament-path/1971
                                      https://github.com/Klipper3d/klipper/issues/4442

                                      richfelker created this issue in Klipper3d/klipper

                                      closed Pressure advance smoothing induces e-axis position swings that scale with acceleration #4442

                                      Large(ish?) IDEX - 6HC, 1HCL
                                      Stratasys Dimension 1200es to 6HC Conversion

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

                                        @Heartleander81 said in Issues with pressure advance since RRF 3.4:

                                        @R4ffers oh yes.

                                        @dc42 is there also something like pressure advance smooth time under RRF? A few clippers have the problem with the high smooth time, but those who have problems are mostly DirectDrive extruder users. Maybe that's an approach you can follow.

                                        No, there isn't anything similar. I will look into that Klipper feature.

                                        The reason I have made no progress on this is that while a number of users seem to think that pressure advance doesn't work as well in RRF 3.4 as it did in 3.3, and I am prepared to believe that there may be a difference because the relevant code had to be rewritten to accommodate input shaping, nobody has been able to provide a simple GCode script and machine settings that demonstrate a difference when input shaping is disabled. That includes me - I have compared RRF 3.3 and RRF 3.4 prints.

                                        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

                                        Heartleander81undefined petriheinoundefined CR3Dundefined gnydickundefined camnewnhamundefined 5 Replies Last reply Reply Quote 0
                                        • Heartleander81undefined
                                          Heartleander81 @dc42
                                          last edited by Heartleander81

                                          @dc42
                                          @Phaedrux

                                          I couldn't find any differences between 3.3 and 3.4.x, but I still have a picture of a test where the corners became nice with PA. As now with klipper. The Artikel from sebkritel is that who I read.

                                          1 Reply Last reply Reply Quote 0
                                          • Argoundefined
                                            Argo @Heartleander81
                                            last edited by Argo

                                            @Heartleander81

                                            So altering the smooth time value did improve your corners and PA alone did not?

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