I have a delta robot 3D printer, but I have no clue how to calibrate it. Any advice?

  • $\begingroup$ Whilst this question is not exactly the same as Delta printer nozzle not moving square with a perfectly level bed (as if the bed is bent… but it isn't), I think that the answer will be identical - whilst bearing in mind that the values will probably be different, depending upon the dimensions of your printer. Please edit your question and add details about your printer (model, dimensions (of the horizontals and verticals), etc.) $\endgroup$
    – Greenonline
    Commented Aug 31, 2018 at 18:40
  • $\begingroup$ @SeanHoulihane - yes, that is what I thought too. The only difference, and it could be considered significant, is that in the other question, the user definitely had a convex bed, whereas here, no configuration has been performed at all, and the form of the bed (which could be convex, concave or totally flat) is totally irrelevant in this case - as it currently stands. $\endgroup$
    – Greenonline
    Commented Aug 31, 2018 at 20:34

1 Answer 1


This answer below is (partially) taken from my answer to Delta printer nozzle not moving square with a perfectly level bed (as if the bed is bent... but it isn't).

Whilst the answer below is for a Kossel, assuming that you are using Marlin, then the process should be more or less the same.

Calibration on any printer is difficult, but especially so on deltas, as there construction is more complex than a cartesian printer.

Have you manually calibrated the printer (at both the center and the edges), such that you can just about get a sheet of paper between the print bed and the hotend nozzle, at z = 0? This last check ensures that the first printed layer of extruded filament is actually touching and "presses on" to the print bed.

I seriously recommend that you watch this video #18:Calibration for a great explanation on the use of the paper. This video is for a Delta printer, a Kossel XL (although the Kossel Mini is also covered) and it clearly demonstrates the height that the zeroed print head should be at, and how to check using a sheet paper.

It is an hour long tutorial video, by Tom of BuildA3DPrinter.eu, and it shows you step-by-step how to calibrate the printer, and also how to deal with deformed beds (concave/convex). It uses:

  • Arduino IDE, and;
  • Pronterface

    and performs the calibration by adjusting, in the firmware:



Here is a run down of the video's contents:

  • 0:00 Intro: The perfect first layer can be obtained, either with/without a probe (the printer is, arguably, better without probe) This tutorial is without the probe.
  • 0:55 Arduino software loaded with Marlin firmware source, looking at the file configuration.h and in particular, the line #define MANUAL_HOME_Z_POS
  • 2:30 - Ensure that the Pronterface USB port is disconnected as otherwise this will inhibit the Arduino IDE from connecting to the printer.
  • 3:20 - Initial test - Gap at the center of the bed
    • Connect with Pronterface and use the following G-code commands
    • G28 Home the printer head
    • G1 Z10 Bring the head down...
    • G1 Z5 a bit more...
    • G1 Z4 a bit more...
    • G1 Z3 a bit more...
    • G1 Z2 a bit more...
    • G1 Z1 and if the head hits bed then this is too close
    • G1 Z2 raise the head again
    • Paper thickness is 100 microns, place under the head
    • G1 Z1.5 lower the head again, but no by so much as before
    • Slide the paper between head and bed. The paper should move freely, but with some friction felt (you should be able to hear the head lightly rubbing against the paper)
  • 7:11 - Deduction of actual distance from print bed is 1.5 mm
  • 7:30 Return to firmware, and finely tune MANUAL_HOME_Z_POS in the Arduino IDE, disconnecting Pronterface again and upload.
  • 8:10 - Return to printer
    • Connect with Pronterface, again, and use the following G-code commands
    • G28 Home
    • G1 Z5 F5000 Move head down rapidly
    • G1 Z2
    • G1 Z1
    • G1 Z0 and the head comes to a rest at the correct distance from the bed
    • Retest with the paper
  • 9:30 Final test
    • G28 Home
    • G1 Z0 Go from home straight down to the bottom
  • 10:02 - Further calibration
    • G1 Z0.2 Raise head ever so slightly to give us some room
    • In Pronterface - Move the head horizontally
    • G1 X50 - Moves head 50 mm to the right
    • In this case, if there is a larger gap between the head and the bed. This means that the bed is curved, and convex. If the gap was smaller, or the head hits the bed, then the bed is concave
  • 11:40 - Diagram of convex and concave print beds
  • 12:10 - Endstops
    • G1 X-40 Moves the head to the left (of center) and the head is now further away from the bed than in the middle.
  • 13:20 - This means that the endstops are not correctly positioned. So, before tackling the concave/convex issue, it is first necessary to adjust the endstops, for each tower.
  • 13:37 - Tackling the tower positions individually
    • G1 Z10 For safety reasons, leave a margin of 1 cm.
  • 14:08 - Calibrating the X tower (left tower). Note: The commands will depend on whether you have the Kossel or the Mini.
    • Printer moves in three axes:
      • X: parallel (to the front);
      • Y: perpendicular (to the front);
      • Z: height (not of interest at this point).
    • X tower is not in either of these axes exactly
    • G1 X-100 Moves the head to the side but 6 cm away from the X tower
    • G1 X-100 Y-60 Positions the head next to the tower correctly
    • G1 Z5 - Lower the head bit by bit
    • G1 Z2
    • G1 Z1
    • G1 Z0 and the head is still 1 mm too high
  • 16:50 Endstop needs to be adjusted by 1 mm lower. There are two ways of doing this:
    • Lower the endstop itself - good for large changes
    • Adjust the screw - good for smaller adjustments. Turn it anti-clockwise, and raise the screw by 1 mm. -G28 Home
    • G1 Z10 Bring head down 1 cm above bed
    • Move to the tower:
      • XL: G1 X-100 Y-60
      • Mini G1 X-60 Y-35
    • G1 Z2
    • G1 Z1
    • G1 Z0 Head hits the bed
    • G1 Z0.2
    • So the end stop needs to be raised by 0.2 mm, by re-adjusting the screw (turning it clockwise).
    • Now home it the head, G28
    • And bring it down G1 X-100 Y-60 Z0 and it should not hit the glass and the paper should slide underneath
  • 21:00 Minor re-adjustment and fine tuning so that the paper slides without the need a too much force.
  • 21:50 Repeat for each tower
  • 22:15 Y Tower (right tower) -G28 Home
    • G1 Z10 Bring head down 1 cm above bed
    • Move to the tower:
      • XL: G1 X100 Y-60
      • Mini G1 X60 Y-35
    • Repeat the above process - remember to test with G28 and G1 X100 Y-60 Z1 for safety, and then adjust the Z command
    • This is an iterative process
  • 28:04 - Z Tower (rear tower) -G28 Home
    • G1 Z10 Bring head down 1 cm above bed
    • Move to the tower:
      • XL: G1 X0 Y120
      • Mini G1 X0 Y70
    • Repeat above process
  • 30:14 Re-check! each position (center, X, Y and Z towers)
    • G28 Home
    • G1 X0 Y120 Z0 Check Z tower & drop head (head should not touch the bed)
    • G1 Z10 Raise head (see below)
    • G1 X-100 Y-60 Move to X tower
    • G1 Z0 Drop head (head should not touch the bed)
    • G1 Z10 Raise head (see below)
    • G1 X100 Y-60 Move to Y tower
    • G1 Z0 Drop head (head should not touch the bed)
    • Calibration of the endstops is now complete
  • 31:30 Why the Z10?
    • G1 Z10
    • G1 X0 Y0
    • The first calibration was the center point, but now the endstops have changed and as the bed is either convex or concave, we therefore raised the head by 1 cm, using the Z10, to avoid hitting the bed in the center. Now test it
    • G1 Z2 Lower head slightly
    • G1 Z1
    • G1 Z0 If the bed is concave then the head is still too high! Conversely, if the bed is convex the the head will hit the bed.
  • 32:40 Adjusting the DELTA_SMOOTH_ROD_OFFSET in configuration.h - alter the physical parameter of the printer:
    • Convex: Increasing DELTA_SMOOTH_ROD_OFFSET lowers the hotend in the center
    • Concave: Decreasing DELTA_SMOOTH_ROD_OFFSET raises the hotend in the center
    • Adjust the setting in the Arduino IDE and recompile and upload (ensure that Pronterface is disconnected)
  • 35:07 Testing the new DELTA_SMOOTH_ROD_OFFSET setting - again in Pronterface:
    • G28 - As the firmware has changed, we must re-home.
    • G1 X0 Y0 Z0
    • You will notice the the center point has not changed! It is the same. However if you go to the tower positions you will see that the (previously) perfect gap has changed. This is because by changing the DELTA_SMOOTH_ROD_OFFSET the center stays in the same place but the edges change instead. So, for the convex bed, we have virtually bent the surface, without moving the center point down, and moved the rim up (or, for a concave bed, down - depending upon the direction of the adjustment), thereby flattening the bed.
  • 37:10 Demonstration of adjustment
  • 37:51 Adjusting the height
    • Return to the firmware and change, again, the #define MANUAL_HOME_Z_POS line that we changed at the beginning, adjusting it by the amount that the head is from the center point.
    • Disconnect Pronterface and upload the new adjusted firmware.
    • Then reconnect Pronterface, and Home (G28) and drop to zero (G1 Z0).
    • The head may still a little too high.
    • Then move to the tower, and the head may be too close to the bed, without any gap. This means that the bed is still convex and further adjustment is required of the DELTA_SMOOTH_ROD_OFFSET and then, obviously, the MANUAL_HOME_Z_POS.
    • Again, this is a bit of an iterative process. Don't forget to home after any firmware updates.
    • Finally once the bed is flat (i.e. it has been virtually flattened in the software) and the gap between the head and the bed is the same at the center and the towers, then adjust MANUAL_HOME_Z_POS (an adjustment of 0.05 or less may be required) to get the paper test just perfect.
  • 44:35 Check each tower (screw adjustment, of the endstops, may be required). As the bed has been flattened, mechanical sub 0.1 mm adjustments may be required. Note that the firmware does not need to be re-uploaded, when making mechanical changes - although the head will always need to be re-homed (G28) after each change.
  • The head should now be at the correct height.
  • 47:14 - Extruder Calibration

Not the answer you're looking for? Browse other questions tagged .