SOLVED firmware retraction doubling



  • So I've set up firmware retraction with M207 S1.0 R0.1 F1000 Z0.2. so I should get 1mm of retraction and 1.1mm of un retraction...

    When I manually enter G10 / G11 commands, this is exactly what I get, but when these codes are in a gCode file, I get 2mm of retract and unretract... EVERY TIME... Anythoughts of what can bet happening??



  • In the gcode there only should be the G10 and No lenght. Have you ensbled Firmware retraction in the slicer?



  • Yes, Firmware retraction is enabled. Slicer is prusaSlicer 2.3

    A sample from the GCode file looks like this:

    G10 ; retract
    G1 X122.454 Y105.324
    G11 ; unretract



  • Is pressure advance enabled?
    it can cause retractions if set high enough.

    Is firmware retraction enabled in the slicer?
    Is reprap flavour selected?

    If yes to both post the first 100 lines of so of a sliced file.

    slicer.png


  • Moderator

    How are you verifying that you're getting 2mm?



  • @Phaedrux said in firmware retraction doubling:

    How are you verifying that you're getting 2mm?

    On the DWC I can see the Drive amounts reducing by 2mm and then going back up 2mm on unretract.
    Note: this is on a mixing head so I have 4 extruder drives. I'm noticing this on the drives that are not active in the current layer/object.



  • @OwenD said in firmware retraction doubling:

    Is pressure advance enabled?
    it can cause retractions if set high enough.

    Is firmware retraction enabled in the slicer?
    Is reprap flavour selected?

    If yes to both post the first 100 lines of so of a sliced file.

    slicer.png

    This is on a mixing nozzle with 4 drives (Crane Quad)

    Yes pressure advance is enabled:
    M572 D0:1:2:3 S0.22:0.22:0.22:0.22

    firmware retraction is enabled in the slicer

    But... I did not have RepRapFirmware as the G-Code flavor. could that be the cause??



  • @OwenD

    I did seem to be getting correct gCode:

    ; Filament gcode
    G1 Z0.280 F7800.000
    ;LAYER_CHANGE
    ;Z:0.28
    ;HEIGHT:0.28
    ; If this isn't the first layer, update the temperature for all tools to the correct temperature

    G1 Z0.280 F7800.000
    G10 ; retract
    G1 X222.625 Y140.000
    G11 ; unretract
    ;HEIGHT:0.280000
    ;TYPE:Wipe tower
    ;WIDTH:0.437500
    ;-------------------------------------
    ; CP WIPE TOWER FIRST LAYER BRIM START
    G1 X222.625 Y151.113 E0.7323 F2400
    G1 X220.377 Y151.490 F7000
    G1 Y139.623 E0.5735 F2100
    G1 X159.623 E2.9362
    G1 Y151.490 E0.5735
    G1 X220.377 E2.9362
    G1 X220.755 Y151.867 F7000
    G1 Y139.245 E0.6100 F2100
    G1 X159.245 E2.9726
    G1 Y151.867 E0.6100
    G1 X220.755 E2.9726
    G1 X221.132 Y152.245 F7000
    G1 Y138.868 E0.6465 F2100
    G1 X158.868 E3.0091
    G1 Y152.245 E0.6465
    G1 X221.132 E3.0091
    G1 X221.510 Y152.622 F7000
    G1 Y138.490 E0.6830 F2100
    G1 X158.490 E3.0456
    G1 Y152.622 E0.6830
    G1 X221.510 E3.0456
    ; CP WIPE TOWER FIRST LAYER BRIM END
    ;-----------------------------------

    G10 ; retract
    G1 X224.185 Y153.297 F7800.000
    G11 ; unretract
    ;TYPE:Skirt
    ;WIDTH:0.392
    ;HEIGHT:0.28
    G1 F1500.000
    G1 X223.860 Y154.015 E0.03045
    G1 X223.405 Y154.579 E0.02800
    G1 X222.828 Y155.017 E0.02800
    G1 X222.163 Y155.304 E0.02800
    G1 X221.448 Y155.422 E0.02800
    G1 X119.741 Y159.647 E3.93313
    G1 X107.567 Y159.496 E0.47043
    G1 X106.811 Y159.365 E0.02964
    G1 X106.114 Y159.045 E0.02964
    G1 X105.314 Y158.314 E0.04187
    G1 X104.82



  • @OwenD

    Here's the first lines of the gCode file:
    I've set up 4 tools, one for each primary color.

    ; generated by PrusaSlicer 2.3.0+ on 2021-02-09 at 00:01:31 UTC

    ;

    ; external perimeters extrusion width = 0.39mm
    ; perimeters extrusion width = 0.39mm
    ; infill extrusion width = 0.39mm
    ; solid infill extrusion width = 0.39mm
    ; top infill extrusion width = 0.35mm
    ; support material extrusion width = 0.31mm
    ; first layer extrusion width = 0.39mm

    ; external perimeters extrusion width = 0.39mm
    ; perimeters extrusion width = 0.39mm
    ; infill extrusion width = 0.39mm
    ; solid infill extrusion width = 0.39mm
    ; top infill extrusion width = 0.35mm
    ; support material extrusion width = 0.31mm
    ; first layer extrusion width = 0.39mm

    ; external perimeters extrusion width = 0.39mm
    ; perimeters extrusion width = 0.39mm
    ; infill extrusion width = 0.39mm
    ; solid infill extrusion width = 0.39mm
    ; top infill extrusion width = 0.35mm
    ; support material extrusion width = 0.31mm
    ; first layer extrusion width = 0.39mm

    ; external perimeters extrusion width = 0.39mm
    ; perimeters extrusion width = 0.39mm
    ; infill extrusion width = 0.39mm
    ; solid infill extrusion width = 0.39mm
    ; top infill extrusion width = 0.35mm
    ; support material extrusion width = 0.31mm
    ; first layer extrusion width = 0.39mm

    M107
    ;TYPE:Custom
    M190 S80 ; wait for first layer bed tempurature
    M104 S170 ; set extruder no-ooze temp
    G28 ; home all axes
    ;G29 ; Auto Bed Leveling...
    M104 S235 ; Heatup and Purge Nozzle
    G92 E0 ; reset extruder
    G1 X0 Y0 Z10.0 F5000 ; move to purge position

    T0
    ; bring it up to temperature
    G10 P0 R0 S235 ; Wait For Nozzle Heat
    M116

    ; machine standard purge - purges all nozzles on the left side of the platter.
    M98 PPrint_Start.g

    ; set up the tools for selected colors.. You can define as many as you want,
    ; just make sure you update their temperatures in the Before layer change G-Code and remove them in the End G-Code

    M563 P0 D0:1:2:3 H1 F1
    M563 P1 D0:1:2:3 H1 F1
    M563 P2 D0:1:2:3 H1 F1
    M563 P3 D0:1:2:3 H1 F1

    ;=============== Quad Fustion color support ===============
    ;Set the color for each of the defined "tools"
    M567 P0 E1.0:0.0:0.0:0.00 S"Cyan"
    M567 P1 E0.0:1.0:0.0:0.00 S"Magenta"
    M567 P2 E0.0:0.00:1.0:0.00 S"yellow"
    M567 P3 E0.0:0.0:0.0:1.0 S"White"
    ;==========================================================

    ;Init the tool temperatures for the first layer and wait.
    G10 P0 R0 S235
    G10 P1 R0 S235
    G10 P2 R0 S235
    G10 P3 R0 S235
    M116

    T0 ; Ensure Post Processing Gcode Generator Has something to convert if only one tool is used.
    G21 ; set units to millimeters
    G90 ; use absolute coordinates
    M83 ; use relative distances for extrusion
    T1



  • @Phaedrux
    on the DWC screen:

    from Idle:
    Pre G10 command
    alt text

    Post G10 Command

    alt text

    After sending G11 command
    alt text


  • Moderator

    If you send M207 during a print, what does it reply with?



  • So... This is interesting..

    I have no config-override.g file in my /sys directory but after I sent an M502 command, G10/G11 worked as expected.....

    Is this a hidden file?



  • @nanoplane said in firmware retraction doubling:

    So... This is interesting..

    I have no config-override.g file in my /sys directory but after I sent an M502 command, G10/G11 worked as expected.....

    Is this a hidden file?

    IIRC, M3D used to do very strange things with their configuration files. Basically they used to break each section into a separate macro and then call each of those macros from within the config.g file. Is that how yours is set up? If so, it's likely that the changes you make to config.g could be overridden by later macros. I might be best if you post you config.g file and the full code of any macros that are referenced in that file.



  • @deckingman

    it was for the 2.0 config, but for the 3.0 update I put everything in the one file. It loads with no errors, but I suspect maybe there was some override file hidden somewhere that had a different M207 command hidden in it??



  • So, it all seems to be working now... not quite sure what happened, but...

    Thanks everyone who looked at this and scratched their heads...

    --marcel



  • @nanoplane said in firmware retraction doubling:

    M98 PPrint_Start.g

    Should be quoted

    M98 P"Print_Start.g"



  • Thank you.

    One more question. does the M207 command need to be sent after the tools are all created?..

    I'm still getting the issue that the retract gets reset to 2mm whenever I start a new print from the "initial" state.

    my custom gCode for PrusaSlicer at start creates the per color tools and after they start being used M207 command returns 2mm for retract amount even though I'm setting it in the config file to 0.5mm


  • Moderator

    Please share your full config.g you slicer start gcode and any macros you call in it.
    Also the results of M122 and M98 P"config.g" please.



  • @Phaedrux
    config.g

    Starting gCode from Prusa Slicer:

    M190 S[first_layer_bed_temperature] ; wait for first layer bed temperature
    G28 ; home all axes
    ;G29 ; Auto Bed Leveling...
    M104 S[first_layer_temperature] ; Heatup and Purge Nozzle
    G92 E0 ; reset extruder
    G1 X0 Y0 Z10.0 F5000 ; move to purge position

    T0
    ; bring it up to temperature
    G10 P0 R0 S[first_layer_temperature] ; Wait For Nozzle Heat
    M116

    ; machine standard purge - purges all nozzles on the left side of the platter.
    M98 P"Print_Start.g"

    ; set up the tools for selected colors.. You can define as many as you want,
    ; just make sure you update their temperatures in the Before layer change G-Code and remove them in the End G-Code

    M563 P0 D0:1:2:3 H1 F1
    M563 P1 D0:1:2:3 H1 F1
    M563 P2 D0:1:2:3 H1 F1
    M563 P3 D0:1:2:3 H1 F1

    ;=============== Quad Fustion color support ===============
    ;Set the color for each of the defined "tools"
    M567 P0 E1.0:0.0:0.0:0.00 S"Cyan"
    M567 P1 E0.0:1.0:0.0:0.00 ; Magenta
    M567 P2 E0.0:0.00:1.0:0.00 ; yellow
    M567 P3 E0.0:0.0:0.0:1.0 ; White
    ;==========================================================

    ;Init the tool temperatures for the first layer and wait.
    G10 P0 R0 S[first_layer_temperature]
    G10 P1 R0 S[first_layer_temperature]
    G10 P2 R0 S[first_layer_temperature]
    G10 P3 R0 S[first_layer_temperature]
    M116

    T0 ; Ensure Post Processing Gcode Generator Has something to convert if only one tool is used.



  • @Phaedrux

    Also at the end of a print, custom gCode is:

    ; remove the extra tools so we restore back to standard
    M563 P3 D-1 H-1
    M563 P2 D-1 H-1
    M563 P1 D-1 H-1

    M104 S0 ; turn off temperature
    G28 X0 ; home X axis

    M140 S0

    M84 ; disable motors


  • Moderator

    What's in M98 PPrint_Start.g?




  • Moderator

    If you send M98 Pprint_start.g on it's own do you get any errors?
    If you send M567 during the print does it respond with the expected mixing ratio?

    Have you enclosed the macro name in quotes as OwenD suggested? ""



  • @Phaedrux said in firmware retraction doubling:

    If you send M98 Pprint_start.g on it's own do you get any errors?
    If you send M567 during the print does it respond with the expected mixing ratio?

    Have you enclosed the macro name in quotes as OwenD suggested? ""

    I get no errors
    Hmm sending M567 returns nothing... But it does mess up the mix ratio for the current print.. until the next tool changes.
    sending M567 P0 (P1 P2 P3) returns the correct mix ration for each of the "tools"

    The print_start.g on it's own doesn't work unless I've preheated the bed and the nozzle... but once that's done, print_startg works fine.

    Could it be because I'm redefining Tool 0 in my custom gCode forcing it to default the retraction settings??



  • Yep, that's it....

    Recreating or adding a new tool sets the retraction to a default value of 2mm..

    So I need to add an M207 S0.5 F1000 Z0.2 command to my custom gCode after creating all the tools...

    cool.


Log in to reply