T1 limits limited T0 Primary Tool (T0) coordinate system

  • I'm working on an Independent Dual Extruder machine, and overall have been very happy with the Duet Ethernet. Running 2.02

    My current issue: if my T1 offset is positive, I cannot move Z to anything less than the value of the Z offset.

    For example T1 has a positive offset, i.e.

    G10 P1 U0 Y0 Z10 ; exaggerated Z offset of 10mm for clarity

    and a Z=0 minima

    M208 X-71.3 Y11 Z0 U0 S1 ; Set axis minima, Z=0

    I home everything (Z probe on T0) , move to Z=5 and then switch to Tool 1
    G1 Z5

    Now an M114 shows the Z position as 5mm and the T0 nozzle is 5mm away from the bed as expected. However if I make any move under the Z offset (10mm)
    G1 Z5
    Z now moves the nozzle closer to the bed, but only 5mm instead of 10mm. M114 shows Z=10. Further movements to get below 10 are ineffective

    So this has me thinking that the axe minima is based of the T0 coordinate system, and not T1. i.e. I can't move lower than where the T0 nozzle would be touching the bed. However with my IDEX I can move T0 totally of the bed so I'm not in danger of anything crashing.

    My short term options seems to be

    1. M564 S0 to allow me to go past the limits (not ideal as I'm relying on limits for other parts of the machine

    2. Set my minima more negative, so that T1 can move within that space (not ideal since T0 can crash)
      M208 X-71.3 Y11 Z-10 U0 S1 ; Set axis minima

    2a) switch back and forth between M208s in my tool change script, one Z=0 (for T0) and one Z= -1 * Tool1 Z offset value

    I'm leaning towards 2a but I'm wondering if I'm overlooking an easier solution, one where I'm not updating multiple files with the Z offset.


  • The M208 limits always apply to machine coordinates rather than user coordinates, so you might be out of luck.

    Also note that T0 also uses a user coordinate system just like T1, but T0 usually has no offset. So we don't really have T1 being limited by T0, but rather every tool is limited by the machine coordinates.

    Any tool offset is modifying user coordinates only, so we can't get past the M208 limits that way.

    There are a few ways to modify machine coordinates.

    • Home to M208 limits - not useful in this case
    • G92 - override coordinates, also not useful in this case
    • Babystepping modifies machine coordinates directly - Could have the tool change script make an incremental babystep of the tool offset amount.
    • Bed mapping also modifies machine coordinates - Could have two separate height maps, one of which the offset is applied to and have tool change switch between them

    These solutions are probably worse than the ones you suggested already.

    With careful tool change, home, and startup scripting the M208 is probably your best bet. you should be able to eliminate most of the risk of crashing, but it may not be super maintainable.

  • administrators

    The limits are applied after tool offsets have been applied. In most situations, I think this makes sense. For example, on a print head with 2 nozzles, it it the head that is limited in the possible X and Y movement, not the individual nozzles. But I can see that for an IDEX machine there is a case to be made for applying the Z limit before applying the tool offset.

    One workaround would be to choose your Z origin such that all tool Z offsets are zero or negative. But this wouldn't prevent you from crashing a tool with a negative Z offset into the bed.

Log in to reply