<blockquote>
  <p>Calibration, the part everyone fears. It is actually not that hard. </p>
</blockquote>

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

<p>Print beds are <em>rarely</em> flat (maybe in 1% of cases they are flat), and are usually either convex or concave.</p>

<p>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. </p>

<p>I seriously recommend that you watch this video <a href="https://www.youtube.com/watch?v=QuEhQU8vGZk" rel="nofollow noreferrer">#18:Calibration</a> 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.</p>

<p>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:</p>

<ul>
<li><strong>Arduino IDE</strong>, and;</li>
<li><p><strong>Pronterface</strong></p>

<p>and performs the calibration by adjusting, in the firmware:</p></li>
<li><p><code>MANUAL_HOME_Z_POS</code>, and;</p></li>
<li><code>DELTA_SMOOTH_ROD_OFFSET</code></li>
</ul>

<hr>

<p>Here is a run down of the video's contents:</p>

<ul>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk" rel="nofollow noreferrer">0:00</a> Intro: The perfect first layer can be obtained, either with/without a probe (the printer is, arguably, better without probe) This tutorial is <em>without</em> the probe. </li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=55" rel="nofollow noreferrer">0:55</a> Arduino software loaded with Marlin firmware source, looking at the file <code>configuration.h</code> and in particular, the line <code>#define MANUAL_HOME_Z_POS</code></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=170" rel="nofollow noreferrer">2:30</a> - Ensure that the Pronterface USB port is disconnected as otherwise this will inhibit the Arduino IDE from connecting to the printer.</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=200" rel="nofollow noreferrer">3:20</a> - Initial test - Gap at the center of the bed 

<ul>
<li>Connect with Pronterface and use the following G-code commands</li>
<li><code>G28</code> Home the printer head</li>
<li><code>G1 Z10</code> Bring the head down...</li>
<li><code>G1 Z5</code> a bit more...</li>
<li><code>G1 Z4</code> a bit more...</li>
<li><code>G1 Z3</code> a bit more...</li>
<li><code>G1 Z2</code> a bit more...</li>
<li><code>G1 Z1</code> and if the head hits bed then this is too close</li>
<li><code>G1 Z2</code> raise the head again</li>
<li>Paper thickness is 100 microns, place under the head</li>
<li><code>G1 Z1.5</code> lower the head again, but no by so much as before</li>
<li>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)</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=431" rel="nofollow noreferrer">7:11</a> - Deduction of actual distance from print bed is 1.5 mm</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=450" rel="nofollow noreferrer">7:30</a> Return to firmware, and finely tune <code>MANUAL_HOME_Z_POS</code> in the Arduino IDE, disconnecting Pronterface again and upload.</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=490" rel="nofollow noreferrer">8:10</a> - Return to printer 

<ul>
<li>Connect with Pronterface, again, and use the following G-code commands</li>
<li><code>G28</code> Home</li>
<li><code>G1 Z5 F5000</code> Move head down rapidly</li>
<li><code>G1 Z2</code></li>
<li><code>G1 Z1</code></li>
<li><code>G1 Z0</code> and the head comes to a rest at the correct distance from the bed</li>
<li>Retest with the paper</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=570" rel="nofollow noreferrer">9:30</a> Final test

<ul>
<li><code>G28</code> Home</li>
<li><code>G1 Z0</code> Go from home straight down to the bottom</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=602" rel="nofollow noreferrer">10:02</a> - Further calibration

<ul>
<li><code>G1 Z0.2</code> Raise head ever so slightly to give us some room</li>
<li>In Pronterface - Move the head horizontally</li>
<li><code>G1 X50</code> - Moves head 50 mm to the right</li>
<li><em>In this case</em>, if there is a larger gap between the head and the bed. This means that the bed is curved, and <strong>convex</strong>. If the gap was smaller, or the head hits the bed, then the bed is <strong>concave</strong></li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=700" rel="nofollow noreferrer">11:40</a> - Diagram of convex and concave print beds</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=730" rel="nofollow noreferrer">12:10</a> - Endstops

<ul>
<li><code>G1 X-40</code> Moves the head to the left (of center) and the head is now <em>further</em> away from the bed than in the middle. </li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=800" rel="nofollow noreferrer">13:20</a> - 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.</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=817" rel="nofollow noreferrer">13:37</a> - Tackling the <em>tower</em> positions individually

<ul>
<li><code>G1 Z10</code> For safety reasons, leave a margin of 1 cm.</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=848" rel="nofollow noreferrer">14:08</a> - Calibrating the X tower (left tower). <strong>Note</strong>: The commands will depend on whether you have the Kossel or the Mini.

<ul>
<li>Printer moves in three axes: 

<ul>
<li>X: parallel (to the front);</li>
<li>Y: perpendicular (to the front);</li>
<li>Z: height (not of interest at this point).</li>
</ul></li>
<li>X tower is not in either of these axes <em>exactly</em></li>
<li><code>G1 X-100</code> Moves the head to the side but 6 cm away from the X tower</li>
<li><code>G1 X-100 Y-60</code> Positions the head next to the tower correctly</li>
<li><code>G1 Z5</code> - Lower the head bit by bit</li>
<li><code>G1 Z2</code></li>
<li><code>G1 Z1</code></li>
<li><code>G1 Z0</code> and the head is still 1 mm too high</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1010" rel="nofollow noreferrer">16:50</a> Endstop needs to be adjusted by 1 mm <em>lower</em>. There are two ways of doing this:

<ul>
<li>Lower the endstop itself - good for large changes</li>
<li>Adjust the screw - good for smaller adjustments. Turn it anti-clockwise, and raise the screw by 1 mm.
-<code>G28</code> Home</li>
<li><code>G1 Z10</code> Bring head down 1 cm above bed</li>
<li>Move to the tower:

<ul>
<li>XL: <code>G1 X-100 Y-60</code></li>
<li>Mini <code>G1 X-60 Y-35</code></li>
</ul></li>
<li><code>G1 Z2</code></li>
<li><code>G1 Z1</code></li>
<li><code>G1 Z0</code> Head hits the bed</li>
<li><code>G1 Z0.2</code></li>
<li>So the end stop needs to be <em>raised</em> by 0.2 mm, by re-adjusting the screw (turning it clockwise).</li>
<li>Now home it the head, <code>G28</code></li>
<li>And bring it down <code>G1 X-100 Y-60 Z0</code> and it should not hit the glass and the paper should slide underneath</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1260" rel="nofollow noreferrer">21:00</a> Minor re-adjustment and fine tuning so that the paper slides without the need a too much force.</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1310" rel="nofollow noreferrer">21:50</a> Repeat for each tower</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1335" rel="nofollow noreferrer">22:15</a> Y Tower (right tower)
-<code>G28</code> Home

<ul>
<li><code>G1 Z10</code> Bring head down 1 cm above bed</li>
<li>Move to the tower:

<ul>
<li>XL: <code>G1 X100 Y-60</code></li>
<li>Mini <code>G1 X60 Y-35</code> </li>
</ul></li>
<li>Repeat the above process - remember to test with <code>G28</code> and <code>G1 X100 Y-60 Z1</code> for safety, and <em>then</em> adjust the Z command</li>
<li>This is an iterative process</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1684" rel="nofollow noreferrer">28:04</a> - Z Tower (rear tower)
-<code>G28</code> Home

<ul>
<li><code>G1 Z10</code> Bring head down 1 cm above bed</li>
<li>Move to the tower:

<ul>
<li>XL: <code>G1 X0 Y120</code></li>
<li>Mini <code>G1 X0 Y70</code> </li>
</ul></li>
<li>Repeat above process</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1814" rel="nofollow noreferrer">30:14</a> Re-check! each position (center, X, Y and Z towers)

<ul>
<li><code>G28</code> Home</li>
<li><code>G1 X0 Y120 Z0</code> Check Z tower &amp; drop head (head should not touch the bed)</li>
<li><code>G1 Z10</code> Raise head (see below)</li>
<li><code>G1 X-100 Y-60</code> Move to X tower</li>
<li><code>G1 Z0</code> Drop head (head should not touch the bed)</li>
<li><code>G1 Z10</code> Raise head (see below)</li>
<li><code>G1 X100 Y-60</code>  Move to Y tower</li>
<li><code>G1 Z0</code> Drop head (head should not touch the bed)</li>
<li><strong>Calibration of the endstops is now complete</strong></li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1890" rel="nofollow noreferrer">31:30</a> Why the <code>Z10</code>?

<ul>
<li><code>G1 Z10</code></li>
<li><code>G1 X0 Y0</code></li>
<li>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 <code>Z10</code>, to avoid hitting the bed in the center. Now test it</li>
<li><code>G1 Z2</code> Lower head slightly</li>
<li><code>G1 Z1</code></li>
<li><code>G1 Z0</code> 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.</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=1960" rel="nofollow noreferrer">32:40</a> Adjusting the <code>DELTA_SMOOTH_ROD_OFFSET</code> in <code>configuration.h</code> - alter the physical parameter of the printer:

<ul>
<li>Convex: Increasing <code>DELTA_SMOOTH_ROD_OFFSET</code> lowers the hotend in the center</li>
<li>Concave: Decreasing <code>DELTA_SMOOTH_ROD_OFFSET</code> raises the hotend in the center</li>
<li>Adjust the setting in the Arduino IDE and recompile and upload (ensure that Pronterface is disconnected)</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=2107" rel="nofollow noreferrer">35:07</a> Testing the new <code>DELTA_SMOOTH_ROD_OFFSET</code> setting - again in Pronterface:

<ul>
<li><code>G28</code> - As the firmware has changed, we must re-home.</li>
<li><code>G1 X0 Y0 Z0</code></li>
<li>You will notice the the center point <em>has not changed</em>! It is the same. However if you go to the tower positions you will see that the (previously) perfect gap <em>has</em> changed. This is because by changing the <code>DELTA_SMOOTH_ROD_OFFSET</code> the <em>center stays in the same place but the edges change instead</em>. So, for the convex bed, we have <em>virtually</em> 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.</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=2230" rel="nofollow noreferrer">37:10</a> Demonstration of adjustment</li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=2271" rel="nofollow noreferrer">37:51</a> Adjusting the height

<ul>
<li>Return to the firmware and change, again, the <code>#define MANUAL_HOME_Z_POS</code> line that we changed at the beginning, adjusting it by the amount that the head is from the center point. </li>
<li>Disconnect Pronterface and upload the new adjusted firmware. </li>
<li>Then reconnect Pronterface, and Home (<code>G28</code>) and drop to zero (<code>G1 Z0</code>). </li>
<li>The head may still a little <em>too high</em>. </li>
<li>Then move to the tower, and the head may be <em>too close</em> to the bed, without any gap. This means that the bed is still convex and further adjustment is required of the <code>DELTA_SMOOTH_ROD_OFFSET</code> and then, obviously, the <code>MANUAL_HOME_Z_POS</code>. </li>
<li>Again, this is a bit of an iterative process. Don't forget to home after any firmware updates.</li>
<li>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 <code>MANUAL_HOME_Z_POS</code> (an adjustment of 0.05 or less may be required) to get the paper test just perfect.</li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=2675" rel="nofollow noreferrer">44:35</a> 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. <strong>Note</strong> that the firmware <em>does not</em> need to be re-uploaded, when making mechanical changes - although the head will always need to be re-homed (<code>G28</code>) after each change.</li>
<li><strong>The head should now be at the correct height.</strong></li>
<li><a href="https://www.youtube.com/watch?v=QuEhQU8vGZk&amp;t=2834" rel="nofollow noreferrer">47:14</a> - Extruder Calibration</li>
</ul>

CC BY-SA 4.0
2018-08-22T03:30:47.157Z
2018-08-31T20:42:03.650Z
2018-08-31T20:42:03.650Z
Greenonline
<p>Delta radius controls how the print head moves from the outside to the center.  From the comment you posted, it sounds like your radius is too large which is causing it to hit in the center and you need to make it smaller to bring the center up.  This is not always a number you can directly change as it is sometimes calculated using other offsets so you will need to find that in your firmware.  Also after doing this you're likely going to need to adjust endstops for each tower again or the Z travel to fix your 0 point.  </p>

<p>I would recommend following the steps listed <a href="https://web.archive.org/web/20180324104527/http://minow.blogspot.com/" rel="nofollow noreferrer">here</a> for your calibration.</p>

CC BY-SA 4.0
2018-05-29T10:01:38.047Z
I have absolutely no idea how to edit the firmware and it seems super over whelming for a beginner like me. my printer has been calibrated in the past but not by me, A friend was upgrading to a better printer and basically gave his old one to me. so i have none of the old firmware settings. so am i going to have to redo all of the firmware tweaks? or is there a better way. thanks for the help
Dan Crankshaw
CC BY-SA 4.0
2018-05-29T11:07:25.653Z
Unless you have a newer controller like Re-Arm, Smoothieboard, or Duet then the firmware is likely flashed and not recoverable in a readable format as far as I know.
tjb1
CC BY-SA 4.0
2018-05-30T03:56:24.380Z
are there any really good and simple start to finish guides for beginners?
Dan Crankshaw
CC BY-SA 4.0
2018-05-30T10:58:35.237Z
That really depends on what kind of controller you have.  Boards like RAMPS can support many different firmwares so it's really up to you on what firmware you want to use but certain boards are limited and may required more tweaking or a copy of the firmware from the manufacturer.
tjb1
CC BY-SA 4.0
2018-06-08T09:51:20.647Z
i use repetier host, could it be a slicer problem? because when i first got the printer, it printed fine. i got a new laptop and i think that's when the problem started.
Dan Crankshaw
CC BY-SA 4.0
2018-06-08T11:01:42.643Z
If it's truly changing nozzle position as it moves across the bed then it's unlikely to be the slicer.
tjb1
CC BY-SA 4.0
2018-06-09T02:08:29.917Z
then why would it go from being perfectly fine to having this problem?
Dan Crankshaw
CC BY-SA 4.0
2018-06-14T10:44:23.843Z
oh, i just thought of something. when i got my new laptop repeteir host seemed to think that z0 was below the bed, so to fix it i moved the end stops upward. would that have caused the issue?
Dan Crankshaw
CC BY-SA 4.0
2018-06-14T11:00:22.800Z
@DanCrankshaw It would screw up the 0 plane and may cause it to be tilted from the actual print bed but it shouldn't create a high center condition.
tjb1
CC BY-SA 4.0
2018-05-25T11:24:28.607Z
2018-05-25T11:24:28.607Z
tjb1
<p>I've been having this problem with my delta 3D printer where my nozzle isn't moving flat with my print bed (as if the bed is bent) but I have used the edge of my steel ruler and it seems to be perfectly flat. I have properly leveled my bed with a piece of paper and have checked the whole printer to make sure it's square but the problem continues.</p>
<p>What else could be the problem?</p>
<h3>Addition info (from comments)</h3>
<p>The gap grows and shrinks in a parabolic manner and it makes it impossible to get a good first layer. the printer is a FLsun Delta Kossel. The links don't appear to be loose. Is there a way I could share a video?</p>
<p>Upon further inspection I found a bit of play in one of the links, I tightened the bolt and the play is gone but it didn't fix the problem.</p>
<p>I have been playing around a bit and I found that the nozzle is closer to the bed in the center than it is near the edge.</p>
<p>I did some research and it's a calibration issue but I have no idea how to fix it. Does anyone know a quick and easy way to calibrate a Kossel Delta 3D printer?</p>

CC BY-SA 4.0
2018-05-24T09:15:49.690Z
welcome on 3d Printing. Could you kindly add a photo of the printout and point us to the stl file, that will give us more details to help you.
profesor79
CC BY-SA 4.0
2018-05-24T15:35:39.877Z
When you say the bed is physically planar, does the nozzle gap grow linearly from one edge to the other, or does the gap grow and shrink in a  parabolic manner?    I haven't used a Delta printer, but it is quite possible that the V-linkages are slightly out of alignment.
Carl Witthoft
CC BY-SA 4.0
2018-05-24T15:36:28.637Z
You should post the model name & number of your printer, along with any alignment processes recommended by the manufacturer.
Carl Witthoft
CC BY-SA 4.0
2018-08-22T21:03:54.227Z
It sounds like your bed (or rather the Z0 plane - see [tjb1's comment](https://3dprinting.stackexchange.com/questions/6016#comment10620_6016) below) is *convex*. The video that I refer to in my answer is dealing with a *convex* bed, so it should give you a pretty good idea of what steps you need to take. If your bed was *concave*, i.e. the nozzle is further away from the bed at the center than at the edges, then you would need to do pretty much the inverse, i.e. you will need to raise where the video lowers, and lower where the video raises.
Greenonline
CC BY-SA 4.0
2018-09-04T11:17:36.563Z
@Greenonline it may cause some confusion saying the bed is convex/concave as people may think it's the actual print surface that is incorrect where it's actually the Z0 plane that is incorrect.  The beds will have some imperfections but an incorrect delta radius can cause several mm of movement up or down as the head travels across the bed.
tjb1
CC BY-SA 4.0
2018-09-04T15:24:51.833Z
@tjb1 - Thanks for the feedback, as I wasn't aware of that fact - I only know what I have seen in the video. I've modified my comment. You should post that info in your answer as it is significant enough to merit more than just a comment..
Greenonline
CC BY-SA 4.0
2018-11-03T05:50:01.387Z
Unfortunately, we can't inline YouTube videos at the moment, but that may change. However, you *could* post a link to a video.
Greenonline
CC BY-SA 4.0
2019-05-04T06:05:29.627Z
Have you found & fixed the problem? If any of the answers helped you to get an answer to your question or come to your own conclusions then please do vote & accept an answer (using the tick button next to it). This helps us reduce the [unanswered questions list](https://3dprinting.stackexchange.com/unanswered) & stops the question from being bumped once in a while. If you found another answer (than those already posted), please add that answer (& accept after 48 hours) to share your experience with the community. If you have not been able to address the problem please update your question.
Greenonline
<delta><bed-leveling>
Delta printer nozzle not moving square with a perfectly level bed (as if the bed is bent... but it isn't)
Dan Crankshaw
# Delta printer nozzle not moving square with a perfectly level bed (as if the bed is bent... but it isn't)

(Asked by: username_0 on 2018-05-24)

I've been having this problem with my delta 3D printer where my nozzle isn't moving flat with my print bed (as if the bed is bent) but I have used the edge of my steel ruler and it seems to be perfectly flat. I have properly leveled my bed with a piece of paper and have checked the whole printer to make sure it's square but the problem continues.

What else could be the problem?

### Addition info (from comments)

The gap grows and shrinks in a parabolic manner and it makes it impossible to get a good first layer. the printer is a FLsun Delta Kossel. The links don't appear to be loose. Is there a way I could share a video?

Upon further inspection I found a bit of play in one of the links, I tightened the bolt and the play is gone but it didn't fix the problem.

I have been playing around a bit and I found that the nozzle is closer to the bed in the center than it is near the edge.

I did some research and it's a calibration issue but I have no idea how to fix it. Does anyone know a quick and easy way to calibrate a Kossel Delta 3D printer?

**Tags:** delta, bed-leveling
> **Comments:**
> **username_1**: welcome on 3d Printing. Could you kindly add a photo of the printout and point us to the stl file, that will give us more details to help you.  
> **username_2**: When you say the bed is physically planar, does the nozzle gap grow linearly from one edge to the other, or does the gap grow and shrink in a  parabolic manner?    I haven't used a Delta printer, but it is quite possible that the V-linkages are slightly out of alignment.  
> **username_2**: You should post the model name & number of your printer, along with any alignment processes recommended by the manufacturer.  
> **username_3**: It sounds like your bed (or rather the Z0 plane - see [tjb1's comment](https://3dprinting.stackexchange.com/questions/6016#comment10620_6016) below) is *convex*. The video that I refer to in my answer is dealing with a *convex* bed, so it should give you a pretty good idea of what steps you need to take. If your bed was *concave*, i.e. the nozzle is further away from the bed at the center than at the edges, then you would need to do pretty much the inverse, i.e. you will need to raise where the video lowers, and lower where the video raises.  
> **username_4**: @Greenonline it may cause some confusion saying the bed is convex/concave as people may think it's the actual print surface that is incorrect where it's actually the Z0 plane that is incorrect.  The beds will have some imperfections but an incorrect delta radius can cause several mm of movement up or down as the head travels across the bed.  
> **username_3**: @tjb1 - Thanks for the feedback, as I wasn't aware of that fact - I only know what I have seen in the video. I've modified my comment. You should post that info in your answer as it is significant enough to merit more than just a comment..  
> **username_3**: Unfortunately, we can't inline YouTube videos at the moment, but that may change. However, you *could* post a link to a video.  
> **username_3**: Have you found & fixed the problem? If any of the answers helped you to get an answer to your question or come to your own conclusions then please do vote & accept an answer (using the tick button next to it). This helps us reduce the [unanswered questions list](https://3dprinting.stackexchange.com/unanswered) & stops the question from being bumped once in a while. If you found another answer (than those already posted), please add that answer (& accept after 48 hours) to share your experience with the community. If you have not been able to address the problem please update your question.  

---

## 2 answers

### Answer by username_3 on 2018-08-22. Score: 2

> Calibration, the part everyone fears. It is actually not that hard.

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

Print beds are *rarely* flat (maybe in 1% of cases they are flat), and are usually either convex or concave.

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](https://www.youtube.com/watch?v=QuEhQU8vGZk) 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:
* `MANUAL_HOME_Z_POS`, and;
* `DELTA_SMOOTH_ROD_OFFSET`

---

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

* [0:00](https://www.youtube.com/watch?v=QuEhQU8vGZk) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=170) - Ensure that the Pronterface USB port is disconnected as otherwise this will inhibit the Arduino IDE from connecting to the printer.
* [3:20](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=200) - 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=431) - Deduction of actual distance from print bed is 1.5 mm
* [7:30](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=450) Return to firmware, and finely tune `MANUAL_HOME_Z_POS` in the Arduino IDE, disconnecting Pronterface again and upload.
* [8:10](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=490) - 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=570) Final test
  + `G28` Home
  + `G1 Z0` Go from home straight down to the bottom
* [10:02](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=602) - 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=700) - Diagram of convex and concave print beds
* [12:10](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=730) - 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=800) - 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=817) - Tackling the *tower* positions individually
  + `G1 Z10` For safety reasons, leave a margin of 1 cm.
* [14:08](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=848) - 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1010) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1260) Minor re-adjustment and fine tuning so that the paper slides without the need a too much force.
* [21:50](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1310) Repeat for each tower
* [22:15](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1335) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1684) - 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1814) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1890) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=1960) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=2107) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=2230) Demonstration of adjustment
* [37:51](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=2271) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=2675) 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](https://www.youtube.com/watch?v=QuEhQU8vGZk&t=2834) - Extruder Calibration


---

### Answer by username_4 on 2018-05-25. Score: 2

Delta radius controls how the print head moves from the outside to the center. From the comment you posted, it sounds like your radius is too large which is causing it to hit in the center and you need to make it smaller to bring the center up. This is not always a number you can directly change as it is sometimes calculated using other offsets so you will need to find that in your firmware. Also after doing this you're likely going to need to adjust endstops for each tower again or the Z travel to fix your 0 point.

I would recommend following the steps listed [here](https://web.archive.org/web/20180324104527/http://minow.blogspot.com/) for your calibration.

> **Comments:**
> **username_0**: I have absolutely no idea how to edit the firmware and it seems super over whelming for a beginner like me. my printer has been calibrated in the past but not by me, A friend was upgrading to a better printer and basically gave his old one to me. so i have none of the old firmware settings. so am i going to have to redo all of the firmware tweaks? or is there a better way. thanks for the help  
> **username_4**: Unless you have a newer controller like Re-Arm, Smoothieboard, or Duet then the firmware is likely flashed and not recoverable in a readable format as far as I know.  
> **username_0**: are there any really good and simple start to finish guides for beginners?  
> **username_4**: That really depends on what kind of controller you have.  Boards like RAMPS can support many different firmwares so it's really up to you on what firmware you want to use but certain boards are limited and may required more tweaking or a copy of the firmware from the manufacturer.  
> **username_0**: i use repetier host, could it be a slicer problem? because when i first got the printer, it printed fine. i got a new laptop and i think that's when the problem started.  
> **username_4**: If it's truly changing nozzle position as it moves across the bed then it's unlikely to be the slicer.  
> **username_0**: then why would it go from being perfectly fine to having this problem?  
> **username_0**: oh, i just thought of something. when i got my new laptop repeteir host seemed to think that z0 was below the bed, so to fix it i moved the end stops upward. would that have caused the issue?  
> **username_4**: @DanCrankshaw It would screw up the 0 plane and may cause it to be tilted from the actual print bed but it shouldn't create a high center condition.  

---

