Controlling speed ratio for two roating shafts

I need to get pointers on what to read/books/strategy/sketches to be able to control with fairly good precision the speed ratio between on rotating cutter and a gear blank to cut teeth on it as a gear.

Detail: The cutter turns for example at 100 RPM and if a want to cut a gear to 57 teeth by the "hobbing" method (the cutter in the milling machine spindle and the gear blank on the milling table advancing towards the cutter). So the spindle in this case must turn 57 times faster that the gear. It then will cut 57 tooth gear. Every 57 turns of the cutter, the gear will make one turn and they must coincide exactly.

What I have done: I bought Arduino UNO and since I had some previous experience with C language did several sketches and seems that I can manage the creation of a sketch to do that if I can come up with a STRATEGY for the sketch.

TODAY: Now more that six month little familiar with how the stepper motor can be controlled based on a optical slotted wheel on the cutter shaft; but Y do not see a way to smoothly make the stepper motor advance at a specific rate without BIG unreasonable moves from the stepper motor driver (1.8 degree accuracy). I feel it will be jerking while the cutter is going smooth.

I would really appreciate if someone could gives me pointers where to read more or people that have done that so I can see their strategy to allow me to code my own version.
Am I in the correct topic here?
Thanks

It sounds like something to solve mechanically. Leadscrews spring to mind. You could also look at micro stepping, but I'm not convinced yet that you'll need it.

Exactly why a stepper motor is WRONG for what you are doing!

It is certainly possible to do what you are trying to do with a stepper. In fact, a stepper is preferred because you want accuracy of mesh. You will probably want to use a timing belt/pulley system to get the correct gearing on the gear holder.

You haven't mentioned what machine you have. And what materials you want to make the gears out of. That will make a big difference, since you will need a lot more rigidity if cutting low alloy steel vs brass vs POM.
And quality gear hobs are expensive. If high accuracy is not critical, one could do free hobbing.

I presume you don't want to use a dividing head?

Here is a video which might help:

Yes, it is being done mechanically too. But much more easy and elegant using Arduino.
Al least two people have done it in YouTube and giving the free. Download of the exe file. I want to code my own in C, but have not been able to access their strategy.
Thanks

Thanks, I am aware of all those factors since I was a trainined machinist/millwright as younger man while going or engineering degree.
Maybe the micros stepping is an area for me to look up. The gearing from the stepper motor to the gear driver is a variable I could control and bring down from my 3 to 1 reduction for an angle of accuracy of o.6 degrees. Obviously 200 to 15 reduction would me less jerking.
Where can I read about microstepping? Any books or websites, or Arduino members using it?
Thanks for you time and support.
Wilson. (Now 83, which is not very helpful)

1 Like

Forgot to answer:
I wanted to use my lathe spindle, and Arduino run shaft on carriage holding the gear blanks.
Have done some work gears by freewheeling. Not bad outcomes.

But I plan to cut straight spur gears on aluminum to start. Basically what I need is a way/strategy to make the stepper motor run in very small increments steps for a smooth tooth cutting. I can handle the creation of a sketch in C for that.
Wilson

Paul: other people have done it and the industrial CNC machines almost sure do that.
I need to make 1.8 degree stepper jump to go like 0.005 degrees and do not want to do it mecanically with a stepper/gear ratio lik 800 to 20 or so.
Thanks for your time and support. YouTube has at least two that work including free download of exe assembler software. Mi just want to code my sketch for Arduino in C to do my version.
Wilson

That is amazing, and I'm sure I could learn a thing or two from you.

I would recommend using a good quality stepper and a digital driver of the type that is used in CNC kits. I would stay away from the steppers and drivers that are commonly used with Arduino hobby-kit tutorials, since they will just not give the torque or control you need. Unless you just want to do a little trial run.

I've had good luck with steppersOnline. A lot of people highly recommend Gecko drives for the driver.
The driver will handle micro-stepping.
But with everything, no matter what the manufacturers say, there is a tradeoff with torque and ability to hold position.
In addition, you would need to keep in mind that an Uno can only output so many pulses per second using one of the stepper libraries before it maxes out. You may need a faster board, such as a Teensy.

The better quality stepper drivers will do 2 things:

  • control current accurately so you can run higher voltages
  • produce a closer to sinusoidal waveform which will improve smoothness

I expect you would not engage the hob with the blank until the full rpm is reached. Then, with a sinusoidal waveform and the mass of the blank and its rotating parts, you may not really have much jerkiness to deal with.

Out of interest, what milling machine do you have?

You may want to look at this:
https://www.trinamic.com/technology/motor-control-technology/microstepping/

They ALL use high powered servo motors!

I helped @jumps4 get a tool changing turret working which was better than a thou in accuracy but it was done by mechanical means mostly, the 1.8 degree stepper was just the input to the drive mechanism.

Even with a maximal amount of microstepping, I can't see how you can get the precision you're looking for with a stepper alone.

Thanks wild bill, you seem to make sense but other people has done it in YouTube, just that I have not been able to find their strategy

Mechanically I know how to do it and have done it years ago(50); with Arduino I am struggling.
Thanks

I agree, my problem is the strategy for a reasonable/working accuracy.
Thanks

Do you have a link to an example?

Superb explanation, thanks. Will look carefully at your suggestions for implementation. Right now I have a Pederson horizontal but planning to use the 14” lathe spindle for cutter driver.
I was working on a mechanical lathe contraption by an Australian in one of funny’s model makers magazines.
Then saw one with Arduino in YouTube (AndysMachines). This man is a genius!
But he gave the exe file free download which I have loaded to my Arduino but not finished yet the mechanical part.
I just wanted to code in C my own sketch, but have not yet come up with a workable strategy for my sketch. He did not share the strategy he used to write his issuing assembler language. I am too old to learn assembler and feel I can do it in C.
Thanks for your input,
Wilson

1 Like

:+1:

BTW, there was a rotary Indexer build done some time ago. I can't find all the relevant details, but the person who did it used a program by someone called Liming. I think it was published in one of the machining magazines.

You may be able to find some inspiration in it:

I watched the Andysmachines videos - very impressive.

He doesn't seem to have any problems with smooth rotation of the hobbing spindle though, so it may be a non-issue. He doesn't appear to be using micro stepping and the pulleys for the drive belt only provide 3:1 for 600 steps per revolution.

WildBill: thanks for your time and interest.
Yes, he does but when I do a spread sheet in excel and “see” the significant angular jumps it gives me chills.
I thought that maybe increasing his 3:1 ratio to 30:1 with double belting and adding a “big” mass to the gear shaft may help the case.
Alternatively, micro-stepping 1:32 maybe better or easier.
Bought stepper motor and driver but now not at home but in Canada selling my property there.
When back to Texas I would have to see if stepper and driver can do micro.
I should not be working and use his free executable file already loaded on one of my Arduino Uno, but my nature is asking to code my own in C which I have used 30 years ago.
I have never dealt with steppers, it signals, their drivers, optical sensors etc. so the learning curve is very steep specially at an age when you study a paragraph and you forget the meaning while reading the second.
But lots of fun coding sketches and asking the brain to develop a practical working strategy
I try to utilize excel for simple examples and observe the practicality by comparing “actual movements” with precision calculated desired.
Again, thanks for your time and ideas.
Wilson

CNCNotes: thanks for sharing. I am on a limited internet at a rural area for a few more weeks, but I will definitely be looking at all details of the article.
I was thinking to code in C one like that and I am sure I can manage the gist/sketch for that.
What I have been getting is ideas for micro stepping (which will be a steep learning curve for me) but it seems to offer the opportunity of smoother steeper rotation May also with added mass to gear arbor for inertia smoothing.
Thanks for you time an excellent suggestion.
Wilson

Tricky decision - his system works and is configurable to support different setups. I like the feature that warns you (briefly) that the hobbing spindle isn't yet synced up.

However, there's always the temptation to tweak the code and you would have to learn assembler to change his. It very rarely comes up here - everything is C/C++, so if you were looking for help, there are few regulars here (if any) who could provide it. On the other hand, if you do roll your own, plenty of folks here can assist.

Microstepping is pretty simple - generally you configure the driver (dip switches or logic inputs) and it takes care of it.