Unwanted filament unload

Hi. I have an ender 5pro and sometimes it will unload all the filament in the tube before it starts printing. I have tried different SYL file and still unloads the filament. What causes this and how do I fix it?

so the filament is running backward out of the printer when a print starts? Can you post the Gcode somewhere so we can see what commands are at the beginning of the file?

I don’t know if it’s possible for one of these motors to spontaneously run backward but someone can chime in if it can. it seems like something the printer is being instructed to do

I am quite new to this so am not sure how to find and post gcode but I loaded the file on my Eryone ER20 and it is printing ok. This happened once or twice before but I don’t know what I did to get around it. And it only happens to my Ender 5 pro. Weird or what?

ok… well the slicer program makes a file that contains specific instructions for your 3d printer to print the part., every movement, all the temperature settings speeds and directions for every layer are in that file and are generally specific to the printer you sliced it for. Where do you get the STL files you are giving to the printer?

Happy 3D Birthday to me! Yesterday marked the 1 year anniversary of my first printer shipping. It was also an Ender 5 Pro, so let me throw my 2 cents in.

First some clarification…

An STL is a STereo Lithography file. Lithography is a method of printing (originally 2D) by using using a mask that would only allow ink through a section of it onto a piece of paper below. Change the mask, use another colour and repeat and you gradually build up a colour picture. For a long time, this was the standard for printing posters, t-shirts, etc.

STereo Lithography builds a 3D object by applying the ink (filament) in layers - only in certain desired places - to build up a physical model. Same concept, more modern tech.

However - and someone can please correct me on this if I’m wrong - an STL file is a bit of a misnomer. I believe they are actually a mesh of 3D points that defines what the object looks like rather than a layer-by-layer definition of what gets printed and what doesn’t.

The layer-by-layer description of what gets printed is actually contained in the GCODE file.

When someone asks you to post the instructions you’re using, it’s actually the GCODE they want and even then, it’s not usually helpful to post the entire GCODE file since they’re usually huge and highly repetitive.

Before I go on, I should point out that, since you said it only happens sometimes, I’m assuming it works correctly at other times and is therefor not a matter of plugging the stepper motor cable in backwards (which you shouldn’t be able to do anyway, but which would have this effect for everything you print). Moving on…

The GCODE file can be considered to be in two main parts: the header and the body.

The header tells the machine how it should be set up to print and contains such goodies as:

  • temperature of the bed
  • temperature of the hot-end
  • maximum allowable speed of movement along each axis
  • maximum acceleration rate
  • which direction is positive
  • and on and on and on

Those are the settings people are generally interested in looking at.

The body of the GCODE file starts from a line usually called “;LAYER 0”. After that, it’s all repetitive movement instructions for every singe movement the printhead, bed and filament make.

The nice thing is that GCODE files are just text files and can be viewed with any text viewer. You can even drag and drop it into a web page tab and copy portions from there into a comment window like this one on another tab. They’re super simple to work with.

So you may wonder why there are STL files and GCODE files? STL’s as I said, describe what the model LOOKS like whereas GCODE describes how it SHOULD be printed. So what’s the difference?

The difference, frankly, is that not all printers are equal. Some printers work faster than others and so need different acceleration rates. Other printers have more than one print head and you need to specify which one(s) you’re printing with. The STL is the same in either case, but the GCODE needs to specify settings that match what the printer is —>>> CAPABLE <<<— of.

Did I emphasize that enough? The hint here is that you never use the GCODE generated for one model printer on another model printer otherwise you risk getting exactly what you’re experiencing.

So now a little detective work.

I have an Ender 5 Pro, but not your Eryone ER20, but I’ll take an educated guess:

Stepper motors work by pulsing (usually) 4 wires in a carefully timed sequence. As long as the timing is correct, the motor will run smoothly. You reverse the motor by pulsing it in the reverse sequence. So, if manufacturer X wires their stepper motors in sequence A their motor will rotate forward. That’s OK because that sequence of pulses on that printer will produce a predictable forward movement. And if Manufacturer Y wires their stepper motors backward, that’s also OK - it just means their motors will have to be pulsed in sequence B (the reverse of sequence A) to get a forward direction.

The problem comes when you take GCODE for printer X and put it on printer Y. Printer Y’s motor(s) run backward from what printer X’s do. That’s easy for the slicer to fix when producing the GCODE - it just changes the definition of which direction is “forward” in the GCODE header.

I’m betting you’re just copying the GCODE from one printer to the other.

Put the STL file for the model you are testing in a slicer. Tell the slicer you are using an Ender 5Pro and re-slice it to produce a new GCODE file.

I believe you said you had the STL file. That’s good. You can re-slice it with the correct printer specified to get the correct settings, but what if you only have the GCODE someone gave you or you can’t fine the original STL. It’s never a good idea to run GCODE meant for another printer, but if you were desperate, you could add a line in the header that contains something like M92 E-300, or whatever number is appropriate, just note that negative numbers are accepted and will cause the extruder to run in the other direction. This is only to show that it can be done if you’re desperate.

1 Like

Not that it matters and having spent a few years doing lithography (offset) I will chime in on a small correction. litho means Stone. graphy writing. Stone writing.

There is no mask but a something that is oily applied to a stone, metal, paper plate or tablet. It is then wet with what and then wet with ink. The ink sticks to the oil but not to the wet areas. Oil and water not mixing. It is a really old process and is still used for almost all reproductions. The modern printing press still uses offset lithography same principal faster and a few more steps, but the basic principal is the same.

Lego you were describing silk screening where a screen is coated with a usually photo sensitive emulsion that washed away and ink is pressed through the open areas. Still used a lot but dye sublimation is also very common.

Stereo stone writting is even a sillier.

It really has nothing to do with the conversation just a side show.

Your right, I was thinking of silk screening.

1 Like

Perfectly described as well. LOL.

Is it possible that the printer thinks you are changing filaments? That will cause an unload…

Boy you guys write with stone. Man I have enough trouble just using a pen.

1 Like

some of us cling to the old ways …

1 Like