Retraction / reverse extrusion not working

Issue
  • Retraction not working (slicer driven *or* FEATURE_RETRACT / AUTORETRACT driven)
Environment:
  • Delta / Mini Kossel 
  • non-geared extruder (85 Steps / mm)
Affects
  • Official 0.92.8
  • Master / 1d627496ebdeb55f7c3b67c38908f77644ba5661
Description:

Printing a g-code with retraction generated by the slicer (tested with MatterSlicer, Cura) will not result in extruder retraction. The extrusion will just briefly stop. The slicers were verified to produce valid gcode by testing them on the same printer running the Marlin firmware which showed no similar issues. 

Some of the permutations tested were:
  • FEATURE_RETRACT = 1, AUTORETRACT_ENABLED = 1, CURA (embedded) with retraction disabled, Marlin g-code style
  • FEATURE_RETRACT = 1, AUTORETRACT_ENABLED = 0, CURA (embedded) with retraction enabled, Marlin g-code style
  • FEATURE_RETRACT = 1, AUTORETRACT_ENABLED = 0, CURA (embedded) with retraction enabled, Ultimaker g-code style
  • FEATURE_RETRACT = 0, AUTORETRACT_ENABLED = 0, MatterSlicer with retraction enabled
The autoretract feature was checked to be enabled or disabled via via "M209 S0" (off) and "M209 S1" (on). None of the Combinations made the extruder go backwards. 

Regardless of the mode, manual extrusion via Repetier-Host was only possible *once*. M83 had no effect on that. 
Config & EEPROM Settings

Comments

  • You should not use autoretract in firmware. This is only a last resort solution.

    For the others I'd need to see the generated gcode for a retraction that does not work. Maybe the motor just stalls from acceleration/start speed too high?
  • As you said, I was using the autoretract option as the last option. Too high acceleration speed is rather unlikely (using pretty much the defaults here), but I can do some more tests this evening and provide you with the gcode examples.
  • I did run another test today and made a short (~4min) video explaining the issue during a test-print: 

    Test-Files (stl, scad, g-code) and settings (matter-slicer settings) I have been using: https://drive.google.com/open?id=0B2xkcO8M801EYTlmWXM3MW00cWM

    Whenever retraction should occur, extrusion just stops and there is not a slightest indication of the extruder moving backwards. 

    There is also a related Issue on Github: https://github.com/repetier/Repetier-Firmware/issues/455 - a bit "short", but pretty much explains what I could observe on my end. 

    G-Code from the printed File looks OK to me :
    ; TYPE:WALL-OUTER
    (...)
    G1 X6.2 Y1.8 E878.05756
    (...)

    ; TYPE:FILL
    (...)
    G1 F2400 E872.20424
    G1 Z9.3
    G0 F6000 X6.2 Y9.8
    G0 X6.6 Y9.4
    Please let me know if I can do anything else to help. 

  • I can not see any retractions in your gcode. Look here for example

    G1 F1260 X0.657 Y-0.657 E675.04034
    6943G0 F6000 X-0.657 Y-0.657
    6944G1 F1260 X0.659 Y0.659 E675.10225
    6945G1 F2400 E669.10225
    6946G1 Z5.7
    6947G0 F6000 X-9.798 Y1.8
    6948G0 X-9.398 Y1.4
    6949; TYPE:WALL-INNER
    6950G1 Z5.5
    6951G1 F2400 E675.10225
    6952G1 F840 X-9.398 Y-1.398 E675.19527
    6953G1 X-6.598 Y-1.398 E675.2884
    6954G1 X-6.598 Y1.4 E675.38146

    You see the z hop where you expect retraction but E value only increases, no retraction present.

    Retraction is after all a simple extruder move. Just send it manually from host and you should see the extruder move back and forth.
  • edited March 2016
    Thank you for looking into it. I am a bit confused now. 

    I have grabbed the gcode, extracted the extruder-movements and dumped it into an Excel-Sheet. I see *a lot* of -6 retractions (highlighted in red, second column "current-extruder - previous extruder" < 0 ? red : white ):

    grep "G[01].*E.*" pins.gcode | sed "s/G1.* E\(.*\)/\1/gi" > extruder.txt

    https://docs.google.com/spreadsheets/d/1egM2PK1vnqPfE72RoHVYbVqsRcbNLSgf5ghl7edaUMA/edit?usp=sharing

    What am I missing?


  • Say me in which line it is and I have a look. I have not used any analysing and expected to see normal retracts everywhere you hop. I have to time to search big gcodes for some occurences. The one I found by hand were all without.
  • For example right after printing skirt there is  -6/+6 extrusion. 

    Offset: LINE 36
    G1 F1080 X-18.197 Y18.2 E9.23877
    G1 X-18.197 Y-18.197 E11.05457
    G1 X18.2 Y-18.197 E12.87043
    G1 X18.2 Y18.2 E14.68628
    G1 F2400 E8.68628
    G1 Z0.5
    G0 F6000 X-11.797 Y11.8
    G0 F6000 X-11.797 Y11.8
    ; TYPE:WALL-OUTER
    G1 Z0.3
    G1 F2400 E14.68628

    let me know if I should collect more examples. Just wondering what a "normal" retraction / extrusion should look like? I am a bit new to g-code, so it is totally possible I am missing some important details here. 
  • Line 7031, with Z-Hop:

    G1 F1260 X0.659 Y-7.825 E678.68797
    G1 F2400 E672.68797
    G1 Z5.7
    G0 F6000 X6.2 Y-6.198
    G0 X6.6 Y-6.598
    ; TYPE:WALL-INNER
    G1 Z5.5
    G1 F2400 E678.68797

  • There was a bug with retraction on AVR boards. It is now fixed in latest release.
  • edited March 2016
    Still having this problem on my ramps 1.4 board with FW 9.28..
    uploaded with arduino IDE 1.6.5.. will be trying with IDE 1.6.7 tommorow
  • Can confirm retraction works again when uploading the newest firmware with the Arduino 1.6.7 IDE!

    In the manual control I still can only press extrude once .. then I have to press retract before I can extrude again. does anyone know why? :)

    Thanks!!! 
Sign In or Register to comment.