My concern with having an ELS auto stop is that the half nuts cannot be disengaged or sync is lost.
That is correct. It is true on my lathe, no matter what. It does not have a threading dial.
A problem similar to metric threading with an inch lead screw. I would suppose that the half nuts could remain engaged and the ELS could slow and stop the spindle to allow the tool to be backed out.
I see no need to stop the spindle, programmatically or otherwise.
Then the spindle would be reversed to a starting point for another pass. The issue is that the carriage has to be driven back via the lead screw. This isn't a deal breaker but can be somewhat annoying for long threads.
'Just speed up the spindle. Of course, this is a bit of a bother if one has shift gears or far worse pulleys for spindle speed control. My suggestion is that case is to upgrade the lathe with an electronically controlled motor. Speeding up and slowing the spindle isn't actually ideal, of course, but IMO it is a reasonable compromise. I also think the rhythm will be more natural and easier to establish and maintain. I even suspect it may ultimately be faster in most cases.
Another approach would be to have the z position dictate the spindle angle.
How is that "another approach"? It is always the case. The user determines the Z position by when / where he stops the carriage. The ELS must then wait for the spindle to come around to the correct angle before sending counts to the stepper.
Successful threading requires only that the spindle be at the correct angle for each and every z axis position. However the spindle is the driver so it becomes cumbersome. A strategy would be to to move to a position to the right of the start point and then engage the half nuts.
This is only even possible at all if the lathe has a threading dial. My lathe, for example, does not. It is not necessary for the ELS to have knowledge of the threading dial, which helps some, but it still complicates the threading process. You seem rather married to the ability engendered by the threading dial. This is a natural thing, since it makes threading somewhat easier on a conventionally driven lathe when cutting conventional (non-hybrid) threads. The ELS offers a new paradigm. Rather than stopping and starting the lead screw mechanically, one can let the ELS do it automatically. The requisite condition is the half nut must remain engaged.
Think of it this way. The ELS is a means of endowing a manual lathe with some of the capabilities and features of a CNC lathe, minus the programming requirements. One does not engage and disengage a half nut on a CNC lathe. Indeed, if one wished, one could use an ELS equipped lathe in such a way the half nut is never disengaged. I think virtually all of us, however would find the ability to move the carriage at extremely high speed by hand without changing the feed rate on the ELS too much of a convenience to ignore. It is merely a convenience that needs to be temporarily abandoned when threading.
As the carriage starts to move the ELS would read the spindle angle and the z axis position and adjust the pulses sent to the lead screw drive to properly sync with the spindle angle.
This is what always happens.
This isn't possible with the Clough42 ELS as no information for spindle angle is read
Not true, or not exactly true. The pulses from the encoder are nothing but information about the spindle angle. With the encoder James recommends, each pulse pair implies the spindle has moved 1/4096th of a rotation from the previously reported spindle position in a direction implied by the phase angle between the pulses. The absolute position of the spindle is not known, but it is not necessary to know the absolute position. All that is required is a register that keeps track of the modulus of the pulses since the lead screw stopped. That is trivial.
and it would require information as to the z axis position.
That is known by the number and direction of pulses sent to the stepper / servo. This requires a larger register than the spindle register, of course. A 16 bit register is more than large enough to contain the relative position of any spindle, since only the modulus is required, rather than the total number of revolutions. The lead screw is a different matter. Again, only the relative position to that where the lead screw stops is required, not the absolute position, but the total number of pulses must be retained. A 32 bit register is more than enough to accommodate the lead screw of even the largest lathe. One needs only to set the register to 0x7FFF,FFF or 0x8000,000 when Shoulder Stop mode is engaged and then add or subtract from there as each pulse comes in.
However, the E6B2 encoder used has the capability to output a Z phase to establish a reference angle. This could be used to reset the encoder counter so the number of pulses read is a direct proportion to the spindle angle.
One can handle it this way, and it is easy enough, but it is not strictly necessary, as long as one knows the correct number of pulses produced by the encoder per revolution. All that is absolutely required is to keep track of the number and direction of pulses since the reference point is set.
This can then be compared to the z axis position and the stepper drive pulse train adjusted to match the two. There will be multiple z axis positions for which any given spindle angle will be a match, one for each thread. The ELS would simply lock onto the first one it encounters. This is essentially what we do manually when we use the thread dial.
Correct. Unless one has an external reference, such as a DRO, there is really no other way to do it.
I have the Touch DRO and Clough 42 ELS installed on my lathe. I also have a spindle drive which allows me to go from 500 to 0 rpm with the flick of my wrist so threading to a shoulder is not an issue for me, at least not enough to do a complete refit. For the same reasons, I haven't pursued my mechanical auto stop design.
I am not sure what you mean by a refit. We are only talking about updating the code. No mechanical work is implied. I would expect the machinist to stop the spindle before setting the shoulder position in any case. The ELS doesn't care what the spindle speed is. I would expect the user to engage the half nut, allow the lathe and ELS to drive the tool close to the stop point, and then stop the spindle. The user would then move the spindle by hand to the desired point, and set the mode. At that point the spindle can be started and left running until the operation is finished, stopping arbitrarily to take measurements.