Discussion on Small CNC Mill Spindle and Axis Motor Performance

My home shop experience has more or less come to the same conclusion as yours. I went from using Bridgeports, Haas toolroom mills at uni to a Taig mini mill at home after I graduated. Quite the step down... but what a learning experience! These smaller mills are far less forgiving than something thats 1,000+ lbs with lots of HP's which really taught me a lot about feeds and speeds and best practices to get the most our of a machine. When I first got my Taig I didn't think it was capable of very much and after spending about 3-4 years with it I've learned that you can do a lot with with a 10k spindle and some reasonable feedrates.

When I cut aluminum on that machine I'm usually doing MRR's of around 0.5-0.8 cu in/min, which isn't a lot, but its good enough for a hobbyist with an 80lb machine. I'm usually using a 3/8 or 1/4 roughing end mill, around 5-9krpm, and feed rates of 20-30ipm. Yeah, it doesn't cut very quickly but it will hold <0.003in all day long and give a nice surface finish with a descent high flute end mill at 10krpm for a finishing pass.

I've even been able to cut 303 stainless which isn't quite as easy. That involves lower RPMs obviously and bumping up the chip load to prevent work hardening. That's when rigidity really starts to be a problem.
 
I have just started the rebuild of my 12 yr old G0704 CNC conversion spindle for the umteenth time. I’m almost ready to pull the trigger on one of these spindles. https://www.cncdepot.net/product-page/fm-series-spindles. They really nice and about 2/3rds the weight of the 3ph/belt drive G0704 head conversion, with a PDB. These use air ISO BT30 tool holders, 12k rpms @ 3hp. they just fly through metal. Check outClough42 youtube channel on his G0704 CNC conversion.
I have probably spend this much over the life on my G0704 project.
Just thinking.
CH
 
I will give some background info into my spindle motor design and post more pictures/videos as I assemble it on the mill. I can't take credit for the idea as I copied the German fellow referred to earlier in this thread who copied the fadal belt actuator design. My goals were to increase the maximum rpm to at least 7500rpm and still have enough torque in the low end (500-2000rpm) for machining steels. Rigid tapping was never a design requirement for me but was a "could be nice to have" feature. I have 2 belt ratios utilizing J6 poly V belts; low gear is achieved through a 1:2 belt ratio (150-3000rpm) and high gear is achieved through a 4:3 belt ratio (3000-8000rpm)

The selected motor is an Adlee 2.2kW BLDC motor controlled by 0-10V analog. It's a standard 130 mm frame motor which is critical for packaging the entire system. Here are some key motor specs:
Motor Weight: 23.6 lb
Drive Input: 220V 1ph (18A max)
Motor Input: 220V 3ph (9A max)
Motor RPM Range: 300-6000 rpm
Continuous Torque @6000rpm: 3.7 Nm
Peak Torque @6000rpm: 7.2 Nm

Here's what this means in terms of my belt ratios.

Low Gear (150-3000rpm):
Continuous Torque: 7.2 Nm
Peak Torque: 14.4 Nm

High Gear (3000-8000rpm):
Continuous Torque: 2.8 Nm
Peak Torque: 5.4 Nm

I had originally planned on using a 1.8kW servo motor from DMM-tech. The servo definitely outperforms the BLDC motor in terms of torque in the lower 60% of the motors rpm range, however, the BLDC motor slightly outperforms the servo in the upper 40% of the motors rpm range (most likely due to their different power rating). The BLDC was also cheaper, and proved to be much easier to integrate with my motion controller. In order to achieve 8000rpm with a typical 3000rpm servo, the belt ratio needs to be 8:3 and there simply isn't enough room on the head of the PM25/G0704 to fit this kind of ratio along with a pneumatic belt tensioner and power draw bar cylinder. Some people (*cough @macardoso cough*) have been able to source 5000rpm servos, but there is a very limited selection and they demand quite a price.

2 (1).png3.png
4 (1).png
PXL_20210410_230226893.jpg

PXL_20210411_020028463.jpg

-Adam.
 
Last edited:
Adam,

You're my new hero. Well done.

If it brightens your day at all, I think you'll be happier with the BLDC than with the DMM servo. I've seen a number of people reporting (youtube and the linuxcnc forum) that the DMM's have very noisy encoder outputs, and aren't doing very well with 0-10v input. Step & direction - fine, no issues. But not as great with analog input, especially in torque mode.

Nothing against DMM - I just installed four of them on a plasma. But I'm not convinced they're the best thing around for a spindle motor.

You didn't mention what control you're using, but in either case (servo vs. BLDC) you can fit an encoder direct to the spindle and send that signal to the control. No need for a servo, and no fiddling with interpolating the encoder count to belt ratio.

Down the road you can always drive that BLDC with a servo drive. Think of that BLDC as a servo with halls but no incremental encoder. If you replace the Halls with a commutation encoder (i.e. CUI Devices) you can drive it with any of the agnostic servo drives (Copley Xenus, Allen Bradley, etc.).

The nice thing about using a higher-quality (or perhaps more feature-rich) servo drive than the DMM is that the encoder outputs are clean, and they have internal scaling. Plus user-programmable inputs. Think about having the same signal that changes your belt drive triggering a different encoder output ratio being sent from the drive to your control. No scaling needed in the control.

The only fly in the ointment is that you still need a spindle index trigger, and if you've got any belt slip you're back to needing a direct spindle encoder.

And some of the servo drives have analog outputs - imagine using the actual spindle load to manage the cutting feedrate...

In fact, I've got a 130mm 2.2kw BLDC sitting on my bench about to get reinstalled on my mill. It's probably the same thing you have, but about 10 years older. And a Copley Xenus XSL-230-40 drives it just fine, both in velocity mode and as a positioning servo. That's about the only single-phase drive I've seen capable of 20+ amps continuous (besides some of the ancient AMC 'dumb' PWM drives).

Have fun with your awesome belt system, and if your drive blows up or you want spindle positioning, let me know and we'll see about finding you a 'Macardoso-worthy' spindle drive.

-Ralph

20200125_124743.jpg
 
Last edited:
Don't praise me yet, I haven't even proven that everything works!

I'm running Mach4 and Pokeys57CNC. I've heard some of the horrors of running DMM servos with analog output. I've also heard of issues where people are constantly faulting the servo in step/dir mode when it gets overdriven which seems incredibly annoying for a spindle motor.

Fitting a commutation encoder and running the BLDC with a servo drive is an interesting idea that I never considered. I know down the road I'll probably implement some sort of feedback. During the design phase, I thought ahead and made a recess in the bottom of the spindle pulley so that I could fit an encoder wheel and an old posic encoder that I have sitting around from work; this is not shown in any of the pictures I posted above. I was hoping to experiment with that sometime in the future - I would need to buy a code wheel though https://www.posic.com/EN/codewheel-tpcd07-180.html. Pokeys has an ultra-fast encoder input and should handle the posic just fine. A servo drive with programmable inputs/outputs seems pretty appealing but I would be worried about belt slip (since I can't run timing belts) and not having any feedback from the spindle itself.

It's going to be fun trying to automate everything in Mach. Currently, I have 2 speed ranges configured, and the range needs to be manually selected (better than physically changing the belts but not good enough in my books). I'm working on figuring out a solution where I can input a commanded spindle RPM and the correct belt engages/RPM achieved. From my initial digging, it looks like this will require changes to the core code that calculates analog output voltage.

What are the master plans for that BLDC on your bench? I assume you'll be running a timing belt?

-Adam.
 
Last edited:
I have just started the rebuild of my 12 yr old G0704 CNC conversion spindle for the umteenth time. I’m almost ready to pull the trigger on one of these spindles. https://www.cncdepot.net/product-page/fm-series-spindles. They really nice and about 2/3rds the weight of the 3ph/belt drive G0704 head conversion, with a PDB. These use air ISO BT30 tool holders, 12k rpms @ 3hp. they just fly through metal. Check outClough42 youtube channel on his G0704 CNC conversion.
I have probably spend this much over the life on my G0704 project.
Just thinking.
CH

I've eyed those up as one of the only small, ATC ready spindles out there. I wonder if it has any low end torque for steel or larger tools. Drilling for example uses quite a bit of torque at lower speeds. I see they have the 12k rpm 4 pole motor, but do not have torque/speed curves for any of the motors. Just curious because this thing looks sweet!
 
Adam,

You're my new hero. Well done.

If it brightens your day at all, I think you'll be happier with the BLDC than with the DMM servo. I've seen a number of people reporting (youtube and the linuxcnc forum) that the DMM's have very noisy encoder outputs, and aren't doing very well with 0-10v input. Step & direction - fine, no issues. But not as great with analog input, especially in torque mode.

Nothing against DMM - I just installed four of them on a plasma. But I'm not convinced they're the best thing around for a spindle motor.

You didn't mention what control you're using, but in either case (servo vs. BLDC) you can fit an encoder direct to the spindle and send that signal to the control. No need for a servo, and no fiddling with interpolating the encoder count to belt ratio.

Down the road you can always drive that BLDC with a servo drive. Think of that BLDC as a servo with halls but no incremental encoder. If you replace the Halls with a commutation encoder (i.e. CUI Devices) you can drive it with any of the agnostic servo drives (Copley Xenus, Allen Bradley, etc.).

The nice thing about using a higher-quality (or perhaps more feature-rich) servo drive than the DMM is that the encoder outputs are clean, and they have internal scaling. Plus user-programmable inputs. Think about having the same signal that changes your belt drive triggering a different encoder output ratio being sent from the drive to your control. No scaling needed in the control.

The only fly in the ointment is that you still need a spindle index trigger, and if you've got any belt slip you're back to needing a direct spindle encoder.

And some of the servo drives have analog outputs - imagine using the actual spindle load to manage the cutting feedrate...

In fact, I've got a 130mm 2.2kw BLDC sitting on my bench about to get reinstalled on my mill. It's probably the same thing you have, but about 10 years older. And a Copley Xenus XSL-230-40 drives it just fine, both in velocity mode and as a positioning servo. That's about the only single-phase drive I've seen capable of 20+ amps continuous (besides some of the ancient AMC 'dumb' PWM drives).

Have fun with your awesome belt system, and if your drive blows up or you want spindle positioning, let me know and we'll see about finding you a 'Macardoso-worthy' spindle drive.

-Ralph

View attachment 362662
Tkalxx shared a picture of this with me and I knew you guys would love it. If it works well, I could see copying this design at some point down the road!.

I haven't heard of problems with DMM before. Not surprising, but unfortunate. I'd honestly like to keep seeing them do well. Handling noise in an industrial environment is a tough problem. Not to mention that servos have the worst of both worlds: low voltage, highly sensitive encoder signals, right next to high power, high voltage, high dV/dt PWM outputs to the motor. It is a recipe for trouble. I would question the installation practices of those who are having problems. Even with the nice AB stuff I get to play with, if you have a bad ground or shield/case/subpanel/enclosure bonding, there will be noise problems. A ton of well trained people mess this up so I bet the hobby guys do as well. Curious it is only with analog input though... makes it sound like an analog wiring shield issue. Anyways, I'm rambling.

I'd be curious to see the BLDC performance on a servo drive. BLDC and AC servos are wound differently and generate different back EMF signatures. The drives either need to sinusoidally (AC servo) or trapezoidally (BLDC) commutate the motor. The only drive I've seen give you this option is the Ultra 3000, but maybe others do too. Even then I'd suspect there would be unwanted torque ripple. Probably does not matter for us hobby guys.

Fitting a basic optical spindle index sensor into the design wouldn't be too hard but having a full spindle encoder for rigid tapping would be nice. Perhaps a hollow bore? Only problem is $$$.

Anyways, @spumco and I are servo nerds, so if you ever get the bug, hit us up!
 
Time for me to jump in with some thoughts and personal experiences.

First DMM servos. I have installed a total of 6 of their 1.8KW units (4 on my lathe, and 2 on another machine) and have operated them in both step & direction and analog torque mode. Under no condition have I noted any encoder noise using differential quadrature inputs, rock solid. None of these installations were in a spindle application. I have heard of others having problems when attempting to use these for a spindle application, most notably, not reaching rated speed in step & direction mode, but seemed to work OK in analog torque mode.

IMHO a spindle is not a good application for an inexpensive servo or BLDC motor. There are purpose built servos deigned for spindle use, but $$$$.

I have found that a standard 3 phase induction motor works fine for spindles, and even better is a 3 phase induction motor purpose designed for spindle use. Most quality, standard NEMA frame induction motors <5hp are rated for at least 4500 RPM max, and some are rated as high as 6000 RPM (Baldor). The Fanuc 10HP spindle motor on my lathe is rated at 6000 RPM, but is a very expensive 3 phase induction motor. Any of these can be operated with a standard sensorless vector VFD and are very stable throughout the operating range with near 100% torque down to about 10 RPM.

In the case of my lathe, I use a +/- 10V analog signal to control the spindle speed via the motion controller and VFD, the speed is monitored by the spindle encoder and fed back to the motion controller. The encoder is driven by a small timing belt from the spindle. Rigid tapping can be easily accomplished by hanging an encoder on the spindle, and use electronic gearing. I have rigid tapped thousands of parts this way on my lathe. The spindle is an axis in the motion controller.

My mill is not set up for rigid tapping because I don't have a spare axis available in that motion controller, I do however have an encoder attached to the motor to give me a RPM readout on my computer screen, the speed is manually controlled via a pot on the spindle control panel.

In conclusion, I see no advantage to using a servo or BLDC motor for a spindle drive when a standard induction motor is less expensive and easier to control with inexpensive hardware.
 
In conclusion, I see no advantage to using a servo or BLDC motor for a spindle drive when a standard induction motor is less expensive and easier to control with inexpensive hardware.

I completely agree that an induction motor would be most suitable in terms of cost/complexity, but in my eyes I do see an advantage to a servo/BLDC. With the smaller benchtop mills, it gets difficult to find a suitable induction motor that is small enough to fit on the head with a powerdraw bar cylinder. Not only are they more challenging to package elegantly, they are also heavier.

There are work arounds to fit an induction motor on a PM25/G0704, like making a larger head spacer which (in my specific scenario) would push the spindle center line outside the optimal Y travels of the mill and increase the moment induced on the Z-axis dovetails. There is also the option of offsetting the motor in the X direction, however, this introduces new loads to the Z-axis and in my opinion is not an elegant solution. There are also other options for a powerdraw bar that would give you additional space - like ones that act on a lever. I think this is a big reason people who own benchtop mills and want to replace the spindle motor default to a servo or BLDC.

The very first motor I considered was a baldor induction motor, but I couldn't design a way to mount it efficiently with the additional features that I wanted. I can fit a NEMA 42/42C frame motor with the current design, but now you're limited to 1/4hp MAX? - that's no good. In addition, the BLDC +drive cost me the exact same price as a new baldor +VFD and at this point in time - straight out of the box - is no more complicated to control than a standard VFD.
 
Last edited:
Back
Top