The Ender 3 is a great 3D printer. It is inexpensive and is a good starting printer (as well as a great reliable printer for more advanced users). It is easy to upgrade and there is a large community surrounding its use.

One thing that I see often is that people are having printing issues caused by under- or over-extrusion. Over-extrusion causes items to be bigger than intended (not good when you need pieces to fit together precisely). Under-extrusion can cause poor layer lines and even bad adhesion on layers.

In this post, I'll go over some techniques and products that I use to help me with my extrusion.

Parts used in this post

Replacing the stock Bowden tube

If you already have Capricorn tubing, you can skip below to the Tuning ESteps section.

The stock bowden tube that comes on the Ender 3 has a inner diameter that is a little too big. This allows the filament to move around slightly in the tube which causes stringing issues as well as other extrusion issues. Luckily, there is an easy fix.

Capricorn PTFE Bowden tubes are well known in the 3D printing community for their value and precision. They come highly recommended from many 3D printing experts. I cannot agree more. I have noticed a huge improvement in my 3D prints by using the Capricorn PTFE Bowden tube.

Since we're replacing the bowden tube, now is also a good time to replace the inferior bowden tube couplers on the Ender 3. These are known to slip and allow the bowden tube to pop out in the middle of a print, causing it to fail.

Remove the fan housing from your hotend. Heat your hotend and remove the filament from the printer.

Use an adjustable wrench to hold the heater block while you use a 6mm socket wrench to loosen the nozzle by 3/4 turns (I've found that using the wrench that came with the printer causes it to strip more easily. I use a socket from this set). This is in preparation for ensuring that the new tube is flush against the back of the nozzle.

Disconnect the stock bowden tube from the heatsink by pushing the tab in and then pushing the bowden tube in and then immediately pulling it out. It may take some effort as the tube is inserted all the way down to the back side of the nozzle. If you can't pull the tube out, you can unscrew the coupler from the heatsink using the wrench that came with the printer and pull it out that way. Be careful as the end of the tube will be hot.

Once you have the tube removed from the hotend, remove the coupler from the extruder.

Replace the couplers on the extruder and heatsink. Cut your Capricorn tubing to the correct length (I used half of the tube). Make sure it is a flush and straight cut. If one end is straighter than the other, use it in the hotend. Insert the new Capricorn bowden tube into each coupler. While the hotend is still hot, push the tube all the way down until it hits the back side of the nozzle. Once that is inserted, hold the heat block with an adjustable wrench while you use the 6mm socket wrench to tighten the nozzle. Be careful not to over-tighten as the nozzle is made of soft brass and will easily strip.

My printer came with two coupler clips that I inserted in the coupler to ensure that they do not pop out. If your printer did not come with any, you can print some out using this thing on Thingiverse.

Tuning ESteps

This one seems complicated, but it's actually quite easy. I have discovered a technique that only requires a simple 10 mm calibration cube and a spreadsheet.

First, grab the 10 mm extruder calibration cube from Thingiverse. Print it in Vase Mode (Spiralize outer contours in Cura). It takes about 3 minutes to print. Make sure your wall width is 0.40mm. Once this has been printed, use the calipers to measure the average wall width on all four sides of the box.

Once you have the average width, use this spreadsheet and plug in the values in the Yellow cells.

Example of the last time I used the E-Steps calibration spreadsheet

To get the current ESteps, connect your printer to your computer (or use OctoPrint's terminal) and use Pronterface (or other 3d Printer interface) and type in


To get your printer's current settings. Look for a line like the following:

M92 ...

The number after the E is your current ESteps. After plugging this value into the spreadsheet, grab the value in the Green cell for the gcode.

Paste that command into the 3D printer terminal and press enter. Once it has been entered, type


to save the settings to the printer.

Print the cube again. Measure the walls and get an average width. If it's close enough to 0.40mm, then you are done. If not, plug the value from the previous gcode cell into the Current ESteps cell and enter the new width measurement. This will give you a new gcode ESteps value.

Enter that into the terminal and repeat the process until you have a value as close to 0.40mm as you can get.

I find that I prefer this process to the one on the RepRap page. However, you may find that it works better for you if this technique does not.