PEI Colorfabb XT - Ugly First Layer on Taz 6 - Help

Good day, can someone assist me in getting a really nice first layer so the bottom of my object is nice. I’m getting the rough lines. 2nd and subsequent layers look find besides a little warping on an egde. Any pointers. Using Colorfabb XT Black on PEI and the default profile in Lulz Bot.

LulzBot Taz 6
245 C Print Temp
234 C Initial Print Temp

70C Bed Temp

Curious … the lower left and upper right corners don’t look too bad. But it really falls apart in the center. The temps are in line with what ColorFabb recommends (235-250 and 70 bed).

As I zoom in … I thought those were the telltale signs of over-extrusion (ripples) … but closer inspection I think I’m seeing gaps between the filament (under extrusion or print-nozzle too high above bed.)

This makes me wonder if the bed is “flat” (not to be confused with “level”). Do you have a straight edge you can lay across the bed to check it for flatness?

Does this happen when you print any other filaments?

The bed doesn’t look like the brick-red colored LulzBot bed – have you swapped it out for something new?

One other thing… metal beds can warp as they are heated … but if you give them enough time (e.g. wait 3-5 minutes after they reach operating temperature but before starting the print) to let them thermally equalize it can be helpful.

On one of my own printers, I had an issue with the spacers (stainless steel bushings below the bed-leveling washers) where the spacers on two opposing corners were taller than the other two opposing corners. Earlier firmware only did linear bed leveling, but later firmware supports bi-linear leveling. This meant the printer had the notion that my bed was warped (based on probing the washers) but couldn’t correctly compensate for it.

I used micrometers to measure the corner washers … I could have swapped the corners so that the two taller washers were on the same side of the bed (so that linear bed leveling would be able to compensate) – what I actually ended up doing was ordering a handful of bushings and finding four that were the most identical.

I don’t know if the bi-linear bed-leveling support was back-ported to the TAZ 6 firmware. But my guess is that if you are on then probably it was. You can grab the latest version of Cura Lulzbot Edition to get the latest firmware.

Save your filament profile info before you upgrade Cura … just in case the new Cura doesn’t have a profile for ColorFabb XT (mine doesn’t list one for my TAZ Workhorse).

Good day, yes I am using the new firmware and new version of Cura. Are you saying to put a leveler on the bed and see if it is balance or like a straight ruler from edge to edge to see if there is a warp. I thought I had PEI on the bed as I purchased it with this on the bed. Here is another image of layer 2

Ahh… it must have been the lighting. Now it looks like a TAZ 6 bed. In the first photo it appeared black – I thought maybe you replaced your bed with something else.

And yes… I was wanting to use a straight-edge diagonally to see if the bed surface is “flat” (not level) vs. if it had some surface curvature. I was trying to work out why the opposing corners look good … but the middle almost looks like the nozzle is too high when printing.

Hey Tim again thanks for your dedicated support. I’m reaching a new level of frustration with the Taz 6, also keep in mind I have 2 of these units that are new and cost me over $5000. If you notice here around the second layer the top os pretty scarred by the printhead. Will adjusting the Z offset pull the printer away from the bed a bit? I just want a clean first layer and I have no clue why i cant get it. Would you suggest I use another material to achieve this? The object I’m printing is no more than 9 cm square so it is only taking up a small portion of the printbed. I’ve tried printing it in all parts of the bed with the same results. Is there anything else I can do that will help troubleshoot the issue? We also use Upwork are you available or anyone you know that can charge to jump on the line with us and begin to troubleshoot the issue? We are super behind in production and out of a huge investment. Thank you. We choose Taz because its support was the best.

Also calibration will frequently fail when it gets to the 3rd probing screw


The easiest material to print is PLA. If you want to see if the issue is related to material then you could throw a spool of PLA on and see how that behaves. PLA is probably the easiest of all 3D filaments to work with (assuming it came from a decent vendor … there is some crazy cheap stuff out there that could be suspect.) There are additives in many of the things called “PLA” … so “PLA” might not truly be just PLA. Avoid “white” filament when testing things. White filaments add (usually) titanium dioxide … and I have noticed (as have several others) that it can sometimes be fussier than the other colors. I sometimes have to make special tweaks just because the color of the filament is different. And different colors can mean different amounts of color pigment is added. Just things to know.


The Z-offset usually has a negative value because if it had zero value then it would start printing at the height of the bed-leveling washers … which would be much too high.

When filament is extruded, a cross section of the filament would be round. The nozzle is low enough on the first layer to slightly squish the filament onto the bed. But you can test your layer thickness.

Test & Calibrate E-steps

But before you do that … you want to make sure the extruder is running filament through at the correct rate. In other words… the z-offset could be perfect … but if the filament is under-extruding you could be misled into believing it is wrong. So we need to verify the rate of extrusion before going on to other steps.

The idea here is fairly simple. You are going to tell the printer to extrude 100mm worth of cold filament length … and then you will measure the amount of cold filament length that actually extruded … to see how closely it compares to the requested distance.

This is fairly easy to do. But you’ll need that ruler (machinist scale) and something to put two marks on your filament. With black (or dark filaments) I use a silver-colored Sharpie marker (with a fine point).

This process is summarized on this page: on “Step 4 Check Extruder E-Steps”.

But it is described in greater detail on this page:

  1. Put the end of the scale on the top of the print-head at the point where the filament feeds into the head. Measure up 100mm on the filament and put a dot on the side of the filament. Measure up an extra 20mm (so 120mm in all) and put a 2nd dot on the side of the filament.

We’re going to need a way to send g-code commands directly to the printer. If you normally use the SD cards to print … you’ll need to connect your computer directly to the printer’s USB port and use Cura LulzBot Edition for this next step. Make sure that’s ready before going any farther.

  1. In Cura LE, the top of the Cura window (just right of the Cura logo in the upper-left corner) you’ll see that you can be on either the “Prepare” view or the “Monitor” view. Normally you use the “Prepare” view, but for this we need to go to the “Monitor” view – so click that.

  2. Over to the right, you’ll see some controls… click “Connect” to make sure Cura connects to the printer. You should now see the graph displaying things like your nozzle temperature.

  3. Click the “Console” button to open the console view. This window allows you to send G-code commands directly to the printer.

  4. Verify that you’ve got a normal amount of tension on the tension wheel that presses the filament against the teeth of the hobbed gear. Not too tight … not too lose. Basically you want it tight enough to have a firm grip so the filament doesn’t slip … but it doesn’t need to be any tighter than that (and having it too tight will result in other problems such as chewing up filament when printing parts that require a lot of retractions).

  5. Pre-heat your hot-end to the correct printing temperature of your particular filament. E.g. if you print this filament at 245°C then you’ll need to pre-heat to that temperature. You can do this in Cura LE on the Monitor page by entering the hot-end temperature in the box and click “Pre-Heat”.

  6. With the filament marked and the nozzle pre-heated, it’s time to take the measurement. In the “Console” window, type:

G92 E0

This command (G92) resets the absolute position value of the extruder to the value you supply … in this case E0 means it will beset to the zero position.

Next type (and this is going to make the filament start moving … so make sure the hot-end is heated to the correct temp):

G1 F75 E100

This will make the printer start extruding filament and a feed-rate of 75mm per minute. It will continue to extrude until it has extruded 100mm (that’s the E100 value).

  1. Measure the results. If that first mark you put on the side of the filament (at the 100mm point) is exactly at the intake to the print-head … then everything is great. You can turn off the hot-end (set temp back to 0) and you’re done.

But if not… then we make some adjustments.

If it did not pull in enough filament then that first mark on the filament wont have made it quite to the intake. But if it pulled in too much filament, then the first mark is gone (it’s in the print-head) BUT … that 2nd mark is (hopefully) still visible. So we can just measure from the print-head to the 2nd mark. For example if you’ve got 15mm to the second mark then we know it over-extruded by 5mm (because if it were perfect you’d still see 20mm to the 2nd mark.)

  1. We need to know what the OLD e-steps value was. To find it, enter this command into the Console window:

IMPORTANT NOTE: On the LulzBot documented steps, in Step 9, it will tell you to use M501. This is a typo. M501 is the Marlin Firmware command to restore settings from EEPROM – not what we want. M503 is the command to report current settings – which is what we want. You can find all of the Marlin Firmware commands documented here: Gcode | Marlin Firmware

A lot of output will quickly scroll through the Console window … too fast to read. Just scroll up and you are looking for a row that reads “Steps per unit” and the following row will contain M92 in it.

M92 is the command that sets the steps per millimeter for each axis (X, Y, Z, and E … E=extruder movement).

According to LulzBot docs, the default value for the TAZ 6 factory print-head is 830.

Now for a bit of math.

New E-steps value = (old-value ÷ actual-distance) x 100

e.g. if the old value was 830 and the measured distance was 96mm then you’ll do:

(830 ÷ 96) x 100 = 864.58 … so you’d round that to 865.

If it was over-extruding … suppose it extruded 105mm then the same formula works:

(830 ÷ 105) x 100 = 790.47 – and you’d round down to 790.

Having your new E-steps, enter it into the printer.

M92 E___

and fill-in the blank with the correct answer for your measured result.

NOTE This does not SAVE the value. The printer is using this new value “right now” … but if you were to power the printer off and back on again … it would be back to the old value.

Now is a good-time to re-check your measurement. Mark the filament at 100mm and 120mm as before and repeat:

G92 E0
G1 F75 E100

Measure the result again … and this time we’re hoping to be within at 100mm. It is hard to mark the filament perfectly while you’re trying to hold filament and scale in one hand and a marker in the other.

Assuming you are happy with the results, it is time to save the results.


This command commits the current values to EEPROM so they become permanent (they survive powering the printer off and back on again).

Also, don’t forget to cool off the hot-end by setting the temperature back to zero.

Other tests

There are a couple of extra tools that I recommend for anyone doing 3D printing.

  1. Your printer probably came with a toolkit of allen keys and a machinists scale (the small metal ruler with both metric and imperial scales).

  2. I decent pair of calipers for measuring your prints, calibration parts, and even parts of the printer. A quality pair will zero accurately when you close it. Lower quality calipers will sometimes mis-read and when closed they don’t necessarily return to reading zero. These come in various lengths and cost more for longer lengths. The most common is the 6" size. This is the model I use:

  3. Also recommended is a decent digital multi-meter. It doesn’t have to be crazy expensive. Fluke is probably the biggest name in that industry and most of their meters are very expensive. But mostly what you need is something that can accurately measure Ohms Ω (resistance) … and occasionally voltage. For that … even the very inexpensive Fluke 101 ($45 USD) will do the job.

With these … I print a first layer and stop the job so I can test whether the actual height of the first layer matches the requested height that you told Cura to print.

E.g. if you’re printing your first layer at … say .35mm (or maybe .25) … you can stop the job, pull the filament, and measure it. Is it really the requested height? Measure it in MANY places and do it many times because each measurement is going to vary (that’s normal)… you’re trying to figure out if it’s generally close to what you’ve entered. If it is too hight or too low then you can adjust the Z-offset accordingly.

You can be more confident in the results of this measurement since you’ve calibrated E-steps. So if the layer height is wrong, you know it isn’t because the filament was under-extruding or over-extruding (you wouldn’t know that without having check the E-steps).

Bed Leveling Probe

As for bed-level probe failing. Make sure the nozzle tip is clean of any filament. You can use a soft brass wire-brush or one of those red ScotchBrite pads to wipe the nozzle. I find that once the nozzle temp is close to 180°C as the printer heats up, the tweezer will pull off any filament (it will be melted enough) … but make SURE the nozzle is clean.

Also… make sure each bed washer is both clean and snug. It may be a good idea to loosen ad re-snug each washer. You need good conductivity from the washer through to the metal bed. And this is where the multi-meter comes in.

Turn the multi-meter on to the Ohms position (the “Ω” symbol). This measures resistance. If you touch one of the probes to, say, the left washer, and the other probe to the right washer, then in an ideal universe (nothing is ever ideal) it would measure zero ohms. But if you simply touch both probes together (metal on metal … leave the printer out of it for the moment) you’ll notice it doesn’t really register all the way to zero (but it will close). So do this again but this time touch any two bed-leveling washers and you want to see that it reads a value that is preferably less than 1Ω. Don’t stress if it is fractionally above 1. But if you’re reading several ohms of resistance than that means something isn’t making great contact. Remove the screw, washer, there’s a metal bushing under that, and below that you would see the bed and you’ll notice that when LulzBot powder coated those beds, they protected the spot where the bed-leveling washer attaches so it is bare metal. Make sure it is clean bare metal.

The bed leveling system is creating a loop… from the bed, the metal washers conduct through the bed, through the wire harness, and back to the logic board in the printer … and the OTHER direction goes up to the print-head, through the metal of the extruder and down to the hot-end where the metal nozzle finally touches that bed-leveling washer … thus closing the circuit and telling the logic board that it has “touched”. Anything along that entire path can be to blame.

Since the bed-level puts up a fuss on one particular washer – and seems to be consistent, that washer likely isn’t making great contact. They do need to be clean and fully snugged down … but don’t go crazy on torque (you aren’t the lug nuts that hold the wheels on your car … they don’t need to be crazy tight. Just snug enough to make sure we have good conductivity.)

I have had problems where the extruder nozzle wasn’t making great electrical conduct with the hot-end (When a nozzle is threaded into the hot-end, this is supposed to be done at high temperature. When I do this I throw an old rag-towel on the print-bed to protect the surface and I wear heat-resistance gloves … so just in case the nozzle falls it doesn’t damage me or the bed.) Anyway… the threads on the extruder nozzle need to “bottom out” agains the threads of the “heat brake”. The “heat brake” is the gap between the “cold” side of the extruder and the “hot” side of the extruder (the heat block). When bottomed-out (thread against thread) there should be no gap through which filament could leak, get into the threads, and ooze up and over the heat-block. If this happens, it means the filament can act as an insulator and prevent you from getting a good measurement when it does the bed leveling. But as your printer successful levels on the first two washers … this is probably not the problem (unless there is enough resistance for it to only just succeed on the first two washers). But you can test this by putting one probe on the tip of the extruder nozzle, and the other on the end of the red wire (called the “zero sense” wire) on the extruder. On my E3D Aerostruder, that wire is attached to one of the four screws that holds the heat-sink on the cold-end. But on your printer – which I think uses the E3D Hexagon hot-end … I think that wire is actually screwed to the heater block … below the heat-brake rather than above the heat-break as it is on my printer.

What else?

There can be other reasons for a bad first layer. I mentioned previously that the filament needs to be dry (“wet” filament will look bad). If the nozzle is too high then the filament wont get properly “squished” to the bed (and gently flattened so that a single bead of filament is wider than it is tall).

When I print, I mostly use a “skirt” (a couple of rows of filament). This helps get the filament flowing … but I also sometimes grab that skirt and measure the thickness to see if its roughly the same thickness all the way around the part (is it too high on one side and too thin on the other side?)

As the print-bed slides forward and back along the Y-axis … the glide-rails need to be perfectly parallel. Suppose they are a millimeter closer together at the back vs. the front (so nearly … but not quite parallel). That “pinching” at one end can result in the bed lifting and lowering as it glides from front to back … creating a level problem. I used my calipers to measure that … and there’s a process to fix it if you’re aren’t true.

There are some bushings under the bed-level washers that are all supposed to be 10.0mm tall … but there’s a tiny variance in these because they aren’t machined to a finished surface. On one of my printers I noticed a variance of .18mm between the tallest vs. shortest of these (so most of a .2mm layer height) but on my printer the “tall” bushings were in opposite corners and that means the bed probe would measure it as a curved surface. The older firmware only supported linear bed leveling and couldn’t deal with curves … this made getting a good first layer rather difficult. The new firmware supports bi-linear bed-leveling and should be able to deal with this. But a work-around is to make sure that “tall” bushings are on one side and “short” on the other (not in opposing corners) so that a simple linear bed-level would be adequate.


@TheVirtualTim Bravo! Excellent Post! :star_struck: :heart_eyes:

1 Like

First and foremost I want to thank you for spending your time on this you are a gentleman and a scholar. I do feel a bit under qualified to perform these tests without creating false positives. While I know a little about 3D printers I was really hoping to have machines that I did not have to tinker with all the time and spend so much time on that I do not get work done.

After reading through the forums it looks like the Taz 6 is the least favorite printer in the line, discouraging. Like an idiot I purchased what was the most expensive thinking I would get the best. At this stage I can only attempt to short sale my Taz 6’s on the local forums or sales pages. Any recommendations on printers with a full enclosure that don’t have so many issues?

I do have a final question, my printers worked perfectly before the firmware upgrade I still have one on the original firmware, am I able to use that with the new edition of Cura? I would like to try to run my printer without the new firmware with the updated probe leveling etc.

I am nowhere nere the level of expertise the above posts display, but I can tell you your first layer prints look very familiar to me (i have a Taz 6). I have had the best luck coordinating z-offset with initial layer ht. I would definately start with PLA, and use those as base values to adjust with other materials. With a .5mm nozzle I use the stock initial layer ht of .425, and currently use a z-offset of -1.25. Yours will no doubt be a bit different. Word on the street is, get your z offset set and then leave it alone.
For what it’s worth, I just ugraded firmware, and now have to reset my z offset every time i turn the machine on. Minde defaults back to -1.20 every time. What is your z offset set to? Initial layer?

Also, a picture of the bottom side of the print after you peel it up might provide info as well.

You do not have to upgrade the firmware to use the latest version of Cura LE.

If you want to test it with your 2nd printer, give it a shot.

You’ve got your fair share of great posts too…lulzbot should put you two on their staff.

Good day warped65 and thank you for chiming in here. The story in short is we purchased 2 Taz 6 units about 1 year ago for a project. We finished the project in a short time and the Taz 6’s with the old firmware etc. worked perfect no issues. We then put the Taz’s in storage packing them perfectly in their original boxes. We recently got another job that needed a Taz 6 so we removed one from storage. Thinking it would be better we updated the firmware and software, big mistake. We copied down the Offset, eeprom etc. before the update and the offset was -1.170. After the update we placed this data back in the printer. It produced what you are seeing but worst. We then started working with the setting, never considering the initial layer though. Now it is set to -1.070 and still not working properly. Also with the new leveling method this setting has a tendency to effect if the machine even passes the probe test which is another issue because you need to get that working well to then test if the offset is good. What this has led to is hours and hours of frustration for our team. Since we have two and we have a serious job to do I’m now considering as I mentioned above not doing any firmware changes to the other unit coming out of storage and trying to run it with the old settings that worked perfect before packing. I will try to get back on the broken machine as soon as possible and work with the setting you mentioned above. Any other pointers would be awesome.

Thanks for this info Tim I will try this today and report back.

If they have not done this already it would be a crime. I actually contacted Lulzbot directly about this initially and never heard back.

I decided to go on a quest today to try and get the cleanest initial layer i could changing just the z-offset. Throughout the day I kept lifting and lifting it, and finally ended up at -1.02. This was quite surprising to me to have to lift it this far, but the 1st layer kept improving. I would run another, but I’m kinda done for the day.

This is a 4"x4" test pad, Matterhackers PLA.

This was with a .5mm nozzle, using the Village Plastics PLA settings from Cura, as is. .425 initial layer ht. The bed temp was a bit over what matterhacker recommends (60C vs 55), but I didn’t catch that till the end .

I have the latest available version of Cura LE. Started with latest version of Marlin from Lulzbot (, but elsewhere in this forum there were reports of an issue with the bed leveling, so I went to Github and got, and used the custom upload feature, following instructions in the “Lulzbot Taz 6 Auto Leveling issues” thread .
If i were to start this again, I would start a print, and just keep moving the z offset up till the filament quit sticking to the bed, and then move it back down till it stuck; you can do this while it’s printing under the “tune” setting on the printer, and the value should stay.

Pic on the left is where I got to - these are views after lifting the print and flipping it over, so it’s what you would see after printing. Still some issues, but way improved; got rid of the smooshing near the edges and by the holes. Some of the issues you see on the left are due to having an old, dented surface, no setting would help that.

Anyway, Secretenergy, don’t know if this will help, but your questions prompted me to attempt to get my own house in order, and I really hope you find your issue. The fact that this is PLA rather than CFabb HT throws an unknown into the mix, specially given the temp differences, so not sure if anything here is worthwhile. I am a bit caught up in the whole z probe thing since it’s given me some grief over the years, and I claim no expertise, just telling you what I’ve learned. Or think i’ve learned.

Here is what the last attempt looked like from the top, right when the initial layer finished.

1 Like

Okay just reporting back here on my circumstances. So I have been able to prove that the new Cura and Lulzbot Firmware has disabled one Taz 6 from printing well. I would love to know if somehow I can role back its firmware. The other Taz 6 I have which we will call machine 2 has succeeded in printing a clean first layer with proper adhesion. The following issues remain, since I’m using the new Cura it seems there is a configuration that stop lines like circles from printing completely. The head sometimes does not finish the circle before it rushes of to the next part of the print. I have checked in the software layer by layer and it does complete in the simulation so its not the file. What is this? Picture included.

Lastly I’m concerned about how the developers could push updates that make machines that cost thousands of dollars that work perfect now have issues. The new leveling feature is horrible as many have commented about. I need to figure out how to restore machine 1 and fix this “unfinished circle issue”. Any advice on what the new Cura is doing that retracts the filament before it finishes the end of its line?