Delta printer nozzle not moving square with a perfectly level bed (as if the bed is bent... but it isn't)

  • 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?

    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.

    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.

    You should post the model name & number of your printer, along with any alignment processes recommended by the manufacturer.

    It sounds like your bed (or rather the Z0 plane - see tjb1's comment 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 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 - 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..

    Unfortunately, we can't inline YouTube videos at the moment, but that may change. However, you *could* post a link to a video.

    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 & 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.

  • 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 for your calibration.

    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

    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.

    are there any really good and simple start to finish guides for beginners?

    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.

    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.

    If it's truly changing nozzle position as it moves across the bed then it's unlikely to be the slicer.

    then why would it go from being perfectly fine to having this problem?

    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?

    @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.

  • 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 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, 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;


    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

License under CC-BY-SA with attribution

Content dated before 7/24/2021 11:53 AM