Slow motion hot end shows complex movement - why?



  • Hi All,

    I've been trying to diagnose and eliminate the small ridges you get near the end of a line on the top/bottom surface of a print (see pic below).

    2020-11-19_9-26-38.png

    I've seen the suggestion that it's related to pressure advance, but I've tried tuning this a few times, and my settings look great in some areas, but this artifact has never changed.

    I decided to take some slo motion footage of my hot end this morning to focus on an observation that I made whereby the hot end is moving back before it moves forward. (1 step back, 2 steps forward so to speak).

    Here's a video of the hotend: https://youtu.be/YFrgpzjwwSo

    Some portions of this motion are clearly deliberate, and some are due to the elasticity of the system (it's a very large CoreXY btw). There's a very small step where the nozzle seems to step forward (away from the camera), then bounce back toward the camera which pushes the little ridge up...
    EDIT: I was watching the machine after posting this, and the ridge gets pushed up as its decelerating toward the end of each line, not after it bounces (it does bounce, but that doesn't appear to be a problem). So this directly corresponds with the motion I'm observing at the motor (see below).

    Here's a video of what's happening at one of the motors (the one responsible for incrementing the line count): https://youtu.be/VTV4re0dDP4

    Here you can see that the motor steps backwards slightly before progressing forward.

    Now, it's not clear in my mind whether these two observations are linked (though I struggle to see how they're not). (Edit: Now it is). So, my questions are:

    • What causes the nozzle to bounce back like we see in the first video; OR
    • Is there a setting that compensates for this effect?
    • Why is the stepper motor moving backwards before it moves forward?
    • Is there any other explanation to what I'm observing?

    I thought it might have been DAA (M593), so I disabled that and it had no effect.

    Here's my Config.g incase that helps.

    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Mar 30 2020 11:14:18 GMT+1000 (Australian Eastern Standard Time)
    
    ; General preferences
    G90                                       ; send absolute coordinates...
    M83                                       ; ...but relative extruder moves
    M550 P"Point Zero CoreXY"                 ; set printer name
    
    M667 S1                                   ; select CoreXY mode
    
    ; Network
    M552 S1                                   ; enable network
    M586 P0 S1                                ; enable HTTP
    M586 P1 S0                                ; disable FTP
    M586 P2 S0                                ; disable Telnet
    
    ; Drives
    M569 P0 S1                                ; physical drive 0 goes backwards
    M569 P1 S1                                ; physical drive 1 goes forwards
    M569 P5 S1                                ; physical drive 5 goes backwards
    M569 P6 S1
    M569 P7 S1
    M569 P8 S1
    M569 P4 S0                                ; physical drive 3 goes backwards
    M569 P3 S1
    M584 X1 Y0 Z5:6:7:8 E4:3                  ; set drive mapping
    M671 X-60:-60:875:875 Y200:400:200:400 S5.0	  ; Set location of z leadscrews for independant bed levelling.
    M350 X16 Y16 Z16 E16:16 I1                   	; configure microstepping with interpolation 
    M92 X80.00 Y80.00 Z1600.00 E412.0:412.0         ; set steps per mm
    M566 X2000.00 Y2000.00 Z20.00 E5000.00:5000.0   ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z400.00 E5000:5000     ; set maximum speeds (mm/min)
    M201 X800.00 Y800.00 Z100.00 E2000.00:2000.00   ; set accelerations (mm/s^2)
    M204 P1200 T4000			  			  		; print and travel acceleration
    M906 X1600 Y1600 Z1200 E1200:1200 I30           ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                   ; Set idle timeout
    M593 F80				  				  ; Set Dynamic Acceleration Adjustment
    M572 D0 S0.025				  			  ; Set extruder pressure advance
    ;M915 P0:1 S5 F1 H200 R3			      ; Set up stall detection
    
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                          ; set axis minima
    M208 X860 Y800 Z750 S0                    ; set axis maxima
    
    ; Endstops
    M574 X1 Y1 S1
    M574 Z0 S0                          	  ; set active high endstops
    M591 D0 P5 C3 R5:120 E20.0 S1		  	  ; Configure Laser filament sensor for extruder drive 0.
    
    ; Z-Probe
    M307 H3 A-1 C-1 D-1                       ; disable heater on PWM channel for BLTouch
    M558 P9 H5 F120 T6000                     ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-21.6 Y9.4 Z1.842               ; set Z probe trigger value, offset and trigger height - refer to: https://duet3d.dozuki.com/Wiki/Gcode#Section_M564_Limit_axes
    M557 X40:800 Y40:760 S78                  ; define mesh grid - AS DESIGNED
    ;M557 X270:530 Y270:530 S52               ; define mesh grid - FOR TESTING ONLY
    M376 H10				  				  ; Set bed compensation taper (layers to fade out bed compensation)
    ;G29 S1
    
    ; Heaters
    M307 H0 B0 S1.00                          ; disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 R4700 S"Bed"        ; set thermistor + ADC parameters for heater 0
    ;M140 H0 S75 R50
    M143 H0 S120                              ; set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 R4700 S"Extruder 1" ; set thermistor + ADC parameters for heater 1
    M143 H1 S280                              ; set temperature limit for heater 1 to 280C
    M305 P2 T100000 B4267 R4700 S"Extruder 2" ; set thermistor + ADC parameters for heater 2
    M143 H2 S280                              ; set temperature limit for heater 1 to 280C
    
    M305 P101 S"Duet 2" T100000 B4725 R4700	  ; Duet 2 Drivers Over Temp Warning
    M305 P102 S"Duex 5" T100000 B4725 R4700	  ; Duex 5 Drivers Over Temp Warning
    
    ; Fans
    M106 P0 S0 I0 F25000 H1 T45               ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P1 S1 I0 F500 H-1                    ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    
    ; Tools
    M563 P0 D0 H1 F0                          ; define tool 0
    G10 P0 X0 Y0 Z0                           ; set tool 0 axis offsets
    M563 P1 D1 H2 F0                          ; define tool 1
    G10 P1 X-20 Y00 Z0                          ; set tool 1 axis offsets
    ;G10 P1 R190 S150
    ;G10 P0 R190 S150                              ; set initial tool 0 active and standby temperatures to 0C
    
    ; Custom settings are not defined
    
    
    

    Thanks in advance.


  • Moderator

    If you look at the gcode file in a path viewer does it represent that motion?

    What slicer? It seems like a deliberate move.



  • @Phaedrux: Using Cura 4.7.1. There's nothing obvious in the preview - hence why I figured it was a duet config thing. I know there's a few smarts in the Duet that I don't understand yet, so I was kind of expecting an easy solve.
    It's definitely a deliberate move... I haven't looked, but I expect that it occurs on (almost?) all moves. but it's most easily observable in this case due to repetition of moves.

    2020-11-19_10-27-08.png


  • Moderator

    easiest way would be to compare to a print sliced in a different slicer. Slic3r for expample.



  • Can you Upload the Test gcode?



  • @Phaedrux said in Slow motion hot end shows complex movement - why?:

    easiest way would be to compare to a print sliced in a different slicer. Slic3r for expample.

    I'll have to give this a go later...

    @PCR said in Slow motion hot end shows complex movement - why?:

    Can you Upload the Test gcode?

    Here's the file I'm currently printing - the same one the videos came from.
    CFFFP_base jack.gcode



  • Mystery solved.

    I started working with @Phaedrux's suggeestion of using Slic3r, and I noticed that they didn't have a "Lines" pattern for the top/bottom layers. So in order to keep the test fair, I used "zig zag" in Cura to keep the playing field level.

    During the test print, I immediately noticed that the stepper wasn't going backwards any more - So I came back to Cura and realised that "Travel" moves were turned off. You can see in the image below, small joining moves that extend horizontally. So, the motor is going backwards, but only because of the CoreXY geometry. A Cartesian printer wouldn't see the same effect.

    2020-11-19_18-37-07.png

    Here's the same print, sliced with the "Zig Zag" pattern instead.
    2020-11-19_18-37-43.png

    so after all that - did it help?
    Yes - but only slightly.

    The image below shows the Lines pattern on the left, and the Zig zag pattern on the right. I've used the lighting here to show that the lines pattern has slightly higher ridges, whereas the zig zag pattern is flatter. It's not a huge difference to the touch though, but its visually cleaner.
    For what it's worth, this was done with a 0.8mm nozzle too, so the effect would be lesser on a 0.4mm nozzle.

    20201119_190614.jpg


  • Moderator

    Seeing it from that angle it just looks like over extrusion. Or in this case, additional pressure ooze from the large nozzle. Perhaps have a go at tuning pressure advance.



  • @Phaedrux, I've run the pressure advance script (here) several times, and I've picked a value that gives the best results (0.025 in my case), but it hasn't helped. Based on the explanation here it seems that pressure advance is simply a multiplier applied to the acceleration - a higher number means more extrusion during acceleration/deceleration.
    In my observations however, As I increased the pressure advance value, I noticed that the mid-line regions (constant speed regions) became under extruded - for higher values the lines wouldn't touch. For low values I noticed that the ends became shorter - and for really low values not quite touching the perimeter lines.

    To be honest, I've only tested this "on the fly", and I haven't dedicated any real time to it, so it's possible that other effects are at play.

    The main intent of exploring this avenue was to explain my observation that the motor went backwards slightly - job done.


Log in to reply