By continuing to use this site, you agree to our use of cookies. Find out more
Forum sponsored by:
Forum sponsored by Allendale

helical lathe update

All Topics | Latest Posts

Search for:  in Thread Title in  
john constable10/07/2018 15:20:25
avatar
80 forum posts
9 photos

After lots of advice from this forum and cnc zone, I thought I'd update you and invite comments. I decided to build a small prototype to test the principle and 'learn the ropes' and see where all the critical areas are before commiting to a 'MarkII' final version.>>

I'm at the stage now where I'm trying to make sense of driver boards, controllers and arduinos and so on.>>

s a relatively simple thing for turning wooden spindle spindles with barley twists, rope twists, hollow spirals and so on - left hand and right hand. Work size max 2" diameter by 10". It's similar in function to a small metalworking lathe with the ability to cut threads. I'm not using a metal lathe partly because of the cost, partly because i don't need the extra functionality and partly because the changes needed (to the spindle drive and gearing) are proving impractical for me.>>

It's basically a 3-axis machine. X axis for moving the tool (a dremel-type tool) along the length of the spindle in the chuck, a Y axis to advance the tool into the wooden spindle and a z axis which is the rotation of the chuck (slow speeds for positioning not fast for cutting). There will be a 4 th axis for minor adjustments to the height of the cutting tool.

The x and y axes are a small x-y milling table,the rotation z axis is a small rotary table, mounted vertically, and 4-jaw chuck. The 4th tool-height adjustment axis will be a small scissor lift lab table.

.All axes will be stepper-motor driven, probably nema 17 bipolar. I'm still learning about driver boards so I haven't decided on them yet.

So for the front end software, I don't need anything too sophisticated. I'm not sculpting in 3D. I just need to:

rotate the spindle slowly and continuously
move the tool along the spindle at a specific speed
sync those two movement to cut a helix
advance the tool into the work slightly on each pass

I will also need to:
take into account end stops
rotate the spindle c/w and cc/w for right and left hand threads
vary the speed of the x movement during a cut to vary the pitch of the helix in a spindle.(excited about that one.)

A preview of the result would be good bit I think I basically need to enter an x to z ratio (where x might be variable and z might be negative, a depth, a start and end position and an overall cutting speed.

As you can probably tell i'm new to all this so any advice or observation offered will be gratefully received....>>

Edited By JasonB on 10/07/2018 15:30:50

Martin Connelly10/07/2018 16:27:36
avatar
717 forum posts
74 photos

You don't need to rotate the spindle ccw for left hand threads. Lathes do left hand threads by moving the tool away from the chuck instead of towards it. You may end up catering for spindle rotation you don't need.

Martin C

john constable10/07/2018 16:59:04
avatar
80 forum posts
9 photos

good point! It's just down to the tool movement,of course. And of course on a normal lathe reversing the spindle would be a bit dodgy unless you invert the tool and nearly everything else so I should have realised.

I think I got caught up in this notion because I've seen these in 'carving' mode rather than 'turning' mode where they dodge backward and forwards in both directions all the time. Maybe that'll be useful to have one day but not needed at the moment.

SillyOldDuffer10/07/2018 17:11:23
3381 forum posts
664 photos

The job isn't very demanding in terms of compute power or pins, so I think a Nano will do the job.

There are two types of controller:

  • the first is more basic and requires some circuitry & setting up of electronics. There is a standard library.
  • the second controller is more sophisticated and can be controlled directly by the Arduino. Simple enough to program but I don't think there's a standard library. I'd recommend this approach.

Pin count is important, the Nano has 20. The second type of controller requires three inputs. They are:

  1. Enable can be controlled by an Arduino pin or permanently wired ON
  2. Direction (forward or reverse). Probably has to be controlled by an Arduino pin.
  3. Step (Moves the motor 1 step). Must be controlled be an Arduino pin. The Arduino controls speed by varying the pulse-rate, and the distance moved by counting pulses. No pulses and the motor stops.

I'd permanently wire ENABLE (or connect it to an emergency stop button), so 6 Arduino pins are needed to control the x,y, & z motors.

You also need pins for the control interface. Choices include:

  1. A 2x16 character display with 5 push buttons like this. It needs 8 pins.
  2. A stand-alone 2x16 display ( or 4x20 ), with an I2C interface it needs only 2 pins, plus a push-button membrane keypad ( 8 pins, unless you can find an I2C version; if so this can share the same pins as the display.)
  3. A TFT Display; these combine input & output on a graphics screen but need a lot a pins. A Nano doesn't have enough, use a Mega.  More complicated to program.
  4. Control the Arduino from a connected PC. Need to understand two different platforms. Complicated and you may not want a PC in your mucky workshop.

Option 1 typically uses the 5 buttons for data entry using some sort of nested menu system.

Option 2 has 16 buttons, which will make the interface more human friendly.

You may want extra pins to detect running out of room, and for a dedicated stop/go button, say 3 pins. So Option 1 would need a total of 17 pins, and the Nano has 20. There are ways of increasing the effective number of pins available to the Nano but they require additional electronics and programming best avoided on a simple project.

Driving three motors with an Arduino calls for a programming trick. It's trivially easy to drive one motor by using a built in delay() function to set pulse lengths. The technique doesn't work with two or more motors because delay() stops everything. To keep two or more motors stepping together, you have to program the Arduino to emit motor pulses after a certain time has elapsed whilst continuing to service everything else. This is more advanced programming than waking up after given time-delay.

Designing & programming the control interface will be more complicated than driving the motors. You have to enter data, allow corrections, and provide stop/go control. Once the data has been entered, the code has to do the necessary maths to move the three motors in step. Depending on the form of the helix, the maths might be quite demanding (for the programmer, not the computer). Producing a screw-thread is easy, I'm not so sure about a rope form table leg, where the tool point has to follow a curved path within the helix. Definitely do-able, I don't know how.

Final point, you said "I don't need anything too sophisticated. I'm not sculpting in 3D." Albeit in simple form, I think you are! A mechanical helix turner would follow a template made by a toolmaker. The Arduino eliminates the toolmaker and cam-following problems, but needs to have a numeric template instead. However, once it can follow a numeric profile, it really is a 3D sculptor. No reason why it wouldn't cut splines and grooves just as well as helices.

I've probably made it sound complicated. Taken step by step it's achievable.

Dave

Edited By SillyOldDuffer on 10/07/2018 17:15:44

JasonB10/07/2018 19:03:06
avatar
Moderator
13657 forum posts
1269 photos

I still don't think you are going to get a twist profile by moving the tool once along the helix. It will only work that way if the diameter of the toolbit is equal to the pitch of the twist. With a Dremel you won't be able to use a cutter much over 1/4" dia so will need to make multiple passes with the tool moved in X & Y.

Try drawing it in a 3D CAD program and use helical cut to see what shape you can get with a max 1/4" dia cutter following a helical path and you will see how restricted that will be. With a Dremel you really can't use much more than say a 1/8" ball nose cutter with 1mm stepover which on a 50mm dia 2 start barley twist would need several hundred passes all at slightly different X-Y settings which a good controller and CAm package wil sort out..

J

john constable10/07/2018 19:56:29
avatar
80 forum posts
9 photos

I hear you Jason. I'm not necessarily expecting to do it in a single pass. Material removal amount shouldn't be an issue as I am using a 550w cutter and on smaller spindles of half an inch I only need to cut down 1/4".

If it's achieving the shape you are referring to, i'll be using bits like the point cutting roundover bit which gives me the right shape profile and they are available in 1/4". Pen wizard do a rope twist bit which is 1/8".

JasonB10/07/2018 20:04:04
avatar
Moderator
13657 forum posts
1269 photos

Yep fine for small dia work but not for your 2" dia stuff unless you want more of a spiral than a twist.

It's not so much the power that is the issue it is the chatter you will get trying to take a large cut with a Dremel that can only hole 1/8" dia shank tooling.

john constable10/07/2018 20:15:00
avatar
80 forum posts
9 photos
Posted by SillyOldDuffer on 10/07/2018 17:11:23:

The job isn't very demanding in terms of compute power or pins, so I think a Nano will do the job.

There are two types of controller:

  • the first is more basic and requires some circuitry & setting up of electronics. There is a standard library.
  • the second controller is more sophisticated and can be controlled directly by the Arduino. Simple enough to program but I don't think there's a standard library. I'd recommend this approach.

Pin count is important, the Nano has 20. The second type of controller requires three inputs. They are:

  1. Enable can be controlled by an Arduino pin or permanently wired ON
  2. Direction (forward or reverse). Probably has to be controlled by an Arduino pin.
  3. Step (Moves the motor 1 step). Must be controlled be an Arduino pin. The Arduino controls speed by varying the pulse-rate, and the distance moved by counting pulses. No pulses and the motor stops.

I'd permanently wire ENABLE (or connect it to an emergency stop button), so 6 Arduino pins are needed to control the x,y, & z motors.

You also need pins for the control interface. Choices include:

  1. A 2x16 character display with 5 push buttons like this. It needs 8 pins.
  2. A stand-alone 2x16 display ( or 4x20 ), with an I2C interface it needs only 2 pins, plus a push-button membrane keypad ( 8 pins, unless you can find an I2C version; if so this can share the same pins as the display.)
  3. A TFT Display; these combine input & output on a graphics screen but need a lot a pins. A Nano doesn't have enough, use a Mega. More complicated to program.
  4. Control the Arduino from a connected PC. Need to understand two different platforms. Complicated and you may not want a PC in your mucky workshop.

Option 1 typically uses the 5 buttons for data entry using some sort of nested menu system.

Option 2 has 16 buttons, which will make the interface more human friendly.

You may want extra pins to detect running out of room, and for a dedicated stop/go button, say 3 pins. So Option 1 would need a total of 17 pins, and the Nano has 20. There are ways of increasing the effective number of pins available to the Nano but they require additional electronics and programming best avoided on a simple project.

Driving three motors with an Arduino calls for a programming trick. It's trivially easy to drive one motor by using a built in delay() function to set pulse lengths. The technique doesn't work with two or more motors because delay() stops everything. To keep two or more motors stepping together, you have to program the Arduino to emit motor pulses after a certain time has elapsed whilst continuing to service everything else. This is more advanced programming than waking up after given time-delay.

Designing & programming the control interface will be more complicated than driving the motors. You have to enter data, allow corrections, and provide stop/go control. Once the data has been entered, the code has to do the necessary maths to move the three motors in step. Depending on the form of the helix, the maths might be quite demanding (for the programmer, not the computer). Producing a screw-thread is easy, I'm not so sure about a rope form table leg, where the tool point has to follow a curved path within the helix. Definitely do-able, I don't know how.

Final point, you said "I don't need anything too sophisticated. I'm not sculpting in 3D." Albeit in simple form, I think you are! A mechanical helix turner would follow a template made by a toolmaker. The Arduino eliminates the toolmaker and cam-following problems, but needs to have a numeric template instead. However, once it can follow a numeric profile, it really is a 3D sculptor. No reason why it wouldn't cut splines and grooves just as well as helices.

I've probably made it sound complicated. Taken step by step it's achievable.

Dave

Edited By SillyOldDuffer on 10/07/2018 17:15:44

Thanks, David.That's very useful. It'll take me a while to go through that but I can see there's plenty in there I haven't considered yet.

I'd like to learn to write g-code at some point but I won't want to enter it with a key pad although it might be interesting to watch progress on a small integrated screen. Even if I only need 3 axes on the prototype I'll want 4 on the MkII so I'll probably put it on the prototype so I can just move everything from the motor to software over on to the MKII.

I don't think I saw mention of starting and stopping the tool. Does the controller include that facility?

john constable10/07/2018 20:38:33
avatar
80 forum posts
9 photos
Posted by JasonB on 10/07/2018 20:04:04:

Yep fine for small dia work but not for your 2" dia stuff unless you want more of a spiral than a twist.

It's not so much the power that is the issue it is the chatter you will get trying to take a large cut with a Dremel that can only hole 1/8" dia shank tooling.

My dremel is actually a von-haus and it can take a 1/4" shank. The largest of these is 22.2mm diameter cutter which is probably larger than I'd need even on 2" diameter stock.

Even so, I think I'm looking at multiple passes to get a cleaner finish and also now you've warned me of the chatter issue.

SillyOldDuffer10/07/2018 20:48:35
3381 forum posts
664 photos
Posted by john constable on 10/07/2018 20:15:00:
Posted by SillyOldDuffer on 10/07/2018 17:11:23:..
...

I'd like to learn to write g-code at some point but I won't want to enter it with a key pad although it might be interesting to watch progress on a small integrated screen. Even if I only need 3 axes on the prototype I'll want 4 on the MkII so I'll probably put it on the prototype so I can just move everything from the motor to software over on to the MKII.

I don't think I saw mention of starting and stopping the tool. Does the controller include that facility?

G-code. I hadn't thought of using G-code, but good idea, or at least a sub-set of it. There are some examples of Arduino G-code interpreters out there already which will save time if you can adapt one. If g-code is used to program the lathe, then it would make sense to write the G-code on a PC, test it on one of the emulators, and then copy it on to an SD-Card for transfer to the Arduino Then the human interface part of the Arduino program can be simplified. The Arduino has library and hardware for SD Cards.

Stepper motor controllers don't have any way of managing a Dremel-type tool, but that's not a problem. Suitable controllers are available. It's another control pin or two: you're creeping up to the 20 limit. Again not an issue, the Mega has a lot more pins if needs must.

Dave

SillyOldDuffer11/07/2018 09:24:42
3381 forum posts
664 photos

Whoops, in a post about G-Code with an Arduino, I forgot to mention grbl.

Thinking about G-code last night, I wondered if it might be an over-complication in this case? G-code is a simple language for controlling the movements of a CNC machine. The machine could be a lathe, mill, robot, machine centre or whatever. One benefit is that programmers don't have to learn a new language for each and every machine. Another is that, with care, the same program can be used to make the same object on different machines. Also, emulators and other tools are available that allow the tool path to be tested off-line, reducing the risk of breaking a real machine. There are books, manuals and web tutorials that explain the syntax. Not all of this is useful on a small private project.

G-code might be overkill on a home-made helical lathe with a deliberately limited repertoire. The alternative is to code the Arduino to move the motors directly using an instruction set defined by yourself; the program could be much simpler than a proper G-code implementation.

One of the nice things about programming is that G-Gode vs home-made can coexist or you can change horses mid-stream. The lathe, stepper motors, power supply and controllers don't change, only the way you program the Arduino. It's very flexible.

Dave

Edited By SillyOldDuffer on 11/07/2018 09:26:33

JasonB11/07/2018 10:28:49
avatar
Moderator
13657 forum posts
1269 photos

One other feature you will want to include is for multi-start "threads" as being limited to smaller cutters you can get a longer helix by using several of them.

Using your 1/4" dia cutter as an example shown as the red profile on the right on 1" dia stock these are the results using 1, 2, 4 and 12 starts. The lower numbers end up looking like a rounded screw thread but as the number goes up so does the pitch until you get a spiral and eventually a twist.

spiral1.jpg

spiral2.jpg

spiral4.jpg

spiral12.jpg

john constable11/07/2018 16:49:44
avatar
80 forum posts
9 photos
Posted by SillyOldDuffer on 11/07/2018 09:24:42:

Whoops, in a post about G-Code with an Arduino, I forgot to mention grbl.

Thinking about G-code last night, I wondered if it might be an over-complication in this case? G-code is a simple language for controlling the movements of a CNC machine. The machine could be a lathe, mill, robot, machine centre or whatever. One benefit is that programmers don't have to learn a new language for each and every machine. Another is that, with care, the same program can be used to make the same object on different machines. Also, emulators and other tools are available that allow the tool path to be tested off-line, reducing the risk of breaking a real machine. There are books, manuals and web tutorials that explain the syntax. Not all of this is useful on a small private project.

G-code might be overkill on a home-made helical lathe with a deliberately limited repertoire. The alternative is to code the Arduino to move the motors directly using an instruction set defined by yourself; the program could be much simpler than a proper G-code implementation.

One of the nice things about programming is that G-Gode vs home-made can coexist or you can change horses mid-stream. The lathe, stepper motors, power supply and controllers don't change, only the way you program the Arduino. It's very flexible.

Dave

Edited By SillyOldDuffer on 11/07/2018 09:26:33

Thanks, Dave. I'll consider both. I might go with g-code just because i'd like to learn the language and if I move up to more complex machines it would be good to already have that skill but I can see there are benefits from keeping it simple if that's all that is required.

john constable11/07/2018 16:55:23
avatar
80 forum posts
9 photos
Posted by JasonB on 11/07/2018 10:28:49:

One other feature you will want to include is for multi-start "threads" as being limited to smaller cutters you can get a longer helix by using several of them.

Using your 1/4" dia cutter as an example shown as the red profile on the right on 1" dia stock these are the results using 1, 2, 4 and 12 starts. The lower numbers end up looking like a rounded screw thread but as the number goes up so does the pitch until you get a spiral and eventually a twist.

spiral1.jpg

spiral2.jpg

spiral4.jpg

spiral12.jpg

Those look really good, Jason. What software did you use to model them with?

I will be doing multi-start threads and hollow threads and also variable pitch threads. All your models seem to use the same width tool for the same thickness of helix. I'll need to model with different widths.

Neil Wyatt11/07/2018 17:29:27
avatar
Moderator
14643 forum posts
624 photos
72 articles

I'd consider a subtly different approach.

Consider moving the tool in and out to create a 'cross section' of the twist, then step along, changing the start point by an appropriate amount of twist and repeat, and repeat and repeat...

john constable11/07/2018 17:34:40
avatar
80 forum posts
9 photos
Posted by Neil Wyatt on 11/07/2018 17:29:27:

I'd consider a subtly different approach.

Consider moving the tool in and out to create a 'cross section' of the twist, then step along, changing the start point by an appropriate amount of twist and repeat, and repeat and repeat...

So effectively build it up in slices as I move along the spindle?

JasonB11/07/2018 18:26:12
avatar
Moderator
13657 forum posts
1269 photos

That is what I have been talking about with a 1mm or so step over. Not sure which would be best either running along the length or round and round with teh tool going in/out.

Woud be nice if one of the CNC boffins could model a spiral like I drew and then put it into CAM and simulate the toolpath to see what way the machine prefers to cut the shape.

John, I drew it in Alibre but you should be able to do the same with Fusion 360 which is free.

This is the file for F360 if anyone is upto it

john constable11/07/2018 19:38:32
avatar
80 forum posts
9 photos
Posted by JasonB on 11/07/2018 18:26:12:

That is what I have been talking about with a 1mm or so step over. Not sure which would be best either running along the length or round and round with teh tool going in/out.

Woud be nice if one of the CNC boffins could model a spiral like I drew and then put it into CAM and simulate the toolpath to see what way the machine prefers to cut the shape.

John, I drew it in Alibre but you should be able to do the same with Fusion 360 which is free.

This is the file for F360 if anyone is upto it

I don't think either will give me a very smooth finish compared to relying on the profile of a cutter. Also, with the turning method any backlash in x and y is largely harmless but with a carving method it becomes more of an issue.

Andrew Johnston11/07/2018 20:22:12
avatar
4142 forum posts
502 photos
Posted by JasonB on 11/07/2018 18:26:12:

Woud be nice if one of the CNC boffins could model a spiral like I drew and then put it into CAM and simulate the toolpath to see what way the machine prefers to cut the shape.

I think you'd need a pretty expensive CAM package to get it to generate sensible code, at least for what is effectively a 4th axis mill. My expensive CAM package only goes up and down and round in steps, or round and round and down in steps in 4th axis mode. Neither of which is ideal for generating helices. When I needed to machine a helix:

worm setup.jpg

I wrote the G-code by hand. The basic helix code is simple:

G01 Xxx.xxx Axxx.xx Fxxxx

Slight offsets for individual passes were worked out on graph paper. I had all sorts of issues with feedrates, and ended up using inverse time feedrate, G93. The final finish is dictated by the tool rather than the code:

steel worms 1.jpg

Andrew

JasonB12/07/2018 06:57:57
avatar
Moderator
13657 forum posts
1269 photos

Thanks for the Input Andrew. So sounds like a bisic constant helix is not too difficult but the user would be limited by the profile of the available tools. Any building up of the profile with a small cutter and multiple passes would be a lot more involved.

John, have you got a link to the upto 22mm tool bits you mentioned and if I get time I'll draw up what could be done with one of them. Looks like your "Dremel" is almost a small router or laminate trimmer so should have a bit more guts.

All Topics | Latest Posts

Please login to post a reply.

Magazine Locator

Want the latest issue of Model Engineer or Model Engineers' Workshop? Use our magazine locator links to find your nearest stockist!

Find Model Engineer & Model Engineers' Workshop

Support Our Partners
Ausee.com.au
Eccentric July 5 2018
méridienne Nov 18
TRANSWAVE Converters
Sarik
Allendale Electronics
Eccentric Engineering
Shapiro
ChesterUK
Warco
emcomachinetools
Subscription Offer

Latest "For Sale" Ads
Latest "Wanted" Ads
Get In Touch!

Do you want to contact the Model Engineer and Model Engineers' Workshop team?

You can contact us by phone, mail or email about the magazines including becoming a contributor, submitting reader's letters or making queries about articles. You can also get in touch about this website, advertising or other general issues.

Click THIS LINK for full contact details.

For subscription issues please see THIS LINK.

Digital Back Issues

Social Media online

'Like' us on Facebook
Follow us on Facebook

Follow us on Twitter
 Twitter Logo

Pin us on Pinterest