Printer with Two Independent Z-Axes - How to synchronize?
-
I'm building a tool-changing printer with two independent z-axes (one for each tool).
The Duet thinks there is only 1 z-axis at any given time, so I use M584 to switch stepper outputs during tool changes.
(dc42 suggested this method here: https://forum.duet3d.com/topic/16609/multiple-z-axis-and-complex-tools-possible)
Is there a way to get each Z axis to move in sync during a print?
For example:
Printer homes and both axes home to their endstops. T0 & T1 Z-height are both at 0
T0 starts the print and completes Layer 1 & 2
Tool-change to T1
T1 Never moved from its homed position (Z=0) so it will crash into the print.
Does anyone have insight to ensure that both T0 & T1 move upward as the print progresses?
Ideally, each tool would move to some intermediate position defined in Tfree, and the return to the correct z-height for printing when it becomes active again.
Thanks!
In the photo, T0 is on the left, T1 is on the right.
-
@jpomo10
One working solution is to home each linear actuator every time there is a tool-change.
Doing it this way provides a reference point each time the tools switch.
This works because the actuators home at the high-end of their travel instead of homing to the bed. They both use individual endstop switches wired in series and ultimately connected to the Z-endstop on the board.
If the tools have very different 'Z' lengths, I think the G10 offset command can be used to compensate, but i'll have to test this.
-
You will be able to do it using variables:
- When Z-homing a tool or switching away from a tool in tfree, record its Z position in a variable
- When selecting a tool in tpre, recall its Z position and set that using G92; then move to the user Z position plus a bit
Until we have variables, I suggest you use the tool offset of a hidden axes to store the Z position. You will need to temporarily un-hide the axis when setting the offset (using G10) or retrieving it.
-
Thanks for the advice, I will give the offset method a try.
-
-