# Calibration

This page has been flagged as containing duplicate material that RepRapSoftwareTweakingManual also attempts to cover.
These pages should be merged such that both pages do not attempt to cover the duplicate topics.

Did you ever hold a caliper on your parts to see whether these 10 mm in the STL file match on the printed part? Whether this 8 mm hole actually has an 8.0 mm diameter, not 6.8 or 8.3? No?

Here we talk about how to not disappoint you in case you or your friend ever does. A Reprap can be calibrated to be as accurate as the mechanics allow.

# Prerequisites

Before starting calibration, your build process has to be pretty stable already.

Once you have finished the physical build of your reprap printer Calibration is the next big hurdle.

If you try to print before calibration you are likely to get a messy blob smeared over the bed of your printer.

Using the following Calibration set I went from nasty smear to beautiful prints in a single day. It almost felt like magic.

The following set of objects and notes are taken (and edited) from Coasterman who posted them to thingiverse.

I've moved them to the reprap wiki so that they could more easily be edited and contributed to by the broader community. So if you have an idea or object which will help with calibration then please post them here.

The specific recommendation made in this article are based on Skeinforge (or sfact) however you should be able to find equivalent settings in your preferred software. Regardless of the software you use you will find this set of calibration objects invaluable.

As a general rule you should run these calibration tests to adjust your printer/software as you go. Once done I would recommend running the calibration a second time as a later test may affect earlier tests.

## Bed Leveling

Objective: level the print bed so that your objects will adhere to the surface.

Calibration Object: bedleveling.stl

Before you do anything you need to level you bed. There is absolutely no point attempting a print unless you bed is perfectly level and at the correct height.

When you print an object the first layer is the foundation for all subsequent layers, if the first layer isn't neat and well adhered then you should terminate the print and rectify the problem.

### Instructions

Read and complete the bed leveling process before you move to the next step.

Once the bed is level print the bed level testing object and ensure that each square is even, smooth and consistent.

## Bed surface preparation

Objective: correct preparation of the bed to ensure that objects adhere to it.

### Instructions

An incorrectly prepared bed can result in poor adherence of the plastic to the base as well as a 'bubbling' effect.

Even a little bit of finger print grease on some surfaces is enough to ruin a print.

Bed preparation will depend on what material your bed is made out of, what you intend on covering it with, as well as what material you expect to be printing:

#### Glass

Clean the glass with a common household window cleaner and a lint free cloth. Spare no effort in ensuring that the glass is spotless.

#### Tapes

When applying any type of tape to print on, it is important to make sure the print surface is still smooth when you are done. Attempt to lay down tape edge-to-edge, with no overlap. If applying multiple layers, it can be benificial for the layers to alternate directions, so that direction-specific defects do not build up as you add layers.

##### Blue Tape

For those printing PLA, it has been found to adhere well to 3M's 'Scotch-Blue Painters Tape for Multi-Surfaces #2090'. This tape may be found in two inch rolls, or three inch rolls. The PLA will adhere to multiple layers, so it is advised to place down at least three layers of tape, before printing on a surface, to prevent damage to the print bed.

##### Kapton Tape

Kapton tape is a heat resistant tape which is commonly used to cover a variety of material types used in beds. The kapton tape provides good adherence for a variety of plastics.

#### Other Materials

TODO: need details on other materials.

## Motor Calibration

Objective: set the current for the stepper motors to the correct level.

Your motors should be quiet when running and can occasionally make musical sounds, particularly when making circles. If they are making a fair amount of noise then you have a problem.

Calibration Object: None

### Symptoms

Motors make significant noise.

This generally means you have too much current.

Motor vibrates on the spot.

This generally means that you don't have sufficient current to the motors. You could also have a problem with a part sticking which stops the motor from being able to drive the axis.

Axis movement pauses momentarily and then resumes.

You may have too much current going to the motor which is causing the pololu to over-heat. Reduce the current. This can also be caused by firmware but check your motors first.

### Instructions

Each Pololu has a trimpot located next to the heatsink. The trimpot controls the current that is sent to each motor. Turning the trimpot counter-clockwise reduces the current to the motor, turning it clockwise increases the current to the motor.

Start by adjusting the trimpot down until your motor vibrates on the spot rather than turning cleanly. Now turn the trimpot in a clockwise direction in small increments (1 eighth of a turn) until the motors just start running. Then give the trim port a final turn of about 1 eighth of a turn and your should be good to go.

## Extrusion

Objective: to ensure the hot end temperate is set correctly so that material is extruded cleanly

Calibration Object: None

## Layer height

Objective: to correct the layer height settings to reflect your printers actual layer height.

Calibration Object: 0.5mm-thin-wall.stl

### Instructions

Print the 0.5mm thin wall cube and make sure that the layers adhere well but the nozzle does NOT drag through while printing.

Adjust softwares layer height in .01 increments until you get a nice print.

Depending on other factors you may find it hard to get all four walls to print nicely. For the first pass if you can get just one wall looking good then move on to the next test.

## Infill

Objective: to correct the infill setting.

Calibration Object: 20mm-box.stl

### Instructions

Set infill solidity to 1.0 for this.

Print the cube and analyze the top. If there is NOT ENOUGH plastic (a concave top), reduce the Infill Width over Thickness by .05 increments. If there is TOO MUCH plastic (convex top), turn that parameter up by .05 increments.

Once you're feeling close, start bumping it around in smaller increments.

Adjust the feed rate by increments of 2 or so until you feel close. If it looks really disgusting and blobby, go by increments of 0.5mm. Then go by smaller and smaller increments until you've nailed it. Although you probably just want to decrease Infill Width over Thickness instead of decreasing Feedrate because lowering feedrate will degrade the resolution.

## Temperature control

Objective: to set the hot end temperature correct for your preferred plastic.

Note: you will find that different types of plastic have vastly different temperatures for both your hotend and your bed. What you might not expect is that different colours for the same material can also required different printing temperatures.

As the tower has quite a small 'top' surface area you may need to cool this object as you print. If your printer doesn't have a built in fan you can use any room fan as a substitute.

Calibration Object: 50mm-tower.stl

### Instructions

Set the 'Infill solidity' to 1.0.

Start by doing a simple extruder test to determine what the range of temperatures are that you can extrude at. Reduce the temperature in 5 degree increments until the extruder starts skipping when you do a manual extrude. Turn the extruder up 5 degrees and note this as your minimum extruder temperature.

Print this block.

If it looks like a blob, turn down all the temps by 5 degrees until you get something good. Chances are you won't need to do this more than 5 degrees.

Note: Be careful as going too low can result in the plastic setting making it hard for the motors to drive the plastic, possibly causing wear or damage.

TODO: list temperature ranges for common plastics.

PLA

Hotend: 185

Bed: 60

ABS Hotend: 230

Bed: 110

## Perimeter Width

Objective: correct the perimeter width over thickness

Calibration Object: perimeter-wt.stl

### Instructions

This test prints two objects which are designed to fit together.

Try to insert the smaller block into the larger block. Try inserting it differently a few times, and check your belt tensions.

TODO: Need notes on calibration of belt tensions

If you can get it in a few mm, good. If you can get it in all the way, awesome. The fit should be snug. If it is loose and can jitter around inside, decrease the perimeter width over thickness. If you CANNOT get it in AT ALL, and you are sure there are no whiskers blocking it, INCREASE perimeter width over thickness. The latter is more likely.

## Bridging

Objective: to maximize your printers ability to bridge gaps (i.e. print in thin air).

Calibration Object: 20mm-hollow-box.stl

### Instructions

Print the calibration object and if the top droops in, increase the BRIDGE FEEDRATE MULTIPLIER in Speed by increments of .1 until the top stops drooping.

## Print Precision

Objective: improve print precision

Calibration Object: precision-block.stl

### Instructions

Then there is the precision block. No real huge calibration parameter here. Just play with this and see how well it does on the overhangs and shapes.

TODO: We need to add some recommendations on how to improve this or find more direct methods of calibrating specific aspects of the print.

## Overhang

Objective: fix overhang problems

Calibration Object: overhang-test.stl

### Instructions

Then there is a simple overhang test. Print and observe the overhangs. This is up to you to figure how to improve the overhangs.

TODO: We need to add some recommendations on how to improve this or find more direct methods of calibrating specific aspects of the print.

## Oozebane

Objective: stop material oozing out of the noozle during 'non-printing' moves.

Many extruders will emit (ooze) plastic even when the extruder motor is not turning. To overcome this your slicing software needs to 'retract' the print medium during head movement when not printing. The retraction creates negative pressure within the hot end heating chamber which effectively sucks the print medium back up through the nozzle, stopping it from oozing.

Calibration Object: oozebane-test.stl

The calibration object prints two towers about 30 mm apart. The head must move between each of the towers at each layer. If your printer is not set correctly then you will see many fine filaments (or strings) between the two towers. You can eliminate these filaments by eliminating ooze.

Symptoms

### Instructions

This is to try to control ooze and calibrate it to be useful.

Start by setting the Early Shutdown distance to 0 and Slowdown Startup Steps to 1.

Print the piece and measure the length of stringers where the extruder shut off and the line is thick before becoming a thin whisker. Take that length and put it into early shutdown distance.

Play with Early Startup Distance Constant until the place where the extruder arrives at the other tower is nice and smooth, so that there isn't any empty space where plastic should be, but there isn't excess plastic extruded.

## Overhangs

Objective: eliminate droop from overhangs.

Calibration Object: BridgeTestPart.stl

### Instructions

If the calibration object droops, you likely need to decrease "Bridge Flowrate over Operating Flowrate." Or increase "Bridge Feedrate over Operating Feedrate."

## X & Y scaling

To be defined. Scaling goes into the STEPS_PER_MM of the firmware, track offset goes into the G-code compiler (Skeinforge etc.).

OK, here we get a bit stuck. While the theory section below nicely shows how to calculate the optimum track offset, Skeinforge has no configuration option to adjust this value.

An excerpt from a chat between Greg Frost and Traumflug, on 2011/22/06:
[14:30] <GregFrost_> I calibrated the extruded length and then set feed=flow and pw/t and iw/t to 1.5 and immediately got nice looking prints. However, and here is the kicker, the objects are all slightly too big because my single wall box has an actual w/t of 2.1
[14:31] <GregFrost_> I can fix this with p flow but then i get thin preimeters and they dont alway bond well to each other (but objects are the right size).
[14:31] <GregFrost_> I would like normal flow on the perim but a wider w/t but if i do that it adjusts all of the flows up and I get far too much plastic.
[14:32] <GregFrost_> what I really need is a way to change the distance inside the objest that the perimeter is traced without changing the flow rates.
[14:37] <Traumflug> To be honest, I never used Skeinforge, this adjustable track offset is an assumption.
[14:38] <GregFrost_> Traumflug: it would be a good setting, i agree.
[14:38] <GregFrost_> Traumflug: I think the only way to achieve a track offset is to adjust the perimiter w/t ratio.
[14:38] <Traumflug> So, Skeinforge doesn't compensate for track width?
[14:38] <GregFrost_> Traumflug: it does. but it uses the perimiter witdth/t and infill w.t settings
[14:39] <GregFrost_> Traumflug: then it uses the layer height
[14:39] <GregFrost_> Traumflug: and useing those it works out the track offset.
[14:39] <Traumflug> ok, good to know.
[14:39] <GregFrost_> Traumflug: but the kicker is, changing perimeter w/t also adjusts the flow rate
[14:40] <GregFrost_> Traumflug: so theoretically when you choose a new w/t, it puts out enuf plastic to fill the width.
[14:40] <Traumflug> Yes, theoretically
[14:41] <GregFrost_> Traumflug: but on the perimiter if you use the same volumetric flow as the infill, it bulges past the desired width because there is no containing line.
[14:42] <GregFrost_> but the one setting that allows you to compensate for that adjusts the flow on all other lines (both infill and permiiters)
[14:42] <Traumflug> IMHO, changing the plastic flow to compensate for size errors isn't a good way.
[14:43] <GregFrost_> Traumflug: I agree completely.
[14:43] <Traumflug> Each time you change the flow, a lot of minor parameters change as well, so a prediction is very difficult.
[14:43] <GregFrost_> I want to change the track offset.

# Theory and Maths

## X and Y Axis

Both horizontal axes can be calibrated with two values: track offset and overall scaling. To find out how this is done, let's have a look at a part specially designed to find out those values:

It's a frame, similar to the one you use to put pictures up onto the wall. The essential part here is, it has long and short distances to measure on the same part. We need to measure both, to distinguish between track offset and scaling.

To the right of the drawing, a few tracks laid down by the extruder are sketched in. It shows how the track offset lets the extruder move closer to the inside of the part, so the outer side of the track just ends where the part should end as well.

All the sizes are overlaid by scaling, which is sort of a "gear ratio" between measurement units and stepper motor steps.

### Calibration Object

// X-Y Calibration object
// See http://reprap.org/wiki/Calibration#Theory_and_Maths

difference() {
cube([100,100,3], true);
cube([80,80,3.1], true);
}


### Basic Equation

With that knowledge, we can sum up what the extruder moves to get the size T = 10 mm exactly 10 mm wide:

\begin{align} \mbox{movement} = ( \mbox{intended size} - 2 * \mbox{track offset} ) * \mbox{scaling} \\ \end{align}

This holds true for measurements of any size, i.e. also for the 100 mm size of our calibration frame:

\begin{align} M_{10} & = ( 10\,\mbox{mm} - 2 * TF ) * S \\ M_{100} & = ( 100\,\mbox{mm} - 2 * TF ) * S \\ \end{align}

You see? Two unknowns and two equations, so the set is solvable.

### Extending to Erroneous Movements

Now, the whole point of this writing is, the extruder movement doesn't match what we need to get accurately sized parts. So we have not only a movement, but also a movement error.

Reason for the movement error is, according to the basic equitation, erroneous track offset and/or erroneous scaling.

Get these two into the basic equitation, result to the left, reason to the right:

\begin{align} & \mbox{movement} * \mbox{movement error} = \\ & ( \mbox{intended size} - 2 * \mbox{track offset} * \mbox{track offset error} * \mbox{scaling} * \mbox{scaling error} \\ \end{align}

Again, this holds true for both our measurements:

\begin{align} M_{10} * E_{M10} & = ( 10\,\mbox{mm} - 2 * TF * E_{TF} ) * S * E_S \\ M_{100} * E_{M100} & = ( 100\,\mbox{mm} - 2 * TF * E_{TF} ) * S * E_S \\ \end{align}

... to be continued ... about a formula to get scaling and track offset from measuring these 10 mm and 100 mm ...

## Z Axis

On the Z axis, there is no track offset compensation, so calibration is reduced to scaling of part height. Build any part of 50 mm height, let it cool down, measure it. Then adjust your STEPS_PER_MM in your firmware's config.h to reduce the difference between intended and received part.

As most RepRaps use a threaded rod on the Z axis, the theoretical value should match reality pretty close. However, there's also material shrink as the plastics is printed at a higher temperature than room temperature.

# References

put here as the new part is still incomplete --Traumflug 22:55, 21 June 2011 (UTC)

Is this part of commissioning? Is this part of Builders/Config/Config Axes?

To calibrate, you will need the following: a Rep(st)rap, a slide caliper, and printing material (ABS, PLA, HDPE, etc).

You will also need this object file to print out.

2. Print the calibration object.
3. Allow the object to cool.
4. Use the slide caliper to measure each edge and the diagonals.
5. Make a note of each measurement and this will allow you to determine where a problem is IF there is a problem.

With the above measurements, you should be able to determine any alignment issues. The sides should measure withing .5mm of 40mm.

if it is off consistently, then it is probably a firmware issue.

Most inconsistent discrepancies are a sign of backlash (i.e. slop or play in your mechanical system). Make sure the grub screws on the pulleys are tight; make sure the belts are tensioned so that when you turn the stepper by hand, it immediately produces a movement in the axis; make sure all the bearings turn smoothly, and that the carriages only move along their intended axis. with all of that double checked, try printing your test piece again, and pay very close attention while it is printing. If your stepper motors make strange noises occasionally, it might be that they are skipping steps because they don't have enough torque. Try turning up the trim pot for that axis.

If all this fails, the best place to go to figure out how to fix your issue, once you've identified it, is either to ask someone in the forums, or on IRC, if you prefer. Then come back here and make this page better, or complain to the forum users.

Once you get a simple cube printed adequately, you might consider trying a more difficult object such as the bearing clip 01 for more fine-tuning.