I'm not talking about Clough42's implementation. I started this thread to generally talk about ELS, somehow 80% of the posts are about Clough42's nice ELS but this is just one way to skin the cat. I have my own implementation and I can do whatever I want with it.
Again, you are stuck thinking about Clough's implementation where he is only trying to simulate change gears. This simplifies the implementation but it is a very limited approach. My controller keeps track of the spindle position, it can "wait" for the right time to re-engage leadscrew motor without the user having to do anything.
This doesn't work because the motor loses position when you disable the driver. You can stop driving the motor without losing position. You don't want to disengage the half nuts because this will lose the sync between the spindle encoder, the carriage position, and the controller. Assuming the lead screw stays engaged you can then rapid back to your thread start manually, or even better if you have set a virtual stop my controller can do it for you. Then it simply needs to calculate when to re-engage the motor. It is just like using a thread dial but you don't disengage the half nuts. I thought I described this above but it seems words have failed me
If you think about it what is required to successfully cut a thread, when the spindle is ina particular orientation, there is a define set positions of the carriage allowed. That set is uniformly spaced by a distance equal to the thread pitch. If you disconnect the lead screw driver from the chain, you will destroy that link. The same if you reverse the direction or change the feed rate/pitch. You can verify the latter two easily with the existing Clough ELS. When you reach the end of a pass, reverse the feed and back the cutter out and back the carriage up for another pass. The consequences of changing the feed rate or pitch is obvious enough not to require an actual run.
Again, you are stuck thinking about Clough's implementation where he is only trying to simulate change gears. This simplifies the implementation but it is a very limited approach. My controller keeps track of the spindle position, it can "wait" for the right time to re-engage leadscrew motor without the user having to do anything.
My attempt to do this in a straight forward manned using the driver enable failed.
This doesn't work because the motor loses position when you disable the driver. You can stop driving the motor without losing position. You don't want to disengage the half nuts because this will lose the sync between the spindle encoder, the carriage position, and the controller. Assuming the lead screw stays engaged you can then rapid back to your thread start manually, or even better if you have set a virtual stop my controller can do it for you. Then it simply needs to calculate when to re-engage the motor. It is just like using a thread dial but you don't disengage the half nuts. I thought I described this above but it seems words have failed me