Help on "Calibrating_a_delta_printer" wiki

  • Hello

    Please I need help for a better understanding of the "Calibrating_a_delta_printer" wiki page.

    The procedure is not quite clear to me. I fail trying to follow it step-by-step because it is not clear to me at what moment I need to modify the bed.g file, or the config.g file, or the homedelta.g file, and when to reboot (or not !) the printer after such modifications. Also, is bed.g essential or is it obsolete ?

    For instance:

    1. At the "Homing the machine" section
    • I understand that I have to edit the homedelta.g file so that it contains just a single G90 command.
      OK but after I do that, the printer rejects any movement commands I give, saying that the axes have not been homed. I cannot home the axes, an error message says that the homing has failed.
    1. At the "Measuring the trigger height" section.
    • It says "4.Command the print head to the XY coordinates you want to probe".

    How do I do that, the printer says that the position I ordered cannot be reached.

    1. After eventually executing the G30 S-1 command and reading the trigger height on screen
    • OK so I update the G31 in the config.g file, do I need to restore the original homedelta.g file and reboot the printer ?

    The examples could continue but this post is already too long.

    I also seem to fail understanding the following:

    • the difference between G32 and G32 S2. Do I ever want to execute G32 S2 ?
    • the difference between G28 and manually executing "G1 S1 X300 Y300 Z300". I understand that G28 should not be executed after G32, but can I execute "G1 S1 X300 Y300 Z300" without spoiling the effects of G32 ?

    Please can you help.

    Thanks a lot in advance.

  • When you set up the config, easiest using the online tool mentioned in the wiki you should be setting your target height a little above (10-20mm) your measured height.

    I didn't need to edit the homedelta file at all, it should all be in there based on the configurator tool.

    before you run autocalibration you should be able to home the printer then move the nozzle down using the z- buttons on the dwc so that 1 or 2 pieces of paper are just held in place by the nozzle. The you use g92 z0. this sets your z0 position. The wiki also gives the command for allowing the nozzle to go below your z0 height. you will need to do this, putting a figure such as z-5 in, to allow the nozzle to go below there, DEPENDING ON Z-PROBE.

    Then you run autocalibration. BUT a lot will depend on what type of probe you have. What are you using for your z-probe?

    the recommendation on the forum is that you run autocalibration until you get an acceptable deviation (this will depend on your machine "straightness", but I am getting 0.05 to 0.06, others as low as 0.015-0.025) then get your m665 and m666 figures from this entering "M665" and "M666" in the g-code console, enter the numbers you get into config.g using the file editor, replacing the numbers that are there for these commands, reboot and run it again. repeat until the before and after deviations are fairly constant.

    M500 creates a config override file that will only be accessed if you have an M501 command at the end on your config.g file, which requires a reboot after each M500 to load.

    If you have varying z-probe trigger heights then this is where you amend the bed.g file, putting in the offset from x0y0z0 for each probe position. This is a laborious task. This is the only edit I have done to this file, other than selecting which calibration method to use. Mostly the recommendation is to use S6 in the last line of your G30 in here, but as I have a slight tilt in my bed I am using S8 at the moment. Try and avoid S7 or S9 as this can screw up your arm lengths. This is important to get an accurate calibration though. But, again, what is your z-probe?

    Others with more knowledge may offer a different approach but this worked for me.

  • @Dugee said in Help on "Calibrating_a_delta_printer" wiki:

    type of probe you ha


    I think key is what you said: "I didn't need to edit the homedelta file at all" -- I actualy stripped the homedelta.g file down to a single G90 instruction, because that is what I understood from the wiki. But if you successfully calibrated even if the homedelta.g contains all the instructions that the configurator tool seeded, then I guess I'll go your way.


    I know it is pretty subjective, but can you tell me how hard should the nozzle pin the sheet of paper down to the heatbed after several G1 Z-0.05's but before I execute G92 Z0 ?

    • I have the genuine Delta Smart Effector as a hotend/Zprobe.

    • you said "the recommendation on the forum is that you run autocalibration until you get an acceptable deviation", does that mean I run G32 three/four/five times in a row ?

    Here is what happened just now after five-in-a-row G32's:

    Calibrated 8 factors using 16 points, deviation before 0.063 after 0.021
    Calibrated 8 factors using 16 points, deviation before 0.033 after 0.019
    Calibrated 8 factors using 16 points, deviation before 0.032 after 0.022
    Calibrated 8 factors using 16 points, deviation before 0.025 after 0.016
    Calibrated 8 factors using 16 points, deviation before 0.027 after 0.015

    Discarding the first two, the last three seem to converge. Should I do a M500 now ? Does "0.015" seem good ?

    My bed.g has height corrections. That is, my entire bed.g is listed below (my g31 in the config.g is "G31 P100 X0 Y0 Z-0.2")

    ; bed.g file for RepRapFirmware, generated by Escher3D calculator
    ; 16 points, 8 factors, probing radius: 95, probe offset (0, 0)
    G30 P0 X0.00 Y95.00 Z-99999 H0.92
    G30 P1 X61.06 Y72.77 Z-99999 H0.79
    G30 P2 X93.56 Y16.50 Z-99999 H0.6
    G30 P3 X82.27 Y-47.50 Z-99999 H0.37
    G30 P4 X32.49 Y-89.27 Z-99999 H0.5
    G30 P5 X-32.49 Y-89.27 Z-99999 H0.74
    G30 P6 X-82.27 Y-47.50 Z-99999 H0.87
    G30 P7 X-93.56 Y16.50 Z-99999 H0.9
    G30 P8 X-61.06 Y72.77 Z-99999 H0.84
    G30 P9 X0.00 Y47.50 Z-99999 H0.34
    G30 P10 X41.14 Y23.75 Z-99999 H0.21
    G30 P11 X41.14 Y-23.75 Z-99999 H0.12
    G30 P12 X0.00 Y-47.50 Z-99999 H0.19
    G30 P13 X-41.14 Y-23.75 Z-99999 H0.32
    G30 P14 X-41.14 Y23.75 Z-99999 H0.4
    G30 P15 X0 Y0 Z-99999 S8
    g1 S1 x300 y300 z300 f2000
    G1 S2 X-5 Y-5 Z-5 F250


    I have a 3 mm (I think) Aluminum heated bed.

    I use paint masking tape on top of it.

    The heightmap varies horribly. It is -0.2 mm at the center and +0.7 mm on the circumference.

    I already ordered a Borosilicate glass, as I believe that even if I may still have a bed tilt, at least the bed will be "plane" and not "spherical". Right now it looks as if it "holds water".

    Metal delta corners do not exist yet for my frame (2060 profiles "tangent" to the circumference -- all I see for sale online is "2040 radial" corners, which do not have any stiffness at all)

    Best regards

  • administrators

    You should not need any height corrections if you are using the Smart Effector, because the trigger height should hardly vary at all with XY position. If you remove the height corrections, what does the calibration deviation converge to, and what is the height map like?

    I understand that I have to edit the homedelta.g file so that it contains just a single G90 command.

    No, that is not correct. Use the homing file generated by the online configuration tool.

  • you have a choice -

    if you run M500 it will save your numbers to a config_override.g file. The firmware will only call up these figures if you also put a M501 towards the end of your config.g file. You need to reboot to get the firmware to access these numbers.

    or --- you manually put your m665 and m666 numbers into the config.g file to replace the ones that were created when you did the configurator. To get these just put "M665" and "M666" into the gcode console on DWC. I prefer to use my phone to get these so I can get the numbers on the phone then type them in on my PC.

    You are getting good calibration results, but if the height map is way off then either wait until you get glass or remove the painter tape, with the tolerances that can be returned, anything on the bed that can give variance will really show up. Mine varies a lot just by have traces of glue on it.

    With a smart effector I would be surprised if you need the trigger height offsets, in bed.g. with such a variance I would think you have a bed that isnt particularly flat, but others with more experience of this than me are better to jump in ( I use under bed switches for mine, so trigger height does vary). The trigger height might be throwing a lot off as you have a 0.8+ difference between some points, when the smart effector should be consistent and repeatable when triggering. Try resetting your "H" parameter to 0 before re-running the calibration. I wouldn't bother doing an M500 or entering the M665/M666 figures until you do this though.

    Once you get going, see below. You need to print some objects of varying height to confirm your steps/mm on the motors, If this is wrong, it will skew your calibration and bed mesh.

    dc42 ADMINISTRATORS 18 Sep 2019, 17:51
    @Dugee said in dimensional accuracy:

    Finally got my 1st calibration cube from my upgraded Monoprice Mini Delta. Small machine, but there is definitely a lot of potential lurking in there. Some parts very much built down to a price, but these are easily replacable, like bed clips and drive gears. Delta calibration and bed mesh has come in to 2 decimal places pretty easily and after working through the config files to get it operational I am very pleased so far, so firstly thanks for the help I have had from this site, directly and by searching old posts.

    On to my question - the MPMD FB groups aim for dimensional accuracy via adjustment of the steps/mm of the steppers, but the guide for calibrating Delta printers on the dozuki recommends using M579 to do this. Admittedly MPMD uses a customised version of Marlin, not RepRap, which doesnt support M579 so they may use this for that reason.

    What are the pros/cons of the two methods of adjusting the scaling this way, and which should I use?

    Thanks in advance.

    Adjust the tower steps/mm (keep all 3 the same) to get the correct Z height. To avoid first and last layer effects, print 2 otherwise similar test cuboids of different heights, and measure the difference to calibrate the steps/mm. It should be very close to the theoretical value.

    After doing that and setting the correct steps/mm, re-run calibration, then print a noughts-and-crosses/tic-tac-toe pattern. Check that the lines are straight. If they are, use M570 to adjust the X and Y scaling if necessary. If they are not, you will need to adjust the configured rod length, recalibrate, and repeat.

    Edited to add: what @DC42 says 👆

  • @mihaitintea On the number of calibrations to run, I do it until my before and after are within 0.003 of each other, then save the M665/M666 numbers to config.g

  • @Dugee said in Help on "Calibrating_a_delta_printer" wiki:

    e you


    Please let me rummage those last several posts for about 24 hours, until I am confident I understood them correctly, then I will come back to this forum with feedback. Thank you so much for input !

    Truly yours

Log in to reply