Leveling the Print Bed

From RepRap
Revision as of 17:01, 31 December 2018 by LoH (talk | contribs) (Adjusting the Z-Axis Home Position: added note about hot/cold)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

For leveling a Delta Printer, like a Rostock, have a look at this HowTo: http://minow.blogspot.co.at/index.html#4918805519571907051


There are many variable inputs to your RepRap prints. The key to great results is to go after the low-hanging fruit, and nail down as many of those variables as you can. One of the simplest things you can do, which many of us avoid, is to level your print bed and appropriately set the Z=0 point. These instructions are based on my experience leveling a Prusa. I'm sure other machines will use similar, if not identical steps. There are a few prerequisites that we must cover before moving on to leveling, but theses too are low hanging.


Perhaps the answer to this is obvious, but as a newbie I really didn't understand how important this was.


If you have the following symptoms then you probably need to level your bed or ensure that Z=0 is set correctly.

  1. The initial layer is not sticking to the bed.
  2. The initial layer isn't complete; parts of the print just don't get laid down.
  3. The head scrapes the bed in some spots (you probably worked this one out for yourself).
  4. Plastic gathers around the head during printing of the first or second layer.
  5. When printing the second layer the print head is picking up the first layer

These symptoms can also be caused by other problems (such as overextrusion or underextrusion). But leveling your print bed and setting Z=0 correctly is the best and easiest spot to start.


This procedure assumes that the print bed is itself perfectly flat. If it is not, there will be some error introduced (that may or may not be compensated for via probing or software).

It is suggested to put the Z endstop on the side of the printer that also has the X motor on it. Due to the weight of the motor, it is more likely to slip out of alignment during the downward travel.


You will need the following tools to perform this task:

  • Feeler gauge
    • Automotive feeler gauges with a known size is best.
    • A sheet of plain paper can be used if the thickness is measured and known.
  • Host software such as pronterface or octoprint that allows for direct communication with the printer.

Fixed Bed

If your print bed is fixed to its carriage without any springs, then the first task is to adjust the mechanics of the printer such that the hotend is moving in a parallel plane to the print bed. On a printer similar to the Prusa i3 that has a moving bed, this is done by first ensuring that the Y and Z axes are perpendicular to each other via inspection of the frame and linear motion (rods, rails, etc).

  1. Home the printer (to start from a known reference point).
  2. Move the hotend to the left side of the print bed (X is a low number)
  3. Center it on the Y axis.
  4. Bring the hotend close to the bed
    • The feeler gauge is used here to measure the gap between the hotend and the bed.
  5. Issue the gcode M114 to the printer.
  6. Write down the resulting Z value.
  7. Travel to the other side of the bed in X with the same Y coordinate.
  8. Bring the hotend, in stages, down to the Z value written down previously.
    • In the case of a badly aligned X axis, we could cause a head crash and lose our position.
  9. Once the printer reports it is at the reported Z value, hand-adjust the lead

screw on that side of the printer such that the hotend is exactly as far away from the bed as on the other side.

Your print bed is now level in the X direction and should be true in Y. You can now skip down to setting Z = 0.


On a printer using Smoothieware you can replace the hotend with a Z probe (microswitch on a stick) and issue G30 from a known height to get the X axis parallel to the bed.

Spring Bed

If your print bed is spring-loaded, then there is an additional task to perform prior to touching the printbed. You must closely inspect the frame and linear motion (rods, rails, etc) and ensure that the X, Y, and Z axes are perpendicular to each other.

On a Prusa, the following things should be true:

  • The Y-Axis smooth rods should be leveled to each other.
  • The Y-Axis base plate should make firm contact against the smooth rods on all four contact points (PLA bushings in the case of Prusa). There should be no rocking when pressing the corners.
  • The X-Axis smooth rods should be level across the Y-Axis rods.
  • The Z-Axis Opto/Mechanical switch and flag should be located on the motor side of the X-Axis carriage.

Each missing component will introduce error into your printer (and your prints).

With a spring bed, you ensure that the printer is square and adjust the bed to match the hotend plane.

Recommended Upgrades

Bed leveling thumbscrews

These replace the nuts under the bed base that you use to adjust the bed level. With the thumbscrews you can adjust each corner of the bed with one finger (or thumb). I highly recommend these.



The purpose of levelling the bed is to adjust the spring-loaded screws such that the bed is on a parallel plane to the hotend's travel. You should not touch the Z endstop during this process (you will have to restart if you do).

Levelling Procedure

The process of leveling is fairly straightforward, and does not require any fancy tools. It involves only seven (7) easy steps:

  1. Stiffen the print bed support screws.
  2. Set adequate tension in three (3) springs.
  3. Set the tolerance.
  4. Level first diagonals.
  5. Level second diagonals.
  6. Secure hardware.

Once complete, proceed to set Z=0.

Stiffen the Print Bed

To stiffen the print bed, tighten the nuts under the bed so that the support screws are absolutely perpendicular to the print bed surface. Nylon-backed nuts insure that the screw will remain set, but if those are not available, Krazy glue, LockTite, paint, or nail polish will get the job done. If using these, allow time to set before moving on, as vibrations tend to loosen things up.

Set Spring Tension in Three Springs

The springs most commonly used on Prusa Mendels are the type you find in many ball point pens. While more than adequate for the job, they provide little resistance when fully extended, so they need to be compressed enough so that they provide sufficient support for the weight of the bed, while still allowing for slight compression during the occasional head crash, or low to the surface print (more on this below). We ultimately want to set the tension in all the springs, but for now, we only want to set three (3), leaving the last spring relatively loose. We will leave the front-right spring loose. To set the tension, tighten the nut under the base plate of each support screw, beginning with the two in the back, until the front and back of the print bed are about 2mm above the top of the fender washers. It is not important that they be level at this point, only that they be within this range, as this is where we will establish our Z-Axis home position. It is generally easier to slightly over-tension the springs with the intent of loosing them off during the leveling process. This allows you to set the Z-Axis homing flag (in the next step) to just above the bed and the you will raise the print bed back up to the hotend during the leveling process.

Leveling Diagonal 1

The leveling order is Front-Left, Back-Right, Back-Left, Front-Right. We refer to the first pair as Diagonal 1.

  1. With the Z-Axis homed, and positioned over the Front-Left corner of the print bed, use the tension nut to adjust the height of the print bed.
    • Measure the separation between the print bed and hotend nozzle with your feeler gauge. The nozzle should just touch the top surface of the feeler gauge.
  2. Re-home the Z-Axis and move it back to the same corner. Ensure that the separation is still correct.
  3. Adjust the nut as needed until you can achieve drag without movement of the print bed.

Once you have set the front-left corner, repeat the process with the opposite diagonal corner in the back-right. Return to the front-left corner and verify that nothing has changed. On or two repetitions may be required.

Note If you have printer firmware that supports G30, then you can use that and a probe instead of a feeler gauge.

Leveling Diagonal 2

The second diagonal is leveled in the same manner as the first, but starting in the back-left corner, and ending with the front-right. It may be that after completing the procedure to this point, you find that Diagonal 1 is no longer set. It will most likely be a small adjustment, and a second repetition of the leveling process will correct this in most cases.

Securing the hardware

One thing I cannot recommend enough, is that you secure the hardware. The RepRap is subject to high and low frequency vibrations, which will loosen any part, given sufficient time. A quick dab of hobby paint at the base of each nut will insure that your leveling effort pays off for the duration. On my machine, I use a second nut to lock each of the tensioning nuts, and then add a drop of red paint. It gets the job done, and is easy enough to remove with a hobby knife, if I need to take something apart.

Setting Z=0

Setting Z=0 is important for good and accurate first layers.

There are two methods to set Z=0, mechanical endstop adjustment and firmware adjustment. Either is fine, and it is often desirable to use mechanical endstop adjustment for the initial calibration and then firmware adjustment (if supported) for fine-tuning.

Mechanical Endstop Adjustment

This method requires that you physically move the endstop so that when the printer is homed, the endstop for Z rests precisely at the correct Z=0.

Recommended Upgrades

Adjustable z-endstop

Allows you to adjust the height of your z-endstop with a screw driver and one hand. This makes a huge difference. I highly recommend this.


Firmware Adjustment

If your firmware supports M206 and saving the value to EEPROM, then you can set this value for Z to compensate for a slightly misaligned endstop.

When the instructions say "move endstop up", use a smaller number (or negative) for firmware adjustment. When the instructions say "move endstop down", use a larger number for firmware adjustment.

Note Smoothieware supports an additional command, M306, that sets M206 offsets such that the current position becomes. If using a feeler gauge that is 0.2mm thick,

   M306 Z0.2

Will tell the firmware that the current position is 0.2mm above the bed.


Essentially the nozzle needs to 'squash' the plastic slightly against the bed (this is done to improve bed adhesion). For maximum precision, this should be done with the hotend at temperature (and heatbed at temperature) without filament loaded. With a thin feeler gauge, it is fine to perform this calibration cold.

If calibrating hot, it is recommended to use firmware adjustment (if available) to additionally offset the thickness of the feeler gauge.

Adjusting the Z-Axis Home Position

  1. Home the printer.
  2. Bring the nozzle over a position on the bed at some safe Z height such as Z=5.
  3. Slowly bring the nozzle down to Z=0, checking the separation with a feeler gauge as it approaches.
  4. If the nozzle is too far away from the bed at Z=0, adjust your endstop to move it down.
    • If the separation is greater than 1mm and the printer is home point is on the bed, use mechanical endstop adjustment.
    • If the home point is not on the bed, it is fine to use firmware adjustment.
  5. If the nozzle touches the bed and M114 does not read Z=0, adjust your endstop to move it up.

Repeat these steps until Z=0 is set to just touching the printbed, within some tolerance for your printbed (see below).

If calibrating with a cold hotend and bed, your result is probably "good enough". Perform a few test prints and check the results.

If calibrating with a hot hotend and bed, remember to offset with M206 the thickness of your feeler gauge (otherwise it will be too far away).


In addition to being level the distance between the hotend and the bed is important. If you are using a strongly flat bed, such as glass, you should be able to achieve a gap of 0.2 mm. For less flat surfaces your gap will need to be larger.