Very slow XY movement when Pressure Advance is enabled



  • Hi,

    I tried to run a test print using the baseline M572 setting for Pressure Advance on a long bowden on my toolchanger with:

    M572 D2 S0.5

    When I started the print, the XY movement was extremely slow with very long acceleration.

    I appreciate that PA affects acceleration, however the values I have used are based on DC42's Toolchanger config:

    M201 X6000 Y6000 Z400 C400 E2500:2500:2500:2500

    And an M201 on its own confirms this.

    I have tried extremely low M572 settings and it seems that this is seen when S values are above the order of 0.001, while I can go down that path and try to calibrate as-is however I'm curious as to why my machine behaves this way with baseline parameters. Is there something else I need to be looking at to figure out why I am seeing this?

    This particular tool is a bowden E3D volcano / titan however I see this on all tools. I am running RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2 running on Duet Ethernet 1.02 or later + DueX5.

    Thanks,

    Neil.



  • post your complete config please



  • Sure. Here you go

    ; Configurat; Configuration file for Duet WiFi / Ethernet
    ; executed by the firmware on start-up

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M555 P2 ; Set firmware compatibility to look like Marlin

    ; Network
    ; Read https://duet3d.dozuki.com/Wiki/Gcode#Section_M587_Add_WiFi_host_network_to_remembered_list_or_list_remembered_networks
    M550 P"ToolChanger" ; Set machine name
    M552 S1 ; Enable Networking
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    ;M586 P2 S0 ; Disable Telnet
    M586 P2 S1 T0 ; enable telnet

    M575 P1 S1 B57600 ; Paneldue

    M667 S1 ; Select CoreXY mode

    ; Endstops
    M574 X1 S3 ; Set X endstop stall detection
    M574 Y1 S3 ; Set Y endstop stall detection

    M574 Z0 P"nil";
    M558 P5 C"zstop" H3 F150 T20000
    M574 C1 S3 ; Stall detect coupler at low end of its range

    G31 P200 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
    M557 X10:290 Y20:180 S40 ; Define mesh grid

    ; Drive direction
    M569 P0 S0 ; Drive 0 X
    M569 P1 S0 ; Drive 1 Y
    M569 P2 S1 ; Drive 2 Z
    M569 P3 S0 ; Drive 3 E0
    M569 P4 S0 ; Drive 4 E1
    M569 P5 S1 ; Drive 5 E2
    M569 P6 S1 ; Drive 6 E3
    M569 P7 S0 ; Drive 7 COUPLER
    M569 P8 S0 ; Drive 8 UNUSED
    M569 P9 S0 ; Drive 9 UNUSED

    M584 X0 Y1 Z2 C7 E3:4:5:6 ; Apply custom drive mapping
    M208 X-35:328.5 Y-49:243 Z0:300 C0:260 S0 ; Set axis maxima & minima
    M350 E16:16:16:16 C8 I0 ; Configure microstepping without interpolation
    M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation
    M92 X100.2 Y100.2 Z1600 C100 E740:740:740:375 ; Set steps per mm
    M566 X400 Y400 Z8 C2 E2:2:2:2 ; Set maximum instantaneous speed changes (mm/min)
    M203 X35000 Y35000 Z1200 C5000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min)
    M201 X6000 Y6000 Z400 C400 E2500:2500:2500:2500 ; Set accelerations (mm/s^2)
    M906 X2000 Y2000 Z1330 C400 E1680:1680:1680:1000 I30 ; Set motor currents (mA) and motor idle factor in percent
    M84 S120 ; Set idle timeout

    ;Stall Detection
    M915 C S5 F0 H200 ; Coupler

    ;Stall Detection
    M915 X Y S5 F0 H400 ; X / Y Axes

    ; Heaters

    ; Bed
    M308 S0 P"bed_temp" Y"thermistor" A"Bed" T100000 B4725 C7.06e-8 ; define bed temperature sensor
    M950 H0 C"bed_heat" T0 ; heater 0 uses the bed_heat pin, sensor 0
    M140 H0 ; the bed heater is heater 0
    M143 H0 S225 ; Set temperature limit for heater 0 to 225C

    ; Tool 0
    M308 S1 P"e0temp" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H1 C"e0heat" T1 ; Extruder 0 heater
    M143 H1 S300 ; Set temperature limit for heater 1 to 300C
    M563 P0 S"Titan/V6 0.4" D0 H1 F2 ; Define tool 0
    G10 P0 X0 Y0 Z0 ; Reset tool 0 axis offsets
    G10 P0 R0 S0 ; Reset initial tool 0 active and standby temperatures to 0C
    M950 F1 C"fan1"
    M950 F2 C"fan2"
    M106 P1 S255 H1 T70 ; T0 HE
    M106 P2 S0 ; T0 PCF

    ; Tool 1
    M308 S2 P"e1temp" Y"thermistor" A"T1" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H2 C"e1heat" T2 ; Extruder 0 heater
    M143 H2 S300 ; Set temperature limit for heater 2 to 300C
    M563 P1 S"Titan/V6 0.4" D1 H2 F4 ; Define tool 1
    G10 P1 X0 Y0 Z0 ; Reset tool 1 axis offsets
    G10 P1 R0 S0 ; Reset initial tool 1 active and standby temperatures to 0C
    M950 F3 C"duex.fan3"
    M950 F4 C"duex.fan4"
    M106 P3 S255 H2 T70 ; T1 HE
    M106 P4 S0 ; T1 PCF

    ; Tool 2 Volcano
    M308 S3 P"e2temp" Y"thermistor" A"T2" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H3 C"duex.e2heat" T3 ; Extruder 0 heater
    M143 H3 S300
    M563 P2 S"Titan/Volcano 0.8" D2 H3 F6 ; Define tool 2
    G10 P2 X0 Y0 Z0 ; Reset tool 2 axis offsets
    G10 P2 R0 S0 ; Reset initial tool 2 active and standby temperatures to 0C
    M950 F5 C"duex.fan5"
    M950 F6 C"duex.fan6"
    M106 P5 S255 H3 T70 ; T2 HE
    M106 P6 S0 ; T2 PCF

    ; Tool 3 Hemera
    M308 S4 P"e3temp" Y"thermistor" A"T3" T100000 B4725 C7.06e-8 ; Set thermistor
    M950 H4 C"duex.e3heat" T4 ; Extruder 0 heater
    M143 H4 S300
    M563 P3 S"Hemera 0.4" D3 H4 F8 ; Define tool 3
    G10 P3 X0 Y0 Z0 ; Reset tool 3 axis offsets
    G10 P3 R0 S0 ; Reset initial tool 3 active and standby temperatures to 0C
    M950 F7 C"duex.fan7"
    M950 F8 C"duex.fan8"
    M106 P7 S255 H4 T70 ; T3 HE
    M106 P8 S0

    ; Fans
    M950 F0 C"fan0"
    M106 P0 S0 ; Enclosure LEDs

    M593 F50 ; cancel ringing at 50Hz (https://forum.e3d-online.com/threads/accelerometer-and-resonance-measurements-of-the-motion-system.3445/)

    ;tool offsets
    G10 P0 X-9 Y39 Z-5.6 ; T0 seems to be .1ish mm taller than T1
    G10 P1 X-9 Y39 Z-5.6 ; T1
    G10 P2 X-9 Y39 Z-14.5
    G10 P3 X23 Y41 Z-6.3 ; T3 Hemera

    ;deselect tools
    T-1

    ;M572 D0 S0.5 ; pressure advance T0
    ;M572 D1 S0.5 ; pressure advance T1
    ;M572 D2 S0.5 ; pressure advance T2
    ;M572 D3 S0.0315 ; pressure advance T3

    ; Pid Tuning
    ; M307 H0 R1.475 C373.5 D2.60 S1.00 ; Disabled as causes issues with heating up from very cold
    M307 H1 R2.602 C169.9 D6.11 S1.00 V24.2
    M307 H2 R2.668 C185.0 D5.80 S1.00 V24.2
    M307 H3 R2.072 C248.8 D6.16 S1.00 V24.2
    M307 H4 R2.769 C203.5 D5.69 S1.00 V24.3

    ;M501; load config-override.g



  • @iPeel said in Very slow XY movement when Pressure Advance is enabled:

    M566 X400 Y400 Z8 C2 E2:2:2:2 ; Set maximum instantaneous speed changes (mm/min)

    these are too low

    Z should be at least 60 and E should be somewhere in the region of at least 120. I use 300 on mine

    Bear in mind that setting is in mm/min. E would have a speed change of 0.033mm/s



  • @jay_s_uk Thanks, that's definitely had an impact, serves me right from ripping and splicing random config from the Internet.

    The print with any kind of M572 slows down the movement dramatically though and cranking up M566 causes missed steps, so I will try experimenting with lower microstepping or give pressure advance a miss.

    Cheers,

    Neil.



  • @iPeel said in Very slow XY movement when Pressure Advance is enabled:

    @jay_s_uk Thanks, that's definitely had an impact, serves me right from ripping and splicing random config from the Internet.

    The print with any kind of M572 slows down the movement dramatically though and cranking up M566 causes missed steps, so I will try experimenting with lower microstepping or give pressure advance a miss.

    Cheers,

    Neil.

    Cranking up extruder jerk won't cause any missed steps because about the only time extruder jerk comes into play is when it interacts with pressure advance. Or when you have a combined XYE move and the extruder jerk is so low that the carriage speed has to be slowed right down to keep X and Y in sync with E. So you can safely set extruder jerk to a silly high number so that it doesn't impact on print move speed (for that reason, I have mine set to 3600).

    Note that when pressure advance is active, the extruder will slow right down at the end of a move and can even run backwards. It can look alarming and might be misinterpreted as missing steps.



  • @deckingman It was definitely missing steps for me, but that's because I think I'm at an extreme ( 800mm bowden and stupidly elected to test on a volcano 0.8mm nozzle on 1.75mm filament and 0.4mm layer height ).

    When I changed to a more reasonable tool with 0.4mm nozzle / 0.2mm layer height things calmed down a little but I still need relatively sane jerk settings of 300mm/min with PA set to 0.5. It still sounds like a demented budgie and slows the layer time by at least a third but at least it doesn't sound like the extruder is being tortured like on the volcano. On the DD Hemera tool I have PA is obviously much lower and performs great.

    The PA configs are remarked out in the E3D stock Duet configs and I wonder if this is because at these extremes the noises and speeds don't give a great first impression.

    I now have a Superslicer config for the printer that only enables PA for certain extrusion roles which gives a much more reasonable balance between performance and print quality.

    Thanks,

    Neil.



  • @iPeel Yes, that length Bowden tube will always cause issues. I'm still surprised that you needed much, if any, pressure compensation with 0.8mm nozzle.

    How do you know you get missed missed steps with high extruder jerk? Especially when using an 0.8mm nozzle. Have you run M122 and if so, what was the result? I'm somewhat mystified because as I said before, extruder jerk never gets applied unless it is silly low.


Log in to reply