Electronic Lead Screw Mod

You just put a micro switch, mounted on an adjustable block (like a micrometer z axis position stop) and wire to the VFD directly to stop. IF you have a slow speed on the spindle it will stop in the same place every time. Back off the compound, reverse the spindle. The ELS will track backwards. It needs no reprogramming or connection to Clough42 ELS.

I set several lathes this way for friends lathes(with out els) and it has been so accurate that the end point of threading(without a groove) will be one big curly chip (sometimes still attached) by the end
 
You just put a micro switch, mounted on an adjustable block (like a micrometer z axis position stop) and wire to the VFD directly to stop. IF you have a slow speed on the spindle it will stop in the same place every time. Back off the compound, reverse the spindle. The ELS will track backwards. It needs no reprogramming or connection to Clough42 ELS.

I set several lathes this way for friends lathes(with out els) and it has been so accurate that the end point of threading(without a groove) will be one big curly chip (sometimes still attached) by the end
That's not a bad option for those with VFDs with braking resistors. Simple, cheap and effective, what's not to like. I don't think my cheapo VFD has that option. It will brake, but not sure how well it will brake repeatedly.

My ELS has DRO inputs. Still have to figure out how to unravel the problem, I think it's possible to do with some kind of switch, recording the spindle position and knowing Z. Actually I know the spindle count, the angular position is the count modulo the encoder resolution. Not sure I need the absolute angle, only that I can return to the same angle. Going to have to work this out somehow.
 
That's not a bad option for those with VFDs with braking resistors. Simple, cheap and effective, what's not to like. I don't think my cheapo VFD has that option. It will brake, but not sure how well it will brake repeatedly.

My ELS has DRO inputs. Still have to figure out how to unravel the problem, I think it's possible to do with some kind of switch, recording the spindle position and knowing Z. Actually I know the spindle count, the angular position is the count modulo the encoder resolution. Not sure I need the absolute angle, only that I can return to the same angle. Going to have to work this out somehow.
None of the vfds I used had braking resistors. We used the switch only for threading at low speeds, as in 30 or 40 rpm. No issue as very low momentum.

You get to the point your using scales for both z and x into the control, why wouldn’t you just take the baby step into a full CNC? Then the possibilities of full control are infinitely greater.
 
None of the vfds I used had braking resistors. We used the switch only for threading at low speeds, as in 30 or 40 rpm. No issue as very low momentum.

You get to the point your using scales for both z and x into the control, why wouldn’t you just take the baby step into a full CNC? Then the possibilities of full control are infinitely greater.
My min speed on my VFD is 100 RPM. I have no back gear. Could work, I suppose.

Sometime in the future, for CNC. At the moment, X axis is manual. This custom ELS is a big jump for me. I'm just getting into the mindset that doing things like this isn't as hard as I once thought it was.
 
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.
 
I agree that knowing the Z helps tremendously. The current Clough42 ELS has no provision for that. It probably wouldn't be too difficult to add, assuming you already have a compatible DRO scale installed.
I would say rather it lends another level of automation to the setup. Not all uses have DROs, however. I suppose another branch on github could be started for those who do, but I am unconvinced it will make that much difference, really. The ability to disengage the half nut during a threading or turning operation is just not that huge of an advantage when one has the ELS. It is a completely different matter when one does not have the advantage of the ELS.
 
Last edited:
In my ELS I have both Z and X. So it would be possible to thread to a gutter and stop.
Technically, this is speaking properly all that can be done, unless the lathe provides some means of retracting the tool from the work piece. This would not be that difficult to implement, but frankly the advantage of this is quite minimal. By strict definition, a gutter is any region of the piece between the end of the thread and the shoulder. Conventionally, in practice the length of this region is long enough for the machinist to comfortably disengage the half nut before crashing the tool into the shoulder and wreaking all sorts of havoc. For novice machinists, the sphincter value is extremely high, here, and even I get a bit nervous when doing this after more than 40 years.

The ELS has no sphincter. More importantly, it can stop the motion of the carriage repeatably within considerably less than 1/1000th of a revolution of the spindle, or generally less than 1/10th of a mil. The "gutter" will be fairly precisely 1/2 of the thread width, regardless of the spindle speed. That is more than close enough for virtually all hobby work, or even for nearly all commercial work.

We do know our initial conditions, when we started threading, so it would be possible to reverse the spindle
There is no need to reverse the spindle, or even to stop or slow it down. Indeed, it is not only superfluous, but wastes time. The carriage has been stopped by the ELS, remember? It is doing nothing (maybe rubbing a little) no matter what the spindle speed or direction. In practice, I would retract the cross slide (like always), hit the button to reverse the lead screw under ELS control, speed up the spindle to high speed, and hit the button to stop the lead screw once the tool is clear of the work piece. At that point, I might stop the spindle if I want to take measurements, but otherwise I would return the spindle to a proper threading speed, return the cross slide to its reference point, advance the compound slide by a few thousandths, and it the button to start the lead screw. The ELS can handle everything else, and potentially the entire process can be done without ever stopping the spindle or possibly even ever changing the spindle speed. Given the accuracy of the ELS and its ability to prevent a tool crash, one can thread at much, mush higher speeds. In general, the spindle speed when turning is not set by the limits of the lathe and cutting tool, but by the ability of the machinist to reliably disengage the half nut within the width of the gutter. The ELS with a reliable Shoulder Stop mode could potentially allow threading at over 1000 RPM.
and retract to the initial starting point (assuming the tool is retracted, which could be inferred from reading the X DRO). This would be kind of slow, for fine threads, but I think it is doable.
Reading the X DRO position is a very nice touch. It adds a great deal of safety, just as the Shoulder Stop does. Of course, when threading conventionally, one must always remember to retract the tool, as well. An auto-retract would be even nicer, and as I already mentioned, not too difficult to implement. Neither is essential, however. I don't understand why you say it would be slow for fine threads.
 
Last edited:
At this point I would like to reiterate that setting a stop point not only makes threading faster and easier, it also makes all turning operations safer. One no longer needs to worry about crashing into the work piece or worse yet, the chuck. One can work within one or two thousandths of an inch from the chuck jaws without being nervous. It even can make facing operations easier, if locking the carriage is a bit involved on one's lathe, depending on the amount of backlash in the lead screw.
 
So no one out there is more familiar than I with C++ (not much of a requirement) and might be willing to work with me for a few hours to make these changes to James' code?
 
My understanding of the Clough42 ELS is that it does not know what the spindle angle is. It keeps track of the spindle angle position relative to its point of initiation by totaling the number of encoder pulses from the point of initiation. This has always seemed like a cumbersome way to manage sync.

If the controller pulses to the driver are disabled, either using the driver disable/enable or via the software controlled pulse stream, sync is lost. If the spindle continues to rotate, the encoder is still sending pulses and they will have to be accounted for on order to reestablish sync. Managing all that math seems like a tedious way to go.

I like using the half nuts and thread dial when threading. For me, the ELS is simply an electronic replacement for the gear train, as Clough had intended. I have a solution for threading to a shoulder or turning to a stop via my variable speed motor and TouchDRO. Hence no pressing need to make a change at this point. I like my 602 and with modifications I have made it very nearly meets all my requirements. A recent modification of the Clough42 software by kwackers on github to enable user entry of custom thread pitches via the UI is close to completing my wish list.
(It only addresses metric pitches and while I can do the math to calculate inch threads, there are some holes due to the limited number of decimal places for the pitch entry but for the most part, it is close enough for practical purposes.

I am not inclined to want to go CNC with my lathe. I prefer the manual control and most of the time I don't bother with the power feed or even turning on the DRO. The dials and a micrometer has worked well for simple tasks for more than fifty years. For the very few times that I need CNC control, my Tormach mill can be configured as a vertical CNC lathe. However, if I wanted to have the ELS control the x axis, I would probably elect for full CNC. The reason being that G code is relatively simple to write and far more universal in function.
 
Back
Top