Solved No extrusion in some cases
-
I was battling with a clogged nozzle on my delta, after a while I admitted defeat. Since I did not have a spare nozzle at had, I started mounting my E3D Super Volcano that I had laying around for the 1st time. After installation I started testing and encountered an issue that I cannot explain yet.
Extruding using the 'Extrusion Control' tab in DWC works as one would expect. I can print the following file successfully: SingleLine.gcode. However, this is the only file I have been able to print. All others do not actually extrude anything, retracts do work. (an example of such a file: 20mmCube.gcode)
I think hotend/extruder problems can be eliminated as the symptoms are the same without filament loaded => no skipping problems. I can extrude manually => no blockage etc.
Any ideas?
-
nozzle to close to the bed with an uneven bed?
-
@Veti said in No extrusion in some cases:
nozzle to close to the bed with an uneven bed?
I believe this not to be the issue for multiple reasons.
-
It should be the same for both files/models
-
The same happens whether filament is loaded or not. If there is no filament loaded, the nozzle could be touching the bed for that matter.
-
The behaviour is the same if a use Z babystepping to increase the distance to the bed.
-
-
@Nxt-1 This would explain it.
I would say that somewhere before you print, an M82 command gets sent - it may be in your config.g file or somewhere else. This will tell the firmware that extrusion commands are absolute rather than relative yet the slicer has used relative.
So in your 20mm cube all those E0.7 extrusion moves will move the filament to a position of 0.7mm from where it started rather than by 0.7mm from the last move. Which will effectively give zero extrusion aftyer the first 0.7mm. But the SingleLine gcode file has a great big E69 command in it so it will seem to like it's extruding because of that one 69mm move. But I would think that after it's done that, the filament would then get retracted back again because the next move is E0.01677. Is that what happens?
Try putting M83 in you slicer start gcode. This will "tell" the firmware that any following extruder moves are relative. I'm a bit surprised that KISSlicer Premium that are using doesn't do that automatically.
-
@Nxt-1 I think @deckingman is correct. I have had a look through your gcode files, and can't see anything obviously amiss, except the lack of an M83 command. I'd put it in config.g. The first line of my config.g is:
; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves
Retraction and unretract are working because you use hardware retract and unretract (G10 and G11), which is set by
M207 S1.50 R0 F3000 T1200 Z1.5 ; Set retract settings
in your gcode.Ian
-
@deckingman @droftarts I just started thinking in this avenue as well. In my config file there is a G21, G90 and M83, so I should be set there. Never the less, I tried entering some extra M83's in the console while printing. Alas, no difference.
I still believe you guys are thinking in the right direction tough. The extruder is making erratic moves, which would be explained by a relative/absolute mismatch.
-
Are you homing the axes before printing each time? There may be an M82 in there, though I'm not sure why. There's nothing in the gcode files that would cause this; with all the comments stripped out, this is the singleline gcode file:
G21 G90 M140 S55 ; Fast heat bed G10 P0 S205 ; Set Extruder Temperature T0 ; Select tool 0 M116 ; Wait for all temperatures to reach the targets M207 S1.50 R0 F3000 T1200 Z1.5 ; Set retract settings ; Run material specific G-code G1 X149.412 Y0 Z0.5 E0 F12000 G11 G1 X149.215 Y0 E0.04663 F870 G1 X148.626 Y0 E0.1399 G1 X147.643 Y0 E0.23317 G1 X146.268 Y0 E0.32643 G1 X144.5 Y0 E0.4197 G1 X142.339 Y0 E0.51296 G1 X-149.412 Y0 E69.25024 G1 X-149.341 Y0 E0.01677 G1 X-128.729 Y0 E4.89256 G1 X-106.313 Y0 E5.32048 G1 X-85.595 Y0 E4.91774 G1 X-59.291 Y0 E6.24362 G1 X-32.986 Y0 E6.24366 G1 X-6.682 Y0 E6.2436 G1 X19.622 Y0 E6.24361 G1 X44.725 Y0 E5.95838 G1 X77.322 Y0 E7.73734 G1 X117.557 Y0 E9.55009 G1 X133.537 Y0 E3.79321 G1 X142.356 Y0 E2.09331 G1 X144.512 Y0 E0.5117 G1 X146.276 Y0 E0.41865 G1 X147.648 Y0 E0.32563 G1 X148.628 Y0 E0.23259 G1 X149.216 Y0 E0.13955 G1 X149.412 Y0 E0.04653 G10 G1 X149.341 Y0 E0 F12000 G1 X149.341 Y0 Z1.1 E0 G10 P0 S0 ; Set Extruder Temperature G28 ; Home all axes M106 S0 ; Turn fan off G10 P0 S0 R0 ; Turn hot end off M140 S0 ; Turn bed off
G21 sets units to mm, G90 sets absolute positioning, though should exclude the extruder; see https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_G90_Set_to_Absolute_Positioning
Can you try adding M83 after the G90 and see if it works correctly?
Ian
-
@droftarts That extra M83 does solve the issue I was experiencing. Now my next questions are: where is the rogue M82 in my config ? And for @dc42 why does an M83 while printing is IP not seem to switch to relative mode.
Either way many thanks for the help!
-
@Nxt-1 Try my suggestion of putting M83 in the slicer start code. This will override any prior M82 command from any other source as it will be executed just before the print starts. If necessary edit your 20mmcube file and put M83 just before the first G1 move. If that works, then you can work backwards from there to isolate where the other M82 is coming from.
-
@deckingman said in No extrusion in some cases:
@Nxt-1 Try my suggestion of putting M83 in the slicer start code. This will override any prior M82 command from any other source as it will be executed just before the print starts. If necessary edit your 20mmcube file and put M83 just before the first G1 move. If that works, then you can work backwards from there to isolate where the other M82 is coming from.
Adding M83 in the slicer start code would result in the same as adding manually, like I did. This would be my fallback solution, but it does not treat the cause, just mitigates the effect. Therefore, I am going digging in the /sys files for a rogue M82 in the 1st place . I think you are right, going backwards to isolate the M82 might the best way to go about.
-
@Nxt-1 It could be that absolute extrusion is the default setting if no M83 is present. So it may not be that there is an M82 anywhere, merely that that there is not an M83 in config.g.
My point about putting M83 in the slicer start code as well, is that it would act as a fail safe in case at any time in the future something changed in another file and an M82 got added by accident.
IMO, if a slicer creates a file with relative extrusion commands, then it should also add an M83 at the very start. Conversely if the slicer is set to create absolute extrusion commands, then it should also add an M82 command. But that's clearly not how Kiss Slicer works.
-
@Nxt-1 Do you have an M555 command in your config.g? This sets the firmware compatibility. I'm not sure, but I think if it's set to Marlin (M555 P2), it sets absolute extrusion. We should have probably asked earlier, but posting your config.g would be a sensible thing to do, so we can see if there's anything out of the ordinary. I don't see the issue with adding M83 in config.g, or at the beginning of a print file.
Ian
-
@deckingman I don't know why this suddenly became an issue when changing to the Super Volcano. I did not find a missing M83 after a M82 in any of files (it was already in my config file). I agree with the logic that slicer output meant for relative moves, should specify a M83 command in it's output.
Thanks
-
@droftarts said in No extrusion in some cases:
I'm not sure, but I think if it's set to Marlin (M555 P2), it sets absolute extrusion.
I believe the marlin compatibility in this case refers to the responses given for acknowledgements over USB comms.
-
@droftarts Here are the contents off my config file`(I should have know, thou shall post config files ) :
There indeed is a M555 P2 in there, I don't know why or how it sneaked in there. Though, there is a M83 a couple of line below that.; Configuration file for Deltex ; ===================== GENERAL SETTINGS ===================== M111 S0 ; Debug off M550 PDeltex - Super Volcano ; Machine name and Netbios name M555 P2 ; Repetier Output M575 P1 B57600 S1 ; PanelDue Comm Setup M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xEA ; MAC Address M552 S1 ; Enable WiFi M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; ===================== MOVEMENT SETTINGS ==================== G21 ; Set Units to Millimeters G90 ; Set to Absolute Positioning M83 ; Set extruder to relative mode M584 X0 Y1 Z2 U4 E3 ; Assign drives to each motor M569 P0 S0 ; Drive 0 (X) goes backwards M569 P1 S0 ; Drive 1 (Y) goes backwards M569 P2 S0 ; Drive 2 (Z) goes backwards M569 P3 S0 ; Drive 3 (E) goes backwards M569 P4 S0 ; Drive 4 (4th) goes backwards M574 X2 Y2 Z2 U2 S1 ; Endstop configuration (all endstops at high end, active high) M665 L500.000:500.000:500.000:224.000 R235.965 H605.488 B200.0 X0.277 Y0.094 Z0.000 ; Diagonal rod length, delta radius, printable radius and homed height M669 K3 X0 Y0 ; Location of the 4th axis tower M666 X1.847 Y2.531 Z-4.378 A0.00 B0.00 ; Endstop adjustments M350 X16 Y16 Z16 E16 U16 I1 ; Set 16x microstepping with interpolation M92 X200 Y200 Z200 U80 E414 ; Set steps/mm M906 X2050 Y2050 Z2050 U900 E700 I60 ; Set motor currents (mA) and increase idle current to 60% M201 X2000 Y2000 Z2000 U2000 E5000 ; Accelerations (mm/s^2) M203 X10000 Y10000 Z10000 U10000 E20000 ; Maximum speeds (mm/min) M566 X400 Y400 Z400 U400 E2000 P1 ; Maximum instant speed changes (mm/min) ; ================ HEATING AND COOLING SETTINGS ============== ; Thermistors M305 S"Bed" P0 B3950 ; Bed temperature sensor parameters M305 S"Hotend" P1 B4725 C7.060000e-8 ; Hotend temperature sensor parameters M305 S"Water" P2 X2 T10000 B3950 ; Water temperature sensor parameters M570 S180 ; Configure heater fault detection, allow it 180 seconds M307 H0 A408.0 C897.0 D2.1 S1.00 V24.2 B0 ; Set bed heating process parameters and use PID at 10Hz M307 H1 A1383.6 C750.5 D6.0 S1.00 V24.0 B0 ; Set hotend heating process parameters and use PID M143 H0 S200 ; Set maximum bed temperature to 200 ; Fans M106 P0 I0 H-1 ; disable thermostatic mode for fan 0 (part cooling) M106 P1 S255 T45 H1 ; enable thermostatic mode for fan 1 (hotend) ; ====================== TOOL SETTINGS ======================= M563 P0 D0 H1 S"Hotend" ; Define hotend tool G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures M207 S0 R0 F3000 T1200 Z0 ; Set default retraction settings M563 P1 S"Water" H2 ; Set up an extra tool to display heater temperature ; =================== CALIBRATION SETTINGS =================== M558 P8 F1200 H3 R0.4 T10000 A10 S0.04 ; Z Probe type 8, input 0, invert no, dive height 3.0mm, probe speed 1200mm/min, travel speed 10000mm/min, recovery time 0.40 sec, heaters normal, max taps 5, max diff 0.04 G31 X0 Y0 Z-0.15 P100 ; Set the zprobe height and threshold (more negative values translate into a higher nozzle) M557 R200 P21 ; Define probing mesh grid M912 P0 S-12.35 ; Set temperature offset for MCU T0 ; Select hot end M501 ; Load settings from config-override.g ``
-
Although I believe @deckingman is right, and it only influences USB comms. (sauce)
-
@Nxt-1 Okay, so not M555! I suppose I should have also asked earlier... what firmware version and what Duet board are you running? M115 will show everything. Also, anything in config_override.g?
Ian
-
@Phaedrux said in No extrusion in some cases:
@droftarts said in No extrusion in some cases:
I'm not sure, but I think if it's set to Marlin (M555 P2), it sets absolute extrusion.
I believe the marlin compatibility in this case refers to the responses given for acknowledgements over USB comms.
Correct.
-
can you show the firmware type settings you have in Kiss
and also check and post the g-code pre-fix screen as well
Mine are posted above and if set correctly does insert a M83 in the start code.
Firmware type should be set to 5D - Relative E
HTH at least a little
-
@Dougal1957 My firmwaretype is set to 5D-Relative E in KISS, prefix was empty before. I now put a few commands in there:
G21 ; Set Units to Millimeters G90 ; Set to Absolute Positioning M83 ; Set extruder to relative mode
I do not see KISS putting an M83 in there by itself, which I would expect when set to relative E.