• Scam Alert. Members are reminded to NOT send money to buy anything. Don't buy things remote and have it shipped - go get it yourself, pay in person, and take your equipment with you. Scammers have burned people on this forum. Urgency, secrecy, excuses, selling for friend, newish members, FUD, are RED FLAGS. A video conference call is not adequate assurance. Face to face interactions are required. Please report suspicions to the forum admins. Stay Safe - anyone can get scammed.

ELS Electronic Lead Screw Concept

whydontu

I Tried, It Broke
Premium Member
I’m starting down the path of adding an ELS to my Busy Bee B2227L lathe.

Background:
I really like the convenience of the gearhead configuration of the B2227L, but I’d kill for a quick-change feed box.
I rarely thread anything on the lathe, in 10 years I’ve maybe cut single-point threads three times. Usually I just use dies and hand-thread.
I often machine long shafts or piping, so I use power feed a lot. But changing gears to switch from roughing to finish feed is a pain.
I want to come up with a reasonable way to change feed rates. I have no intention of going full CNC.

So:
I’ve ordered a NEMA34 1600in-oz motor and driver controller, and intend to combine it with one of these:

https://create.arduino.cc/projecthub/nsr5058/lathe-electronic-lead-screw-52a9c5

Instead of using a toothed belt, I plan to mount the stepper on a plate that will slide along the existing change gear banjo, and make an adapter to mount a change gear on the stepper motor shaft. Direct gear to gear, no belt. This also means I can in effect change the goofy BB 7 TPI leadscrew to 10 TPI by using a 35/50 or 70/100 gear set. Or any other ratio, if it turns out I need to adjust stepper speed in relation to spindle speed.

Basically, I’ll replace items 5, 6, 11, 23, and 24 with the stepper. Mounted to a plate that slides along the adjustment slot in #7.

780F2997-C2B5-4D59-A0DA-CB5B1F573B86.jpeg

Questions:

NEMA34 too big?
Any reason the gear-to-gear concept is bad?

Suggestions from you folks who have done this type of hack?

Thanks
 

Attachments

  • 1D2622EB-737E-44EA-AA82-27F9D7E3334B.jpeg
    1D2622EB-737E-44EA-AA82-27F9D7E3334B.jpeg
    98.7 KB · Views: 5
I am not sure if it is of interest, or even helpful to your project, but an ELS project is discussed and developed on a YT channel - Clough42 - that I follow. Here is the first of many videos created by James on his ELS build:


Tom
 
Last edited:
I’m starting down the path of adding an ELS to my Busy Bee B2227L lathe.

For Krieky sakes @whydontu !

Why do you want to go and rough up the calm peaceful water of my life with a crazy idea like that?

I like it!

You didn't mention where and how you plan to sync the leade screw with the spindle? Or I missed it.

How big is this motor? Will your Banjo support it adequately? Or will the motor weight and torque dangerously stress the Banjo. Might have to make a new plate style Banjo.

Is your chosen Arduino fast enough to handle all the many issues @jcdammeyer described? He did a great job of describing the speed and data input / output constraints. I confess that I have done ZERO assessment but my first worry is that the Arduino is plenty fast enough to run at leade screw speeds, but maybe not at the data flow rates required to syncronize the leade screw with the spindle and especially the correct phasing at start as the two parts accelerate.

In this respect, I have noted that there are many much faster Arduinos that have been released lately.

Anyway, I'll be following along with your adventure.
 
For Krieky sakes @whydontu !

Why do you want to go and rough up the calm peaceful water of my life with a crazy idea like that?

I like it!

You didn't mention where and how you plan to sync the leade screw with the spindle? Or I missed it.

How big is this motor? Will your Banjo support it adequately? Or will the motor weight and torque dangerously stress the Banjo. Might have to make a new plate style Banjo.

Is your chosen Arduino fast enough to handle all the many issues @jcdammeyer described? He did a great job of describing the speed and data input / output constraints. I confess that I have done ZERO assessment but my first worry is that the Arduino is plenty fast enough to run at leade screw speeds, but maybe not at the data flow rates required to syncronize the leade screw with the spindle and especially the correct phasing at start as the two parts accelerate.

In this respect, I have noted that there are many much faster Arduinos that have been released lately.

Anyway, I'll be following along with your adventure.
esp32
 
I’m starting down the path of adding an ELS to my Busy Bee B2227L lathe.

Background:
I really like the convenience of the gearhead configuration of the B2227L, but I’d kill for a quick-change feed box.
I rarely thread anything on the lathe, in 10 years I’ve maybe cut single-point threads three times. Usually I just use dies and hand-thread.
I often machine long shafts or piping, so I use power feed a lot. But changing gears to switch from roughing to finish feed is a pain.
I want to come up with a reasonable way to change feed rates. I have no intention of going full CNC.

So:
I’ve ordered a NEMA34 1600in-oz motor and driver controller, and intend to combine it with one of these:

https://create.arduino.cc/projecthub/nsr5058/lathe-electronic-lead-screw-52a9c5

Instead of using a toothed belt, I plan to mount the stepper on a plate that will slide along the existing change gear banjo, and make an adapter to mount a change gear on the stepper motor shaft. Direct gear to gear, no belt. This also means I can in effect change the goofy BB 7 TPI leadscrew to 10 TPI by using a 35/50 or 70/100 gear set. Or any other ratio, if it turns out I need to adjust stepper speed in relation to spindle speed.

Basically, I’ll replace items 5, 6, 11, 23, and 24 with the stepper. Mounted to a plate that slides along the adjustment slot in #7.

View attachment 29000

Questions:

NEMA34 too big?
Any reason the gear-to-gear concept is bad?

Suggestions from you folks who have done this type of hack?

Thanks
Interesting how the second comment, in that link, 4 years ago is me saying all you have to do is google "Electronic Lead Screw" and you end up with my site. When people say they looked and couldn't find anything I really wonder if they actually looked at all. And as I said in that comment. This is electronic gearing.
 
sure, but a little nudge to ensure he at least considers this option can't hurt.

Of course!

Interesting how the second comment, in that link, 4 years ago is me saying all you have to do is google "Electronic Lead Screw" and you end up with my site. When people say they looked and couldn't find anything I really wonder if they actually looked at all. And as I said in that comment. This is electronic gearing.

Just for Poops N Giggles, you should try the same search on several different people's computers or phones. Google knows who you are and what your interests are. When my wife and I search the same things we usually get different results.
 
Of course!



Just for Poops N Giggles, you should try the same search on several different people's computers or phones. Google knows who you are and what your interests are. When my wife and I search the same things we usually get different results.
Good point.
So google "Electronic Lead Screw" and see what you get on yours. Does mine even show up?
 
Of course!



Just for Poops N Giggles, you should try the same search on several different people's computers or phones. Google knows who you are and what your interests are. When my wife and I search the same things we usually get different results.
Exactly... google predicts searches based on past internet usage among other things. John's internet history included his site because he'd been to his site a million times or so the past 5-10 years. Google places search results based primarily on the number of visitors to a site over a period of time, based on the number of other sites that reference the sites in question, and then based on person's own internet history.
 
Good point.
So google "Electronic Lead Screw" and see what you get on yours. Does mine even show up?

As you requested.

Sorry, it didn't show up till mentioned on our forum which was about 30 hits down.

Your actual website showed up about 40 hits down. It would be lower still on my wife's search. As @TorontoBuilder says above, I do search such things from time to time but have never visited your website before. This will change!

Edit - you know you can pay Google to increase hits.....
 
As you requested.

Sorry, it didn't show up till mentioned on our forum which was about 30 hits down.

Your actual website showed up about 40 hits down. It would be lower still on my wife's search. As @TorontoBuilder says above, I do search such things from time to time but have never visited your website before. This will change!

Edit - you know you can pay Google to increase hits.....
I was going to say there are tons of free SEO techniques that can be employed as well...

For instance, the more sites his ELS is mentioned on, and also linked to the higher his results on google will be.
 
Stepper or Servo? Direct drive or Reducion?
Stepper motor, 4-wire


Simple spur gear drive, Ihaven’t decided on drive ratio. The intent is to use my existing change gears, plus I also have a selection of after-market Mod1 gears in stock so I can implement from 12:1 to 1:4 ratios.

@TorontoBuilder, I’ve avoided using ESP32s because I hate level converters. ESP32 is half the price of an Arduino and 5x the capability, but is 3.3v i/o so by the time I add converters to 5 volt I’m at the same cost. And my experience with converters is they are quite fragile, and when they let out the magic smoke they also fry the processor they’re supposed to be protecting.

@jcdammeyer, your ELS is the fourth hit I get on Google. It’s glorious, but way more sophisticated than what I’m contemplating. I might go down your path, but as an initial attempt I’m going to KISS. The big dollars are the stepper and driver, and they would be compatible with your design.

@Susquatch, the Arduino code I selected reads a sensor at one pulse per spindle revolution, sets a timer at a pulse frequency to feed steps to the motor at the desired ratio. I’m not really considering this setup for threading, just as a way to be able to set feed rates without having to change gears. As such, a bit of error isn’t a big deal and I don’t need accurate spindle to lead screw synchronization. Quite simple and stable, but maybe not as reliable as @jcdammeyer implementation. The beauty of Arduino is it’s so cheap and easy to modify that I can play to my hearts content until I get an acceptable result.

And I suspect the stepper I bought is way too big at 5kg for the banjo idea, but it’s worth a shot. I was seduced by 1600 oz-in. If it’s too big I can either set it up to drive the hand wheel end of the lead screw using a cogged belt, or get a smaller NEMA24 stepper and continue with the banjo concept.
 
Last edited:
Stepper motor, 4-wire


Simple spur gear drive, Ihaven’t decided on drive ratio. The intent is to use my existing change gears, plus I also have a selection of after-market Mod1 gears in stock so I can implement from 12:1 to 1:4 ratios.

@TorontoBuilder, I’ve avoided using ESP32s because I hate level converters. ESP32 is half the price of an Arduino and 5x the capability, but is 3.3v i/o so by the time I add converters to 5 volt I’m at the same cost. And my experience with converters is they are quite fragile, and when they let out the magic smoke they also fry the processor they’re supposed to be protecting.

@jcdammeyer, your ELS is the fourth hit I get on Google. It’s glorious, but way more sophisticated than what I’m contemplating. I might go down your path, but as an initial attempt I’m going to KISS. The big dollars are the stepper and driver, and they would be compatible with your design.

@Susquatch, the Arduino code I selected reads a sensor at one pulse per spindle revolution, sets a timer at a pulse frequency to feed steps to the motor at the desired ratio. I’m not really considering this setup for threading, just as a way to be able to set feed rates without having to change gears. As such, a bit of error isn’t a big deal and I don’t need accurate spindle to lead screw synchronization. Quite simple and stable, but maybe not as reliable as @jcdammeyer implementation. The beauty of Arduino is it’s so cheap and easy to modify that I can play to my hearts content until I get an acceptable result.

And I suspect the stepper I bought is way too big at 5kg for the banjo idea, but it’s worth a shot. I was seduced by 1600 oz-in. If it’s too big I can either set it up to drive the hand wheel end of the lead screw using a cogged belt, or get a smaller NEMA24 stepper and continue with the banjo concept.
Might well be too large a motor but what the heck. With say a 10 micro step/step driver that's 2000 steps per rev. Now in real life, again what many of the electronic gearing sites won't tell you is that the micro-steps are for reducing that torque dip at resonance. You can't actually position based on the microstep values. Easy to test if you put a rated load on the motor like an arm with a weight. Then go one step at a time. What you will see is that at certain points in the micro-step wave form nothing happens for 3 or 4 steps and then it finally overcomes static friction and load and jumps.

In reality open loop stepper motors are good to 1/2 step precision. Anyone who sells a 'better product' is fibbing.

Now the closed loop are a different story. Like AC and DC servos, the step-servos will adjust the current through the windings regardless of the last step pulse so that the motor moves to the encoder feed back position. So each step with a 10 micro-step/step motor that has say a 1000 line encoder creating 4000 positions in quadrature will create a 1/2000th of a rotation. Still suffers from exactly the same torque fall off limitations you get with stepper motors at speed since you can't change the physics of the motor by simply adding an encoder and some software.

How does that apply to your lathe?

Say your lathe has a 10 TPI lead screw. That's 0.1" per turn. Divide that by 200 steps per rev and you get 0.0005" per full step. Unless you are using $20,000 hardware it's likely the flex in the system won't give you anything better than 0.0005". And with 400 steps per rev (half step) it's 0.00025" per half step.

What about speed? Direct drive with a 1600 oz-in motor you have to still look at the curves assuming your motor supplier dares to publish them and that they are accurate. Say you can get enough torque for your system at 600 RPM or 10 revs per second or 1 inch per second (60 inches per minute).

Generally the bronze half nuts aren't really set up for those kinds of speeds especially since doing a 1" long 10 TPI thread at 600 RPM up to a shoulder will mean your reaction time has to be on the order of Superman, Batman or Spiderman. Listen to your spidy senses...

If you therefore wanted finer repeatable resolution you can do 2:1 for 0.000125" per half step and still make 10 TPI threads at 300 RPM.
 
Stepper motor, 4-wire


Simple spur gear drive, Ihaven’t decided on drive ratio. The intent is to use my existing change gears, plus I also have a selection of after-market Mod1 gears in stock so I can implement from 12:1 to 1:4 ratios.

@TorontoBuilder, I’ve avoided using ESP32s because I hate level converters. ESP32 is half the price of an Arduino and 5x the capability, but is 3.3v i/o so by the time I add converters to 5 volt I’m at the same cost. And my experience with converters is they are quite fragile, and when they let out the magic smoke they also fry the processor they’re supposed to be protecting.

@jcdammeyer, your ELS is the fourth hit I get on Google. It’s glorious, but way more sophisticated than what I’m contemplating. I might go down your path, but as an initial attempt I’m going to KISS. The big dollars are the stepper and driver, and they would be compatible with your design.

@Susquatch, the Arduino code I selected reads a sensor at one pulse per spindle revolution, sets a timer at a pulse frequency to feed steps to the motor at the desired ratio. I’m not really considering this setup for threading, just as a way to be able to set feed rates without having to change gears. As such, a bit of error isn’t a big deal and I don’t need accurate spindle to lead screw synchronization. Quite simple and stable, but maybe not as reliable as @jcdammeyer implementation. The beauty of Arduino is it’s so cheap and easy to modify that I can play to my hearts content until I get an acceptable result.

And I suspect the stepper I bought is way too big at 5kg for the banjo idea, but it’s worth a shot. I was seduced by 1600 oz-in. If it’s too big I can either set it up to drive the hand wheel end of the lead screw using a cogged belt, or get a smaller NEMA24 stepper and continue with the banjo concept.
Oh BTW, if you did order that kit in your link you'll be getting that standard MACH3 targeted Break Out Board. I have two of those. One on my mill for the second parallel port and one for the lab desk for mucking with Raspberry Pi4 and LinuxCNC which runs on the Pi and talks to my second MESA 7i92H via Ethernet.
Anyway, I reverse engineered the board and have attached the latest schematic. I think I got everything right on this version.

Oh and the photo is how I attached my stepper motor to the end of the lead screw. It's 280 oz-in with 2:1 and is more than fast enough and powerful enough to run my 10" South Bend.
 

Attachments

I’ve avoided using ESP32s because I hate level converters. ESP32 is half the price of an Arduino and 5x the capability, but is 3.3v i/o so by the time I add converters to 5 volt I’m at the same cost. And my experience with converters is they are quite fragile, and when they let out the magic smoke they also fry the processor they’re supposed to be protecting.

This is good info for me. I would not have guessed much of that.

On the other hand, I would probably not have used direct output or level converters anyway. I would have just assumed I would use a full 3.3V system and then transistors or even SCRs to run the output systems at whatever voltage/current levels they need. (sort of like relays)

I didn't realize you didn't plan to do threading.... That answers a LOT of my questions not the least of which is the system response requirements. I'd guess almost any Arduino will work just fine.

Yes, lots of learning going on here for me too.
 
Last edited:
This is good info for me. I would not have guessed much of that.

On the other hand, I would probably not have used direct output or level converters anyway. I would have just assumed I would use a full 3.3V system and then transistors or even SCRs to run the output systems at whatever voltage/current levels they need. (sort of like relays)

I didn't realize you didn't plan to do threading.... That answers a LOT of my questions not the least of which is the system response requirements. I'd guess almost any Arduino will work just fine.

Yes, lots of learning going on here.
The reasons the Ardunios work as electronic gearing has nothing to do with arduino and everything to do with the Atmel processor. The one used in the Arduino can set up more than one pin to interrupt the processor.

When a processor is interrupted it stops what it's doing and immediately start executing the interrupt routine. You can also program the interrupt input for going low or going high. This allows you to effectively have an interrupt on each edge of the encoder quadrature output. So a 400 line encoder gives 1600 interrupts per revolution.

Now 1200 RPM is 20 revolutions per second or 20 x 1600 edges = 32,000 interrupts per second. That's an interrupt ever 31.25 micro-seconds.

Inside that interrupt routine you can now decrement a counter and every time it reaches 0 reload it with the same starting value and assert the step output or start a hardware PWM output that runs once to create a step.

Now if you are cutting lead screw pitch of 10 TPI and your leadscrew stepper runs 2000 steps per rev then divide 32000/2000 to get 16. This means every 16 encoder edges you issue one step pulse and your stepper motor is hard synchronized to the spindle just like a gear. Step rate is 2000 steps per second.

There are various ways to get to that step rate without locking up the stepper motor. One would have to look at the Arduino code to see how it's done.

Also for non-integral pitches what's usually done is just like gearing. The encoder pulses are multiplied and then divided. The ratio is chosen to create that tightly coupled step rate.

And that's why you can rotate the spindle by hand and the leadscrew moves as if it's geared.
 
Oh BTW, if you did order that kit in your link you'll be getting that standard MACH3 targeted Break Out Board. I have two of those. One on my mill for the second parallel port and one for the lab desk for mucking with Raspberry Pi4 and LinuxCNC which runs on the Pi and talks to my second MESA 7i92H via Ethernet.
Anyway, I reverse engineered the board and have attached the latest schematic. I think I got everything right on this version.

Oh and the photo is how I attached my stepper motor to the end of the lead screw. It's 280 oz-in with 2:1 and is more than fast enough and powerful enough to run my 10" South Bend.
Great info! My research suggested a NEMA 23 motor was a touch sketchy, one Arduino ELS designer used a 23 but posted in their comments that they were going to upgrade to a NEMA 24. When I looked at the price/performance, 24 and 34 are almost the same cost so I went big.

I can get a 270 in-oz 23 for about $35, so it won’t hurt much to experiment. And your math suggests that going to a much lower gear ratio and full steps will likely be the sweet spot.

The fastest feed rate I predict will be 0.030” per rev, which at my max lathe spindle of 1600 rpm gets me 1127 steps/second.
 

Attachments

  • DB6C4A0D-264D-445A-AC0C-BF36FC54236B.jpeg
    DB6C4A0D-264D-445A-AC0C-BF36FC54236B.jpeg
    298.1 KB · Views: 2
Back
Top