Pressure Advance Having No Effect?



  • I'm trying to tune the pressure advance on my Ender 5 Pro with a new Duet 2 Maestro setup by following the guidelines on this page. My printer has a bowden setup with a tube that's slightly longer than 200mm. Extrusion is calibrated precisely at 420s/mm with a Bondtech extruder.

    I took this test cylinder and made it 50mmx50mmx100mm. Set Cura to slice it with a 6-line brim, 2 wall outlines, no infill and no top/bottom surfaces. Then I took the resulting gcode file and added M572 commands every 100 layers as so:
    M572 D0 S0
    M572 D0 S0.1
    M572 D0 S0.2

    and so on up to S0.9. I added the M572 commands immediately before the G11 command preceding each 100th layer. I'm running this test with PLA.

    Here's the resulting print (with the brim removed):
    IMG_20200618_103757.jpg

    There's absolutely NO difference along the seam all the way up the cylinder. I'm very confused. Here's the beginning of the gcode file:

    ;FLAVOR:RepRap
    ;TIME:16158
    ;Filament used: 5.17305m
    ;Layer height: 0.1
    ;MINX:82.81
    ;MINY:82.803
    ;MINZ:0.2
    ;MAXX:137.198
    ;MAXY:137.196
    ;MAXZ:100
    ;Generated with Cura_SteamEngine 4.6.1
    T0
    M190 S60
    M104 S200
    M109 S200
    M82 ;absolute extrusion mode
    ;M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
    ;M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
    ;M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
    ;M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
    ;M220 S100 ;Reset Feedrate
    ;M221 S100 ;Reset Flowrate
    
    G28 ;Home
    
    G92 E0 ;Reset Extruder
    G1 Z2.0 F3000 ;Move Z Axis up
    G1 X0.0 Y20 Z0.28 F5000.0 ;Move to start position
    G1 X0.0 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
    G1 X0.3 Y200.0 Z0.28 F5000.0 ;Move to side a little
    G1 X0.3 Y20 Z0.28 F1500.0 E30 ;Draw the second line
    G10
    G92 E0 ;Reset Extruder
    G1 Z2.0 F3000 ;Move Z Axis up
    G11
    M83 ;relative extrusion mode
    G10
    ;LAYER_COUNT:999
    ;LAYER:0
    M107
    G0 F9000 X90.941 Y90.595 Z0.2
    ;TYPE:SKIRT
    M572 D0 S0.0
    G11
    G1 F1800 X92.028 Y89.585 E0.04935
    G1 X93.17 Y88.634 E0.04943
    G1 X94.36 Y87.748 E0.04935
    G1 X95.599 Y86.927 E0.04944
    

    Here's my config.g:

    ; Configuration file for Duet Maestro (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 23:24:54 GMT-0400 (Eastern Daylight Time)
    
    ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"Ender 5 Pro"                                ; 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 backwards
    M569 P1 S0                                         ; physical drive 1 goes backwards
    M569 P2 S0                                         ; physical drive 2 goes backwards
    M569 P3 S1                                         ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                                   ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z800.00 E420.00                  ; set steps per mm
    M566 X1600.00 Y1200.00 Z180.00 E3600.00 P1           ; set maximum instantaneous speed changes (mm/min)
    ;M203 X18000.00 Y18000.00 Z1200.00 E6000.00         ; set maximum speeds (mm/min)
    ;M201 X500.00 Y500.00 Z50.00 E3000.00              ; set accelerations (mm/s^2)
    M203 X30000.00 Y30000.00 Z600.00 E3000.00         ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z100.00 E5000.00              ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E1000 I30                      ; 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 X220 Y220 Z300 S0                             ; set axis maxima
    
    ; Endstops
    M574 X2 S1 P"xstop"                                ; configure active-high endstop for high end on X via pin xstop
    M574 Y2 S1 P"ystop"                                ; configure active-high endstop for high end on Y via pin ystop
    M574 Z1 S2                                         ; configure Z-probe endstop for low end on Z
    
    ; Z-Probe
    M950 S0 C"^zprobe.mod"                             ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F240 T12000               ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-43 Y-13 Z1.35                            ; set Z probe trigger value, offset and trigger height
    M557 X0:177 Y0:207 S29.5                             ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4092     ; configure sensor 0 as thermistor on pin bedtemp
    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 S150                                       ; set temperature limit for heater 0 to 150C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4092      ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                               ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"ctemp" Y"thermistor" T100000 B4092       ; configure sensor 2 as thermistor on pin ctemp
    M950 H2 C"e1heat" T2                               ; create chamber heater output on e1heat and map it to sensor 2
    M307 H2 B0 S1.00                                   ; disable bang-bang mode for the chamber heater and set PWM limit
    M141 H2                                            ; map chamber to heater 2
    
    ; 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 T45                                  ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan2" Q500                               ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S1 H-1                                     ; set fan 2 value. Thermostatic control is turned off
    
    ; Tools
    M563 P0 S"Hotend" 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
    M569 P0 V46                                        ; Stealthchop2 till about 200 mm/sec
    M569 P1 V46                                        ; Stealthchop2 till about 200 mm/sec
    M569 P2 V46                                        ; Stealthchop2 till about 200 mm/sec
    M569 P3 D3 V100                                    ; Extruder in Stealthchop2
    
    ; Miscellaneous
    M575 P1 S1 B57600                                  ; enable support for PanelDue
    M501                                               ; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    T0                                                 ; select first tool
    

    And here's my config-override.g:

    ; config-override.g file generated in response to M500 at 2020-06-13 13:47
    ; This is a system-generated file - do not edit
    ; Heater model parameters
    M307 H0 A404.7 C496.8 D3.0 S1.00 V24.2 B0
    M307 H1 A422.8 C91.1 D2.7 S1.00 V24.2 B0
    M307 H2 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    ; Enable pressure advance
    M572 D0 S0.05
    ; Firmware retraction
    M207 S4.0 F3000 Z0.1
    ; Workplace coordinates
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00
    

    Any help figuring out what I'm doing wrong would be greatly appreciated.


  • Moderator

    Well your bowden tube isn't exceedingly long, so I think what you're seeing is a fairly decent seam. It's not going to disappear if that's what you were expecting.

    You may want to try printing a square so that you can see the effect on sharper corners as well. And also try printing some actual models of things you may actually print to see the effects on something other than a test object.

    Also, your X Y acceleration and jerk are quite low and your print speed not very high, so the effects of PA will be less apparent. It's most noticeable at high speeds.



  • Can you tell me what you think my print speed will be based on these files? Because I'm having a heck of a time getting it to actually print at the speed I have it set to in Cura. It keeps topping out at a different number than I expect. Keep in mind that I have most of the start settings in the gcode file commented out because those were preset by Cura and seemed to be overriding my firmware settings.


  • Moderator

    Can you post the entire sliced gcode file from cura so we can see the settings included at the end?

    You've already dealt with the most common reason that prevents cura from reaching the expected speed by commenting out those lines. So that's not it.

    What do you have the print speed set to? Bare in mind that if you're using the basic cura interface the print speed you set is a base speed that gets reduced depending on the print move (slower for external perimeters etc). So you'll need to use the more advanced settings options in Cura to see in detail what is set to what. Including un hiding some settings that are hidden by default.



  • @Phaedrux Thanks, that helped me figure it out. The "Print speed" setting in Cura is very misleading. I turned on the visibility of the wall speed and infill speed and I saw that Cura recalculates wall print speed MUCH lower than what I set in the "Print speed" field. It's ironic because I had the initial layer set to 30mm/s (which is how fast it went) for better adhesion, and then the overall print speed set to 40mm/s, which means Cura would slow everything down to 25mm/s on the second layer and then 20mm/s on every other layer instead of speeding up the way I wanted... seems really counter-intuitive.


  • Moderator

    @GoremanX Cura has an abundance of tuning options under the hood, which can be very intimidating for new users so the basic interface is incredibly simplified and set to give successful if not optimal results. As with any complex software tool, you really need to research and learn and dig down deep to get the most out of it.


Log in to reply