Homing with External Drivers
I am using a Duet Ethernet and plan to use external drivers for all three of my axes. These external drivers all internally manage the limit switches and homing, so I do not need the Duet to manage these tasks. I was wondering how I could configure the homing procedures for the x and y axes such that the Duet simply waits for a digital HIGH signal from my external drivers telling it that both the x and y axes are homed to their zero positions. My hope is to use the built-in X/Y axis limit switch headers on the Duet. I can configure my external drivers to output a digital signal of 3.3V whenever the drive is at the "home" zero position for each axis.
If this is something that is possible to configure and you could give me a few pointers as to how to do it, I would appreciate it greatly!
How do you signal to those drivers that you want them to move to the home position, and tell them which way to move?
It can either be done manually by homing the drivers through their external program, or I could get fancy and tap into their I/O and send a signal from the Duet to the drivers when I want them to home. I am leaning towards the second option, because that would allow me to simply tell the drivers to home, and then have the Duet wait for the "homed" or "at endstop" signal. The drivers come from the same company as the linear motors, and have their own built-in system for movement, homing and fault (over velocity/maximum position limiting) handling. I am simply trying to use the Duet and its integrated 3D printing capabilities to command the X/Y/Z axes of the machine as necessary for printing.
Again, I am not sure this is possible using the stock firmware on the Duet, as the physical limit switches are connected to the external drive system. I would be making my own "limit" or really "homing" digital outputs using the configurable I/O of the external drivers.
Thanks for the help. I understand this is an unconventional use of the Duet, but I have high hopes that I will be able to make it functional!
Commanding movement to the drivers won't work unless you can specify both speed and acceleration, because the movement of the axes and the extruder all need to be synchronised. This generally means that one of the drivers will be moving at full acceleration but the other won't be.
I guess you could use the built-in homing function by changing the homing file to temporarily map the axis being homed to a non-existent driver, using M42 to send the homing signal, then commanding the homing move. If you connect the "homed" signal from the driver to the endstop input, then the Duet will know when the axis is homed.