Delta calibration issues

I have my delta working well without calibration, but would really like to get calibration working to get everything as close to perfect as possible. I've installed the latest form the development branch as of today.

I'm following and running into a few issues once I reach G32 S2. The first probe point works fine, but subsequent points result in errors:
18:27:00.489 : Error:Apos x square
18:27:00.494 : Warning:Invalid delta coordinate - move ignored x:8712 y:-1520 z:808
18:27:00.497 : Warning:in queueDeltaMove to calculateDeltaSubSegments returns error.
18:27:00.497 : Warning:moveTo / queueDeltaMove returns error

It's my understanding that this occurs if the radius for DISTORTION_CORRECTION_R exceeds that of your bed. My bed measures 220mm, and I can move to X100 / Y100 and X-100 Y-100 without issue. I've tried lowering DISTORTION_CORRECTION_R to 70 - which I believe should be well within my bed's dimensions and still get the same result. I assume I've misunderstood a measurement somewhere along the way, but unsure where. 

Can someone give me a clue as to what I've done wrong? Here are a few key parameters from my setup:
#define DELTA_DIAGONAL_ROD 242 // mm
#define DELTA_MAX_RADIUS 100
#define ROD_RADIUS 147.3
#define PRINTER_RADIUS 147.3
#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_X_OFFSET -26
#define Z_PROBE_Y_OFFSET -14
#define Z_PROBE_X1 -57
#define Z_PROBE_Y1 -33
#define Z_PROBE_X2 94
#define Z_PROBE_Y2 -33
#define Z_PROBE_X3 28
#define Z_PROBE_Y3 96

I would also very much appreciate a definition of those last 4 parameters - distortion Min/Max (or a pointer to some documentation on them?)


  • G32 does not use any of the distortion parameter. These re meant for G33 which creates the distorion map. Last 4 params are only for cartesian printers, deltas use radius.

    In your case the 3 z-probe points are not all inside printable area. Always think that the z-probe offset gets added!
    Also if you choose a grid leveling the complete rectangle must lie inside reachable positions.
  • So I have my Z_PROBE_X_OFFSET , Z_PROBE_Y_OFFSET set to -26,-14. If I add that offset to each Z_Probe coordinate, I get:

    Knowing that my probe can reach each of those points when I use G1 to get to them manually (and I can in fact go out to 100,100 and -100,-100), I'm not understanding what makes those invalid.

    Thank you for the explanation on the other parameters.
  • So after some trial and error, I now understand my error - I had set the coordinates thinking the machine would add the probe offset, but it does not. Entering the numbers I calculated in my previous post got it probing exactly where I wanted without errors.

  • Ohm said:
    So after some trial and error, I now understand my error - I had set the coordinates thinking the machine would add the probe offset, but it does not. Entering the numbers I calculated in my previous post got it probing exactly where I wanted without errors.


    Could you explain what you did, why you did it and where you did it?

    I'm trying to figure this one out but I can't seem to comprehend where to look.

    With kind regards,

  • I never truly got auto leveling working well, so I'm not sure I'm your best source of information - but I did get the probe probing where I wanted it to. My current parameters in the configuration.h file are:
    #define Z_PROBE_X_OFFSET -26
    #define Z_PROBE_Y_OFFSET -14
    #define Z_PROBE_X1 -92
    #define Z_PROBE_Y1 -24
    #define Z_PROBE_X2 -1
    #define Z_PROBE_Y2 -89
    #define Z_PROBE_X3 -21
    #define Z_PROBE_Y3 64

    My target X/Y coordinates based on what I could get to using the G1 command were:

    You can figure out your probe offset by moving to 0,0, then use the manual move commands in your slicer or controller to move the probe to be perfectly centered over 0,0. I measured my probe offset to X -26, Y -14. 

    Then for the first Z probe X, I wanted it to probe an X of -83. I had to add my probe offset manually to that X (-83 + -26), giving me an X of -109. Likewise for a target Y of -47, I added my target Y to my Y probe offset (-47 + -14) giving me -61. Unfortunately, despite my probe being able to actually reach an X/Y of -109, -61, that X value was outside of my configured radius. It gets even worse when you consider the fact that it doesn't just need to reach those three configured probe points, but it actually (in software) creates a rectangle matrix of points, and uses those three points as three of the 4 outside points on a rectangle. I was picking my points based on a triangle shape, which resulted in a much larger overall rectangle shape being calculated than what I had planned for. Once I realized it was going for a rectangle using those points, I was able to adjust my point selection and get it to probe (roughly) the area I desired - though I was surprised and disappointed at just how little of the bed that was. I believe there are ways to supplement that probing with additional manually selected points - but I was so fed up with the disappointing results, I went back to manual/physical calibration techniques, and have the first layer nearly perfect printing at a .1 across 80% of the bed. Good enough for me and far less frustrating. 

    One final thing - don't update the configuration file manually or you'll loose the ability to easily update software in the future. If you need to make changes, do so through the website and re-download the completed config file. That will ensure your config file is always up to date with the latest firmware.

    If/when I get my next printer (this was my $300 "starter" printer kit), it'll probably be a Prusa with dual extruders and auto leveling so I never need to deal with it again. Until then, I'm happy enough without auto-leveling.

    Hope it helps!
  • Ohm said:

    Hope it helps!
    Yes, Thank you, I'm finally getting some understanding in what to do.

    It seems that I was looking in the wrong places. Thank you again!

    With kind regards,

Sign In or Register to comment.