How to find gaps in promises nero

Triffid Hunter's Calibration Guide / de

Thanks to the helping hands. The article has been translated so far. If you find any small mistakes, feel free to correct them.


  1. measuring stick
  2. Outside micrometer (if present)


  1. Number of full steps per revolution of the stepper motors. (1.8 ° step angle = 200 full steps, 0.9 ° step angle = 400 full steps, etc.)
  2. Knowledge of setting the microsteps of the stepper motor driver. A4988 mostly 16x microsteps, DRV8825 mostly 32x microsteps.
  3. Number of teeth on the pulleys. Very often 20 teeth on GT2 belts.
  4. Division of the toothed belt. GT2 = 2mm, T2.5 = 2.5mm, T5 = 5mm, HTD3m = 3mm
  5. Number of teeth of the extruder gear or gear ratio


  1. Find (and eliminate) backlash on all axes, otherwise you will not be able to produce accurate parts.
  2. Call up the online RepRap Calculator to determine the number of steps per mm, layer thickness and acceleration
The Configtool of the Teacup firmware has a steps / mm calculator built in, the values ​​of which can also be transferred to other firmware.

When using toothed belts, the number of steps per mm for the X and Y axes can be calculated very easily. Another calibration of the axes is usually. unnecessary. If you notice gross dimensional deviations in the print result, you should check the calculation and look for errors on the printer, if necessary.

The basic formula is:

<math>Schritte\ pro\ mm = \frac{Vollschritte\ pro\ Umdrehung * Anzahl\ Mikroschritte}{Zahnriementeilung * Zähnezahl}</math>

Some typical examples:

// 1.8 ° NEMA 17 with GT2 belt and 20Z belt pulley (200 * 16) / (2 * 20) = 80 // 1.8 ° NEMA 17 with T2.5 belt and 20Z belt pulley (200 * 16) / ( 2.5 * 20) = 64 // 1.8 ° NEMA 17 with HTD-3M and 20Z pulley (200 * 16) / (3 * 20) = 53,333

Most RepRap printers use threaded rods to drive the Z-axis. To calculate the travel distance, the angle of rotation and the thread pitch must be known.

The basic formula is:

(full steps per revolution * number of micro steps) / thread pitch = steps per mm

Some typical examples:

// 1.8 ° NEMA 17 with M5 control winch: (200 * 16) / 0.8 = 4000 // 1.8 ° NEMA 17 with M8 control winch: (200 * 16) / 1.25 = 2560 // 1.8 ° NEMA 17 with Tr8x1.5mm: (200 * 16) / 1.5 = 2133.3333 // 1.8 ° NEMA 17 with Tr10x2mm: (200 * 16) / 2 = 1600

On some printers, the Z-spindles are moved via a toothed belt drive. If the same pulleys are used on the motor and on the spindles, the calculation from above can be taken over unchanged. If different belt pulleys are installed on the motor and the spindles, the transmission ratio must be taken into account.

There are almost an infinite number of variants. In addition to the well-known "Wade" extruder, which drives a toothed screw (hobbed bolt) with a large reduction gear, there are also the directly driven extruder (direct drive) in which the feed screw is driven directly without reduction, whereby the motor is also an internal one Gear may own. Type MK7 or MK8 conveyor wheels are typical of the directly driven extruders.

In addition to the extruders that sit directly above the hotend, there are also the so-called Bowden extruders. The only difference is that the extruder is attached separately and the filament is conveyed to the hotend via a Bowden tube.


In a typical Wade extruder, the feed screw is made from an M8 screw. There the "effective diameter is about 7mm. With the Direct-Drive MK7 conveyor wheel the effective diameter is about 10.56mm. These are just a guide to get closer to a correct value. This value will be determined more precisely later.

The standard formula is:

E_steps_pro_mm = (motor_steps_per_revolution * micro_steps) * (large_gear_tooth_number / small_gear_tooth_number) / (effective_diameter_feed screw * pi)

Some typical examples:

// Classic calf with a 39:11 gear reduction (200 * 16) * (39/11) / (7 * 3.14159) = 515.91048 // Gregstruder with a 51:11 gear reduction (200 * 16) * (51/11) / (7 * 3.14159) = 674.65217 // Gregstruder with a 43:10 gear reduction (200 * 16) * (43/10) / (7 * 3.14159) = 625.70681 // MK7 Direct Drive with 2engineers 50: 1 planetary gear reduction (48 * 16) * (50/1) / (10.56 * 3.14159) = 1157.49147 // MK8 Direct Drive without reduction (200 * 16) * (1/1) / (7 * 3.14159) = 145.54055


Required tools: Vernier caliper or similar which can measure 100mm precisely.

  1. Remove the hotend from the extruder so you don't waste filament.
  2. Feed your filament in a little.
  3. Use the extruder entrance as a reference point and mark the filament 120mm from the point.
  4. Tell the printer to feed 100mm filament.
  5. Now measure between the extruder and the marking. If the distance is more than 20mm, too little is promoted, if the distance is less, too much is promoted.
  6. new_e_steps = old_e_steps * (100 / (120 - distance_between_extruder_and_marking))
  7. Enter the new value in your firmware and transfer it to your board. When Eeprom is activated, Sprinter / Marlin with M92 Ennn set the value temporarily. With Repetier this is possible with the M206 T3 P200 Xnnn.
  8. Repeat from step 3 until you are between 96-104mm and continue with the guide. The perfect match will come later.
  9. Once you have entered the values ​​in the EEPROM, you do not need to enter the new values ​​directly into the firmware and flash them again. These values ​​will be determined exactly later. Why? The pressure in the hotend still changes the amount that is promoted. If necessary, you also have to increase the contact pressure on the extruder, which changes the effective diameter of the feed wheel.
  10. Now mount your hotend again.

At Z = 0 you should be able to move a single piece of paper between the nozzle of the cold hotend and the print bed in such a way that you feel a resistance when you move the paper. But it shouldn't unfold when you slide the paper under the nozzle. This is a simple, quick and effective test for the alignment of the print bed (you should do this on 4 corners). The small distance is an almost perfect compensation for the thermal expansion of the hot end, which ensures that the hot end is longer when printed than when it is cold.

Instead of adjusting the limit switch endlessly, you can simply write a macro that moves the Z-axis to the limit switch (G28 Z0) and then sends G92Z-nnn where -nnn is the negative position of the limit switch. Of course, the limit switch must be below Z = 0 for this (not too much otherwise you can damage the print bed or the nozzle). A setting is ideal when the nozzle just touches the print bed when it is cold and G92 Z-0.1 (or the measured thermal expansion) is then sent. Note that most slicers send a home command followed by G92 Z0 as the start code - so you have to check the start code of the slicer and adjust it if necessary. There are now many adjustable limit switches that save a lot of time.

If the Z = 0 point is set correctly, the first layer will be slightly thicker than the following layers - but not extremely thick. Most slicers are set by default to extrude a little more material on the first layer and you can adjust that until you get a perfect extrusion for the first layer (see below).

The adhesion to the print bed is strongly dependent on the correct Z = 0 point. If you don't have enough adhesion, print more slowly with a lower Z = 0 point so that the first layer is squeezed more. Increase the Z = 0 point accordingly if the first layer is too tightly squeezed and the adhesion is too great.

  1. Find the matching Z = 0 point
  2. Send G92 Z0.
  3. Prepare the printer for printing - heat bed, load filament, etc.

Layer height, extrusion width

These values ​​are pretty easy to explain. If your printer produces a trace of plastic, it has a height and a width. You have to choose these values.

Good results are obtained when the layer height is less than 80% of the nozzle diameter and the extrusion width is the same or slightly larger than the nozzle diameter. In most cases, a layer height of around 50% produces the best results.

Example: A nozzle with 0.4mm, yours maximum Layer height is therefore 0.4 * 0.8 = 0.32mm (better 0.4 * 0.5 = 0.2mm) and your extrusion width should be 0.4mm or larger.

You can also use lower values ​​for height and width and you will get good results. The slicing software automatically calculates the required amount based on the selected values. There is no real lower limit for the layer height - The limit is your experience in keeping the plastic flow constant at low altitudes. A few reprappers have managed to print with heights of 5µm (0.005mm!).

I myself use a layer height of 0.2mm with a 0.4mm nozzle. Triffid even writes that it uses a layer height of 0.2mm and an extrusion width of 0.5mm regardless of the nozzle diameter.

Slic3r chooses the extrusion width depending on your nozzle diameter. You can choose an extrusion width under the Advanced Settings. Depending on the model, it can make sense to choose a different width in order to print the walls nicely.

Addition: The entire advanced area in Slic3r always refers to the extrusion width. For example, if I go to Topfill instead of 0 (Standard) 125% (corresponds to 0.5mm with a 0.4mm nozzle), then exactly 20 rows will be created on an area with a width of 10mm. If the default were kept, that would be 25 rows. Plastic is no longer applied to the same surface, but just distributed differently (If someone can explain that better, please add!)

Every kind of plastic, different colors, different manufacturers have their own ideal temperature. E.g. I print (Triffid) opaque PLA at 165 ° C with excellent results, but the transparent PLA needs 180 ° C!

Every printer will need a different temperature because the thermistors are always a little different. Even with the same hotend from the same manufacturer, the temperatures can be displayed differently.

This is how I find the optimal temperature for each roll of filament:

  1. Choose a simple model that is big enough that you can see the infill as you print.
  2. Check out the conveyor screw beforehand. It should be clean and have no plastic abrasion from the old filament.
  3. Pull the tensioner pulley on the extruder tight enough. "If your fingers hurt and you still can't push the filament through" FEST! There is a loose idler pulley exactly the same symptoms like too low a temperature.
  4. Start printing ...
  5. Reduce the temperature by 5 ° every 2 to 3 layers
  6. If the infill creates a series of points instead of lines, increase the temperature by 10 °.
  7. Continue to watch the pressure and increase the temperature by another 5 ° if you should see spots again. If the individual layers come off you should increase the temperature further.
  8. It is best to write down the temperature for the exact filament somewhere. The next roll will need a different temperature again.

Adhesion to the print bed is extremely important for high quality prints. With the right adhesion, your models will:

  1. stick on the print bed
  2. do not twist or warp
  3. get no "hourglass warping"
  4. peel itself off when the heated bed has cooled down

This procedure helps to achieve points 1-3 by finding the correct heating bed temperature. Point 4 is achieved by using different coatings such as white glue (good for PLA), UHU glue (for nylon), car window paint, hairspray, ABS juice, sugar water (ABS), etc.

  1. Choose a starting temperature for this test - better a bit higher than too low. Suggestion: 110 ° C for ABS, 65 ° C for PLA.
  2. Start a print. If the first layer does not adhere well, increase the temperature by 3-5 ° and start a new print
  3. On the 2nd layer send M104 S0 - this switches off the nozzle heating. Let the bed heater run by itself
  4. On the 3rd layer, pause the print and move the nozzle away from the print. Let the bed heater continue to run.
  5. Prepare your favorite beverage and drink it while you wait for the surface of the heated bed to reach thermal equilibrium. This takes a maximum of 10 minutes - it is usually sufficient to wait 5 minutes
  6. Remove the print from the build bed. If it's soft and flexible, the bed temperature is too high. Reduce it by 5 ° and start over. The printed object should behave almost exactly as it did when it was cold.
  7. If the bed temperature is correct, the print object will harden while you take your drink and if you increase the bed temperature by 5 ° it will remain soft.

You should generally print the first layer around 10 ° hotter than the remaining layers to ensure that the plastic is very sticky and has good adhesion.

As a guide, the SURFACE TEMPERATURE of the build bed (NOT the temperature measured by the sensor) should be around 105 ° C for ABS and around 57 ° C for PLA.

Your thermistor BECOMES indicate a higher temperature than the surface - a temperature drop of a few degrees happens along the glass. NO WAY you should adjust the thermistor tables or move the thermistor to the surface. You WANT the thermistor close to the heating element so that it can react quickly and there is a short control loop. Just find the number with which the correct surface temperature results and stick with it!

If after this procedure the print object comes loose from the print bed at the corners and ends in the middle of the print try to experiment with Brim (Slic3r / Cura settings) and with different surface materials. White glue - very thinly diluted with water - is wonderful for PLA and some types of hairspray have been reported to work very well with ABS.

Now that everything is quite close to the ideal values, the fine adjustment comes from the extruder!

  1. Find a test part with flat surfaces, e.g. this one file: Calibration
  2. Slice the part with 95% rectlinear infill. Use a layer height that you can handle well - the lower the layer height, the more accurate the result at the end of the calibration. I use 0.2mm for a first test. If you still want to get the last out of it, you can repeat the test with a height of 0.1mm.
  3. Print it out.
  4. Ignore the first 5 to 6 layers as they are still very much dependent on the first layer. If it obviously is too much or too little, then change the extruder steps or Z = 0 and repeat the pressure.
  5. Watch the infill. If you no small ones Can see gaps between the lines, then reduce the extruder steps by 0.5%. Repeat this every 2 layers until you can see small gaps. (With activated EEPROM this works very well via the E-Steps. Marlin / Sprinter via M92 Ennn. With E-Steps below 200 (Direct-Drive) you can reduce in steps of 1. E.g. from e-steps = 145 with M92 E144, similar to Repetier with M206 T3 P200 Xnnn. For squat extruders (calf etc.) reduce the steps in steps of 5)
  6. Now watch the top fill. If you can see small gaps, then increase the step rate again in similar step sizes as described in point 5, until you can no longer see any gaps.
  7. Repeat from step 5 until you see small gaps in the infill and none in top fill.
  8. Now your extruder step rate is perfectly set! Now save the values ​​in your configuration.

Now print your preferred calibration object (e.g. [1]) and see how the dimensions are!

Optional: switch to volumetric E-units

Note: Marlin has been supporting volumetric E-units out of the box since February 1, 2014 - without the following modification. Just send M200 D before printing to set the filament diameter, then the Marlin settings below are not necessary. You still have to carry out step 3 (changing the filament diameter in the slicer to adjust the extruded amount of cubic millimeters)!

It seems stupid to me if you have to slice anew every time just because the filament diameter changes (e.g. because you change colors - or because you have a printer). Follow these instructions if you want to use mm ^ 3 units for the E-values ​​instead of mm.

  1. Write down the diameter of the filament you are using in the slicer.
  2. Calculate (filament diameter / 2) ^ 2 * PI. For a filament diameter of 3.0 mm this is almost exactly 7. For 1.75 mm filament this is almost exactly 2.4.
  3. Change the filament diameter in the slicer to 2 * sqrt (1 / PI) = 1.128379
  4. Divide the E-Steps by the number from Step 2
  5. Multiply all extruder-dependent speeds and accelerations in the firmware and the retract length by the value from step 2.
  6. Repeat the extruder step calibration from above. The first print should be almost perfect.

Now you can use the same GCore over and over again.Simply change the extruder steps with M92 if you change the filament or use the same Gcode on a different printer (for newer Marlin versions just send M200 D instead of G92).


Right now we have 3 variables that affect the output - extrusion factor, filament diameter and E-step all affect the amount of plastic that is extruded.

The filament diameter doesn't change much - it shouldn't change in the middle of a print, and it only varies a small amount as you move from one roll to the next.

It should be possible to set two of these variables to fixed values ​​and only to change the third variable if necessary.

It is important to choose the variable that is easiest to change - these are the E steps that you can always (even in the middle of printing) with the M92 Ennn can change.

The slicer calculates the volume of filament to be extruded for each line segment. Then he takes this volume and divides it by (filament_diameter / 2) ^ 2 * PI to calculate the length of the material to be extruded.

So if we change the filament diameter so that (filament diameter / 2) ^ 2 * PI = 1.0, then the E-values ​​in the GCore are in units of mm ^ 3.

Since the new unit is 7x larger (with 3 mm filament, for 1.75 mm filament the factor is 2.4x) than before, we have to adapt the retraction length, the E-steps and the acceleration to the new unit.

See also my blog post for more information.

Print bed device

See also Marlin Bed Settings