Why would the extruder not finish the lines perfectly

Can someone tell me what Cura setting(s) controls how to make the extruder finish these lines. Thank you.

Can you supply more info…

Material type
Extrusion temp
Bed temp
Printing speed
Retraction amount

Also… Z axis may be too high … what is your Z-offset?
It may be over-extruding. Have you calibrated your E-steps?

first guess would be z-axis is too high. Further evidence of this can be seen by the fact that the individual lines are visible in the layer, see elsewhere where it is sticking to the bed? If the z-axis is correct, they should blend together quite seamlessly.

1 Like

My apologies for the delay our company has been dealing with alot in the new world climate.
Material Type - nGEN colorfabb
Extrusion Temp - 220
Bed Temp - 65
Printing Speed - 60mm/s
Retraction Amount - Image attached
Z-offset -1.200
E-steps 833.0
I have no clue how to calibrate my E-steps

Setting E-Steps

E-steps (extruder-steps) is the number of steps required to get the extruder to feed 1mm of cold filament.

The test is a fairly simple idea… you’ll feed 100mm of filament (with the extruder fully heated to print temp) and then test to see if it actually fed 100mm exactly … or if it fed too much or too little.

Make sure the idler-arm tension (that presses the filament against the hobbed gear) is adjusted correctly (medium tension).

Measure 100mm up from the point where the filament is feeding into the top of your extruder and put a mark on the filament (a silver sharpie works well on black). It’s a good idea to put a 2nd mark at 120mm (or 20mm above that first mark).

In Cura, go to the Monitor panel, connect to the printer, then tell it to heat the extruder to your normal printing temperature. E.g. if you print at 230… then that’s the temp you’ll want to use for testing.

In the “Manual Control” section of the Cura LulzBot Edition “Monitor” panel, click on “Console” … this opens a Terminal window to let you type direct commands to the printer.

If you have a dual extruder then select Toolhead 0 by entering the following G-code command


Reset the Extruder axis position to 0

G92 E0

Feed 100mm of filament at 75mm per minute (so this will take 1 minute 20 seconds to complete)

G1 F75 E100

Cool down your extruder (tell Cura to drop the temp to 0)

Now measure … If the 100mm dot is right at the entrance to the top of the extruder … perfect! You’re all set.

But if not, you’ll need to do a couple of adjustments and then re-test.

First… measure how many millimeters short you are (if the first mark didn’t enter the the print-head). If the first mark is inside the print-head (it fed more than 100mm) use the 2nd mark … to see how much it over-fed (e.g. if the 2nd mark is 15mm above the print-head then you know it over-extruded by 5mm).

Note that value (e.g. if it’s 96mm … or 103mm … we just need to know what it is). We’ll need this for a bit of math.

Look up the current E-Steps value. This command will tell the printer to display current settings.


A lot of info will be displayed. You are looking for a row that has the text M92 in it … and find the value. e.g. for you it will probably display 833 since that’s what you said you are using.

The formula is:

New-Value = ( Old-Value / Measured-Extrusion ) x 100

e.g. if your old value was 833 and the measured extrusion was 103 (I’m just making up a value to use as an example) then you’ve over-extruded. So the math is:

New-Value = ( 833 / 103 ) x 100

That math works out to 808.7 … we would round that up to 809

Almost done…

Enter the new E-Steps in the Console window:

M92 E____ (where ____ is the value you got after doing the math)

This has set the value to the printers memory … but in a way that it will NOT BE SAVED if you were to power off the printer. We need to save it.


This saves the current settings so that they will persist even after powering the printer off.

It is a good idea to re-run the test after making the change to make sure you are now getting the proper 100mm worth of filament to extrude using this new setting.

You may also want to save a note somewhere with this value … because if ever flash a new version of firmware to the printer, this value will be wiped out and you’ll need to restore it.

Z Offset

-1.20 is the factory default. I’d evaluate this. This relies on getting a quality bed-level at the start of the print. Make sure the nozzle is clean of debris.

I create my own part … a small disk perhaps 30mm diameter and make it just 1 layer thick (e.g. assuming you do a .25mm layer height then I’d make it .25mm tall.

Print the part (which will go pretty fast since it’s not very big.

Evaluate the quality. If you see gaps between the lines then you are either under-extruding OR the Z-offset is too hight. But as you just did an E-steps calibration then under-extruding shouldn’t be the problem.

If you see gaps, then nudge the Z-offset to a lower value (a more negative value … e.g. maybe you go to -1.25 and re-test).

If you don’t see gaps (so you don’t think the offset is too high) there is a possibility that it is too low.

If the nozzle is too low then extrusion might be blocked (if the nozzle is right up against the bed). But there’s also a possibility that your 0.5mm wide extruder nozzle (which should be creating .5mm wide rows) is being over-flattened. This will cause the layers to appear to ripple … or you might even feel little “fins” or “ridges” of material between the layers (where the nozzle is plowing up the adjacent layer).

What you want is a disk that is fairly smooth, no gaps, but no ripples. You don’t want ridges between the row lines.

If it is too low … adjust upward (adjust to a less-negative value). E.g. if you were at -1.20 then maybe try moving up to -1.15 and test again.

Be aware that SOME materials like to be “squished” onto the bed. Other materials want to be “gently laid” onto the bed. Once I know what my ideal nozzle offset needs to be, I sometimes deliberately raise it slightly depending on the material.


You can find ColorFabb’s recommendations here: How to print with nGen

On my TAZ Workhorse … the nGen profile is set to print at 240 and a print speed of 35mm/sec.

Your bed is a bit cool… they’d prefer you be at 85 … but a minimum of 75.

How to find the ideal printing temperature

Your extrusion temp is at the low end of their 220-240 range. I test the various temperatures by creating a “temperature tower” … this is a tower divided into sections. Each section is printed at a different temperature. When the job is complete (or not worth continuing if you notice the quality is degrading with each new section) you compare the sections to determine which one had the best quality. You might also try deliberately breaking it to determine which section had the best strength. You can find many of these … visit thangs.com and search for “temperature tower”. You’ll have to use Cura’s Post-Processing Plug-in to set the temperature changes. To do this:

In Cura LulzBot Edition, after you load the part onto the build plate, select the correct filament type and set parameters for the first section of the model as you normally would to print any part.

On the main menubar, navigate to

Extensions -> Post Processing -> Modify G-code

A post-processing panel will appear. Click

Add a script -> Tweak at Z or Layer

Several parameters will appear … set the the trigger to either Height OR Layer (your choice)

If you set it to Height then measure the height of each section of your temperature tower model (e.g. if a new section starts every 10mm then set it to 10). Alternatively you can inspect the layer view in Cura to determine which layer numbers start a new section and enter the correct number of layers.

Check the box for “Tweak Extruder Temp” (if you run a dual-extruder head then you’ll see two of these… one for each extruder #1 and #2).

Set the new temp for the next section.

That just created ONE temperature change. Repeat the process starting with “Add A script” and add yet another “Tweak at Z or Layer” and create the next temperature change, and so on … until you’ve got the entire range of temperatures covered for your model.

When you are finished, those “tweak at Z” changes will persist EVEN IF YOU CHANGE PARTS on the build plate. You can either manually delete them OR just quit and restart Cura to clear them.


Whenever you are having quality issues … it’s a good idea to slow down the print speed and see if that helps. I might drop to 35mm/sec and see how that works.

Your retraction distance setting looks fine. Direct-driver printers can get away with low retraction values (e.g. 1mm). The default profile has it set to 3mm … which may be a bit high. Most of my retraction settings tend to be in the 1mm to 2mm range. 3mm is usually not harmful … just unnecessary. If you change the retraction distance then also change the Minimum Extrusion Distance Window to the same value.

I get nervous when I see Maximum Retraction Count set to 90. Here’s how this works…

You’ve got Retraction Distance set to 1mm. So each time a retraction occurs, it will pull the cold filament back by 1mm. But when you run filament through the hobbed gear in the extruder, it puts some bite marks into the side. When you retract, it puts more bite marks into the side. If you retract and re-prime over and over again over the same 1mm of filament, it will really chew up that filament. It can chew it up too much and result in a jam.

You’ve also got something called the Minimum Extrusion Distance Window. It is ALSO set to 1mm.

Then you’ve got the Maximum Retraction Count (set to 90).

What these three values mean, when put together (Retraction Distance, Retraction Count, and Minimum Extrusion Distance Window) is this:

The print job is allowed to retract and re-prime (by 1mm each time) up to 90 times over the SAME filament … any retractions beyond 90 (90 is already well-beyond ludicrous) will be IGNORED … UNTIL the print job has extruded more than the Minimum Extrusion Distance Window (in your case 1mm) and THEN it may resume doing retractions again.

These values are designed to let you avoid chewing up filament. I typically set my max retractions to a smaller value … usually not higher than 5 and never higher than 10. If I had a print job that needed to do that many retractions … I’d rather have the stringing.