Thanks for your reply. I will have a look at the SD card slot. And by pointing me in this direction, I realised that I now use a SD slot extension cable, which also may cause corrupt the data coming from the card.
I found out another thing, when I examined the gcode again.
I know for that the last time the extruder reversed, the Z position was at 28. At that height, I saw that I have a blank line in my code, and nowhere else (except for the header).
In the same block, the extruder value drops from 4158 to 0.04. Is this an error, or not?
Here is the piece of code:
;LAYER:278
;MESH:MotorConnector5.stl
G0 X117.716 Y134.017 Z28
;TYPE:WALL-INNER
G1 F2400 X117.535 Y133.977 E4155.08934
G1 X115.269 Y133.493 E4155.11703
G1 X115.269 Y75.746 E4155.83718
G1 X117.816 Y75.746 E4155.86645
G1 X117.716 Y133.831 E4156.59087
G1 X117.716 Y133.832 E4156.59088
G1 X117.816 Y134.021 E4156.59229
G0 F7200 X117.916 Y134.206
G1 F2400 X117.916 Y134.207 E4156.59231
G1 X118.038 Y134.294 E4156.59461
G1 X117.857 Y134.254 E4156.59603
G1 X115.069 Y133.734 E4156.63139
G1 X114.969 Y75.545 E4157.35828
G1 X118.016 Y75.445 E4157.39503
G1 X117.916 Y134.206 E4158.12787
G0 F7200 X118.106 Y134.566
;TYPE:WALL-OUTER
G1 F1200 X114.819 Y133.934 E0.04174
G1 X114.719 Y75.294 E0.77424
G1 X118.266 Y75.194 E0.81724
G1 X118.166 Y134.518 E1.55708
G1 X118.166 Y134.519 E1.55709
G1 X118.288 Y134.607 E1.55941
G1 X118.106 Y134.566 E1.56083
G0 F7200 X117.911 Y134.523
G0 X117.962 Y134.3
G0 X117.777 Y134.032
Okay so the problem is in the gcode, not the printer.
Something is quite wrong there.
Marlin runs on an arduino which is VERY limited and there are many efficiency improvements that can be a problem. One of them is that the extruder position is stored in a floating point number that only has so many significant digits so every few meters, cura resets the extruder back to zero, but should have also included a G92 command to let Marlin know. As in:
G92 E0
I can see the extruder was up to 4.1 meters so it makes sense that it would go back to zero around this point but the "G92 E0" is missing.
Do you have a plugin that removes all G92 commands maybe? Or did you do some kind of hand edit and remove all G92 commands?
Nope, it's all standard. What I've just done, was do a clean install of Cura 4.
Now I can see the G92 codes that are needed, are indeed there.
I also noticed that saving a file after slicing is done in seconds, where before it was minutes.
So I guess that somewhere in the upgrade from 3.6.0 to 4.0.0, something went wrong.
And despite having this in my start G-code:
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
M117 Printing...
The generated code was this:
G1 X0 Y0 Z15
;zero the extruded length
G1 F200 E3
;zero the extruded length again
G1 E0
M117 Printing...
And I didn't notice that G92 was missing.
I would say your answer pointed right to the problem, and re-installing solved it.
Thanks a lot!
But there needs to be *another* G92 when it goes from extruder at 4 meters back to zero meters - well into the file.
You had E4158 and then suddenly it goes back to E0.04
There needs to be another G92 E0 between those. Otherwise it will retract the 4.158 meters of filament just as you described.
Just to clarify myself; the showed code without G92, was before I re-installed Cura. I will test it again and show the results.
Recommended Posts
gr5 2,295
This has happened to me many times on various Marlin printers. The datapath to USB or SD card is not super reliable. Even though there is a checksum digit, occasionally the error and the checksum match. So what happens is a digit changes. For example:
G1 X1 Y1 E1234.234
gets randomly changed to
G1 X1 Y1 E1034.234
(this is the change of a single bit)
So it retracts 200mm (1234-1034). Then on the next move it moves forward the same amount but it's too late if the filament falls out of the feeder.
Also if you watch/listen carefully, occasionally the X, Y, or Z will move by 100mm or so and then move back for no apparent reason and this will usually leave a little noodle/string sticking out the side of the print.
I fixed this for my printer by cleaning out the SD card slot. There was a small hair in there (an eyelash I think). I took the PCB out and cleaned it very well with toothpicks, alcohol, qtips. But I think it was that single hair that was the problem.
I haven't fixed the other printers that do this. With one printer it was doing it about once every 3 minutes. With the other printer it's once per week so I just ignore it.
Link to post
Share on other sites