Delta machine coordinates with auto-calibration and tool offsets

  • Hello All,
    How exactly are machine coordinates handled for a delta with auto calibration? Does the probing routine change G53 or does it apply those offsets to a G54/55/etc? I've got some things that need happen in machine coordinates(that never change) at the top of a delta and the operation keeps crashing when I update say the babystepping or the tool length offsets. Any wisdom would be very appreciated. Thanks.

  • By the very nature of G-Code coordinate systems, nothing can update G53.

    G53 can be in an ambiguous state if the machine has not been homed; other than that, it is ALWAYS machine coordinate.

    And, the machine is ALWAYS in G54 (or 55 or...). Many people have a mistaken impression about this. The key to verifying what I'm saying is that G53 is NOT "modal". It applies to the line on which it appears, and nothing else.

    G54 (and so forth) are modal. Once invoked, they 'stick' and affect all following lines. If you carefully read the NIST interpreter, it will point out that one of the G54, G55, etc. group is active at any given point in time. The offset(s) from G53 may all be zero, so it "appears" the machine is in G53... but it really is in one of the work coordinate systems at ALL times, just maybe with an offset of zero.

    A brand new machine that's never had any commands issued will be in G54, offset zero, per the interpreter spec.

    Having said all of that, the most direct answer to your question is:

    G32, on a delta, executes the commands in bed.g. After all these commands run, a set of adjustments to M665 are calculated. If you perform an M665 with no parameters, you can see these. And/or, if you perform an M500, these (along with several other things) will be written to config_override.g. You will literally see an M665 in there.

  • So, if you change M665 by hand, or let G32 change it, either way, the exact "kinematics" that the machine uses to get to the requested position may change...

    Say the "control point" (the nozzle tip) is at absolute machine coordinates Z100 X0 Y0 and you issue a command that requests it to move to absolute machine coordinates Z90 X10 Y20. Note that there are MANY variants of offsets and G0/G1 commands that could have the final result at arriving at those machine coordinates... those offsets are not the point of this discussion.

    Some number of steps must be issued to the stepper motor in each tower, varying over time so that the control point arrives at all three coordinates at the same instant.

    G32 or manual adjustments to M665 WILL change exactly what steps are issued, the rate at which they vary, etc, etc. They will NOT "Change G53" in any way. The destination coordinates "are what they are".

    Make sense?

  • Oh, and a tool offset is just that. Doesn't change G53. If a tool offset is 'active', that offset gets mathematically applied to the coordinates specified in the G0/G1 command to derive absolute coordinates, and then the machine moves there.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.