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

    Pressure Advance: Discussion for Future Development

    Scheduled Pinned Locked Moved
    Firmware wishlist
    15
    46
    4.1k
    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.
    • Phaedruxundefined
      Phaedrux Moderator @CCS86
      last edited by

      @CCS86 said in Pressure Advance: Discussion for Improvement in Bowden Printers:

      But it ends up worsening print quality for me.

      Post your config and slicer settings?

      Z-Bot CoreXY Build | Thingiverse Profile

      CCS86undefined 1 Reply Last reply Reply Quote 1
      • CCS86undefined
        CCS86 @Phaedrux
        last edited by

        @Phaedrux said in Pressure Advance: Discussion for Improvement in Bowden Printers:

        @CCS86 said in Pressure Advance: Discussion for Improvement in Bowden Printers:

        But it ends up worsening print quality for me.

        Post your config and slicer settings?

        Which slicer settings are you interested in? There are a ton. Basic stuff: line width=0.4mm, layer height=0.15mm, outer wall=30mm/s, infill=60mm/s. I have tried with and without coasting.

        ; Configuration file for Duet Maestro (firmware version 3)
        
        ; General preferences
        G90                                                    ; absolute coordinates
        M83                                                    ; relative extruder
        M550 P"Maestro86"                                      ; set printer name
        
        
        ; Network
        M552 P0.0.0.0 S1                                       ; enable network and acquire dynamic address via DHCP
        M586 P0 S1                                             ; enable HTTP
        M586 P1 S0                                             ; disable FTP
        M586 P2 S0                                             ; disable Telnet
        
        
        ; Drives
        M569 P0 S0                                             ; physical drive 0 goes forwards / bw
        M569 P1 S1                                             ; physical drive 1 goes backwards / fw
        M569 P2 S0                                             ; physical drive 2 goes backwards
        M569 P3 S0                                             ; physical drive 3 goes backwards
        
        M569 P0 D2 ;V150									   ; Stealthchop2 till about 31.3 mm/sec / spreadcycle now D2
        M569 P1 D2 ;V150 									   ; Stealthchop2 till about 31.3 mm/sec / spreadcycle now D2
        M569 P2 V40 										   ; Stealthchop2 till about 46.9 mm/sec
        M569 P3 D2 											   ; Extruder in Spreadcyle
        
        M584 X1 Y0 Z2 E3                                       ; set drive mapping
        M92 X159.93 Y159.75 Z400.00 E510                       ; set steps per mm
        M350 X16 Y16 Z16 E16 I1                                ; configure microstepping with interpolation
        
        M201 X4000.00 Y4000.00 Z400.00 E10000.00                ; set max accelerations (mm/s^2)
        M203 X10200.00 Y10200.00 Z1800.00 E2400.00             ; set maximum speeds (mm/min)
        M204 P2200 T3500                                       ; set accelerations (mm/s^2)
        M205 X8 Y8 Z4 E4.5                                       ; set maximum instantaneous speed changes (mm/s)
        
        
        M593 F00                                               ; dynamic accel cancel 0 hz
        M572 D0 S0.20	    									   	; Pressure Advance
        
        M906 X1200 Y1200 Z1200 E1200 I40                       ; set motor currents (mA) and motor idle factor in per cent
        M84 S30                                                ; Set idle timeout
        
        
        ; Axis Limits
        M208 X0 Y0 Z0 S1                                       ; set axis minima
        M208 X205 Y195 Z220 S0                                 ; set axis maxima
        
        
        ; Endstops
        M574 X1 S1 P"!xstop"                                   ; configure active-high endstop for low end on X via pin !xstop
        M574 Y1 S1 P"!ystop"                                   ; configure active-high endstop for low end on Y via pin !ystop
        
        
        ; Z-Probe
        M574 Z1 S2 ; Set endstops controlled by probe
        ;M558 P9 C"^zprobe.in" H5 F300 T6000                   ; set Z probe type to bltouch and the dive height + speeds
        M558 P5 C"^zprobe.in" H5 F500 T6000 
        M950 S0 C"zprobe.mod"                                  ; create servo pin 0 for BLTouch
        G31 P25 X12 Y-18 Z2.37                                 ; set Z probe trigger value, offset and trigger height
        M557 X12:200 Y0:169.2 S18.8                            ; define mesh grid
        M376 H2                                                ; mesh taper
        
        ; Heaters
        M308 S0 P"spi.cs1" Y"rtd-max31865"                     ; configure sensor 0 as a PT100 sensor in the first position on the Duet 2 daughter board connector
        M950 H0 C"bedheat" T0                                  ; create bed heater output on bedheat and map it to sensor 0
        M307 H0 B0 S1.00                                       ; disable bang-bang mode for the bed heater and set PWM limit
        M140 H0                                                ; map heated bed to heater 0
        M143 H0 S120                                           ; set temperature limit for heater 0 to 120C
        M308 S1 P"e0temp" Y"pt1000" ;T100000 B4725 C7.06e-8    ; configure sensor 1 as PT1000 on pin e0temp
        M950 H1 C"e0heat" T1                                   ; create nozzle heater output on e0heat and map it to sensor 1
        M143 H1 S260                                          ; set temperature limit for heater 1 to 250C
        M307 H1 B0 S1.00                                       ; disable bang-bang mode for heater  and set PWM limit
        M308 S2 Y"drivers" A"DRIVERS"                          ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
        M308 S3 Y"mcu-temp" A"MCU"                             ; configure sensor 3 as thermistor on pin e1temp for left stepper
        
        ; Heater model parameters
        M307 H0 A126.9 C671.6 D1.2 S1.00 V23.0 B0
        M307 H1 A374.7 C132.0 D4.4 S1.00 V24.3 B0
        
        ; Fans
        M950 F0 C"fan0" Q500                                   ; create fan 0 on pin fan0 and set its frequency
        M106 P0 S0 H-1                                         ; set fan 0 value. Thermostatic control is turned off
        M950 F1 C"fan1" Q500                                   ; create fan 1 on pin fan1 and set its frequency
        M106 P1 S1 H1 T40 B1.5                                 ; set fan 1 value. Thermostatic control is turned on
        M950 F2 C"fan2" ;Q800                                  ; create fan 2 on pin fan2 and set its frequency                        
        M106 P2 H1:2:3 L1 X1 T53                               ; set fan 2 value
         
        ; Tools
        M563 P0 S"E0" D0 H1 F0                                 ; define tool 0
        G10 P0 X0 Y0 Z0                                        ; set tool 0 axis offsets
        G10 P0 R0 S0                                           ; set initial tool 0 active and standby temperatures to 0C
        
        ; Custom settings are not defined
        
        ; Miscellaneous
        T0                                                     ; select first tool
        
        ;M501                                                  ; Load config-override.g
        
        
        1 Reply Last reply Reply Quote 0
        • botundefined
          bot
          last edited by

          Can you post a gcode file you’ve printed and had bad experiences with in regards to PA?

          *not actually a robot

          1 Reply Last reply Reply Quote 0
          • CCS86undefined
            CCS86
            last edited by

            I can't remember with confidence which files I tried and failed to get a good result. The next time I have that issue, I will set the code aside.

            I decided to try to make a test print that I hoped would replicate my PA issues for demonstration. Just a short, narrow print, which necks down from an 8mm width, to 2mm width. This object is copied 4 times, printed one at a time, with M572 D0 S0, S0.5, S1.0, S1.5.

            I photographed the results with my macro lens, but it's really hard to make judgement from the photos. In hand, they all look similar. If anything the S0 print looks best. With PA enabled, you certainly lose a bunch of time.

            1327abdc-2297-402d-8a9b-5ca161255c0c-image.png

            cf9aaa5e-9bc5-4543-b943-6ef1d3ebd746-image.png

            1 Reply Last reply Reply Quote 0
            • QuintBrandundefined
              QuintBrand
              last edited by QuintBrand

              I relate to your ideas and findings. I have a nimble though, so bit different situation. A nimble has trouble to keep up wit PA due to its high gear ratio (as noted on duet website). So although direct drive it has some "bowden like" behavior in PA. My findings:

              • using Marlin routine I need S0.54
              • using the Python script approach I need S0.6
              • in real printing I find better results with S0.4

              So lower than in the tests with I think relate to your observation on for the under extrusion on very short lines.

              I have no need anymore for coasting in cura, and overall I have better quality. I hope and think you do too right? It's about improving it even more.

              So I think your idea on the minimum amount of time could work well. I'm wondering if it should be time or travel length though? That would take out the need to tune each time when you print with different speeds for different prints, or even when using different speeds while printing different features.

              I think having both options would be best to tinker with.

              Also I would think it would be even nicer if one can give two parameters:

              • length/time No PA
              • length/time Full PA.

              And an interpolation in between to give a sliding PA value?

              No idea how hard to implement, but I bet it would be a selling point when this works well (I'd be happy to test 🙂 when indeed working well.

              While think about it: anybody know how to modify a gcode file to search for short line length and putting an M572 in front (and after) to change the settings with some existing scripts or something to prototype test?

              Cheers Q

              1 Reply Last reply Reply Quote 1
              • QuintBrandundefined
                QuintBrand
                last edited by

                Seems little interest CCS... 🤔

                CCS86undefined 1 Reply Last reply Reply Quote 0
                • Slzerundefined
                  Slzer
                  last edited by

                  I ended up just using 0.5 for my PA on my long bowden setup despite all tests indicating more or less no change until 1.5-2 range.

                  I'm actually getting quite nice results but I was simply limited by what didn't cause the extruder to sound like a machine gun

                  Exerqtorundefined 1 Reply Last reply Reply Quote 0
                  • Exerqtorundefined
                    Exerqtor @Slzer
                    last edited by

                    @Slzer

                    That's exactly what i ended up doing to (well i setteled on 0.4), even though i would get the most consistent pressure somewhere close to 2, but it sounded like my BMG was one nudge away from exploding at that point 😂

                    Designed new extruder mounts so i could move the extruders over the build area (corexy machine) and shorten the bowdens down to 300mm ish, so 0.4 isn't that much off.

                    RyanPundefined 1 Reply Last reply Reply Quote 0
                    • CCS86undefined
                      CCS86 @QuintBrand
                      last edited by

                      @QuintBrand said in Pressure Advance: Discussion for Improvement in Bowden Printers:

                      Seems little interest CCS... 🤔

                      Were you waiting on my feedback? It sounded like you were generally agreeing with me and not asking questions.

                      I don't think "length" is a better parameter to use for filtering over "time". We are dealing with time based phenomenon, ie lag between extruder drive motion > nozzle pressure > nozzle flow rate. How fast the print head is traveling doesn't impact these things.

                      QuintBrandundefined 1 Reply Last reply Reply Quote 0
                      • Edgars Batnaundefined
                        Edgars Batna
                        last edited by Edgars Batna

                        I have resorted to printing without PA now. In my case I observed that the extruder reverse motion gets skipped on consecutive small segments, thus all my over-extrusion issues ensued.

                        I also dug in the Firmware and at some point it just stopped being fun as there are multiple approximations related to step generation which smell bad. Having no handy HW simulation tools it just took too long to debug with all the variables.

                        I saw Klipper implements "smoothing" for PA, so I started moving to it to test it out. While there are pros and cons between Duet and Klipper (I still like the Duet), but at least in Klipper the CPU basically only runs the step pulses, so no need to deal with interrupts being late or whatnot.

                        Not finished yet, tho.

                        1 Reply Last reply Reply Quote 1
                        • QuintBrandundefined
                          QuintBrand @CCS86
                          last edited by

                          @CCS86

                          Hey, no I was not trying to push you in any way, but actually trying to support this tread from sliding away as I think it is an excellent idea to get the "gun" effect out of the printing with PA 👍.

                          I think bit time and length would be nice. I agree that if we'd "need to choose" time is probably better, but when printing at (quite) different speeds for infill, walls etc I think length is also nice.

                          I also went from 0.4-0.5 found from testing to 0.2 to ease the printing somewhat and get good results anyways too.

                          1 Reply Last reply Reply Quote 0
                          • RyanPundefined
                            RyanP @Exerqtor
                            last edited by

                            @Exerqtor said in Pressure Advance: Discussion for Improvement in Bowden Printers:

                            @Slzer

                            That's exactly what i ended up doing to (well i setteled on 0.4), even though i would get the most consistent pressure somewhere close to 2, but it sounded like my BMG was one nudge away from exploding at that point 😂

                            Designed new extruder mounts so i could move the extruders over the build area (corexy machine) and shorten the bowdens down to 300mm ish, so 0.4 isn't that much off.

                            Answers like this make me not feel alone in the world.

                            CR10S, August 2018
                            Anycubic Photon S December 2019
                            Ender 5 Feb 2020
                            Ender 5 Plus May 2020
                            Anycubic Photon Mono X Nov 2020
                            ~
                            https://3dimensiongames.com/

                            Slzerundefined 1 Reply Last reply Reply Quote 0
                            • Slzerundefined
                              Slzer @RyanP
                              last edited by

                              @RyanP said in Pressure Advance: Discussion for Improvement in Bowden Printers:

                              @Exerqtor said in Pressure Advance: Discussion for Improvement in Bowden Printers:

                              @Slzer

                              That's exactly what i ended up doing to (well i setteled on 0.4), even though i would get the most consistent pressure somewhere close to 2, but it sounded like my BMG was one nudge away from exploding at that point 😂

                              Designed new extruder mounts so i could move the extruders over the build area (corexy machine) and shorten the bowdens down to 300mm ish, so 0.4 isn't that much off.

                              Answers like this make me not feel alone in the world.

                              Aye me too... Most calibration things I can see the difference and select a good balance (although often having to run multiple parameter ranges to get a matrix of options - stringing control being a good example here, move speed, retraction length, retraction rate wipe etc.) but this one feels like black magic hah

                              1 Reply Last reply Reply Quote 0
                              • Exerqtorundefined
                                Exerqtor
                                last edited by

                                Just saw this tutorial pop up, note that it is for klipper-fw, but it should be translateable for RRF to i think. Gonna try it tomorrow and see what numbee i end up with this time 😅

                                https://www.lpomykal.cz/anycubic-kossel-klipper-pressure-advance/

                                1 Reply Last reply Reply Quote 0
                                • CCS86undefined
                                  CCS86
                                  last edited by

                                  @dc42, any thoughts on this?

                                  1 Reply Last reply Reply Quote 0
                                  • CCS86undefined
                                    CCS86
                                    last edited by

                                    @dc42 I was really hoping you would weigh in here!

                                    1 Reply Last reply Reply Quote 0
                                    • CCS86undefined
                                      CCS86
                                      last edited by

                                      @dc42

                                      😟

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

                                        I'm sorry, I don't have time to look at improving PA until I've implemented input shaping. But I've bookmarked this thread so that I can return to it. Pressure advance smoothing is something I was already thinking about.

                                        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

                                        CCS86undefined 1 Reply Last reply Reply Quote 4
                                        • Hergonowayundefined
                                          Hergonoway
                                          last edited by Hergonoway

                                          while we're at it, is there any impact using DAA (Dynamic Acceleration Adjustment: M593 with F != 0) during PA calibration process? DAA is related to acceleration where PA is jerk related, technically one shouldn't alter the other result but... heavy doubt 👀

                                          or is it better to turnOFF DAA, calibrate PA, then calibrate/turnON DAA ?

                                          Delta goes BrrrRRRRrrrrrRRRRrrr

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

                                            DAA might reduce acceleration, so it may affect PA - but only because in reality, PA should not be applied linearly. I think I would be inclined to calibrate DAA first followed by PA, however I haven't tested doing it both ways so I may be wrong.

                                            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 1
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA