[Enzo] wrote in to tell us about his recently completed CNC Router (translated). This is an excellent high-quality, all-aluminum build with no cut corners. The work envelope is a respectable 340 by 420 mm with 80 mm in the Z direction. Linear ball bearings make for smooth travel and lead screws with both axial and radial bearings give a solid foundation of accurate and repeatable movements.
We’ve had a bunch of CNC Router projects on Hackaday in the past, including other nicely made aluminum ones, but [Enzo] is the only one who spent just as much effort on his computer and machine control system as he did on the CNC machine itself. The computer, which is running Windows and Mach3, is an all-in-one style build that starts out with an old LCD screen from a broken laptop. Along with the reused screen, a very small ETX form factor motherboard was stuffed inside a custom made plexiglass enclosure. A Compact Flash card handles the storage requirements.
Underneath the monitor is another great looking custom made enclosure which houses the stepper motor drivers. There are 3 switches on the front panel to send main’s power out to the PC, spindle and an AUX for future use. On the back panel there are D-sub connectors for each stepper motor, the limit switches and the PC connection. Oh yeah, by the way [Enzo] designed his own bipolar motor drivers (translated) and sent the design out for fabrication. These boards use an A4989 IC and mosfets to control the motors. The schematics are on his site in case you’d like to make some yourself.
Different strokes for different folks. I have to say there is little there I care for though. I guess the table is OK.
Nice Clean Build.
Tip: Dust skirt.
Nice work Enzo!
Hi, thank you all for appreciate my work.
Spend so much cash on mechanics and use an open-loop system. Why? Such fail.
That’s kind of the point of stepper motors.
Are you suggesting that the lack of closed loop is a significant performance limitation? How are steppers limiting the capability of machines like this?
The minor limit is speed. Steppers are slow compared to servos.
The BIG limit is positional feedback. You have no feedback with steppers. You run open loop. If the stepper misses a step due to load or something, you will get out of sync and have no way of knowing it. Your tolerance due to missed steps can build up till you start ruining parts or risk running the machine into something.
You know those 3D printer videos on youtube where the top half of whatever they were printing is offset from the bottom, or the whole thing slants off to one side instead of having straight sides….. That’s due to not having positional feedback so you can’t correct small incremental position errors that build up.
Servos have feedback. The drawback is the drive circuitry is more complex. If you are trying to make a precision machine, it’s worth it to have servos.
Steppers don’t lose steps if you size them properly, which isn’t rocket science. Odds are most of those YT vids you’re referring to are machines with a whole bunch of mechanical flaws beyond steppers being a little too small. Couplings not tight enough, slipping belts, etc.
Also, hobby servos only have feedback on the angular position of the motor shaft. If you have slop in your leadscrew/belt/whatever, the servo won’t know that. You could spend a pile of money and bolt servos on to one of those flaky machines, and the best you’d get is that the machine would fault out partway through the print. Making it stop faulting would require you to fix the underlying problem, at which point you could get perfectly good results from properly-sized steppers.
You can get servo systems that use glass scales mounted to the machine ways to correct for things like leadscrew pitch deviation and thermal expansion, but we’re talking stuff you find on industrial machining centers that cost six figures.
A properly designed stepper system should not loose steps. A major problem with the low end stepper drives used in 3D printers is that they do not have anti resonance capability. I use only drives from geckodrives that do have anti resonance. The steppers operate as smooth and almost as fast as my servo driven systems. Gecko drives have the capability to spin a stepper greater than 2000 rpm with plenty of torque. My big gantry and lathe uses steppers while my two bench mills are servos. All run by geckodrive. They all operate just fine under Mach3.
Good stepper drives are expensive but they are much less expensive than servos. Servo system do have there own problems and not always the right answer for cnc machined built on a hobbyist budget.
Thanks for the reply. I understand the difference between closed loop servos and steppers, I was more interested in the price-performance tradeoff.
I have machines that use both – a servo driven Tree cnc mill that does 200 IPM rapids (with 180v steppers driven by the incredibly beefy control and power systems that came with the mill), and a stepper driven CNC router that is around 70 IPM max.
The router is constrained by chassis stiffness, not the open loop or max speed. Missed steps are a non-issue. I use the machine to both prototype and manufacture parts where I need a tolerance of around .002″. It does that just fine. The machine uses a gecko drive system.
As another poster pointed out here, there is a big difference between closed loop where you have a rotary encoder vs. a linear encoder. That is especially significant when the ballscrews are cheap.
In the class of machine in this build, and most builds, I don’t see where the servos justify their cost and complexity. I think the money can be better spent on more stiffness, lighter weight, better controllers/drivers, better spindle, etc.
The other consideration about missed steps is…. bigger steppers. And also more optimized acceleration curves.
Very clean build. I’ll admit I’m a little puzzled at how many builds these days still include “and here I’ll design my own stepper drivers.” The build log often eventually gets updated with “I replaced them with some cheap Chinese drives off eBay that worked much better.” It used to be that DIY drives were a lot cheaper but global trade has pretty much killed that. If you want to be a purist, then the only proper place to start is with Dave Gingery’s books on how to make a lathe with nothing but charcoal and scrap aluminum. No harm though, I’ve just arrived at a point where I’m more interested in using tools than building them.
I tell people today to buy the cheap imported drives. When I built my drives the cheap imports were not available though. I kind of like my drives better anyways. I use tools to build more tools myself a lot. It is nice to have exactly what I want. Gingery inspired me to build a lathe. He said it was impossible to build an accurate lathe out of scrap steel, so I did. I wouldn’t even call most of it particularly hard. Although getting a concentric thread on the spindle did take me three tries by hand using a die.
Yeah, the cheap drives are a kind of modern innovation. As for threading a spindle, I’m assuming you hadn’t built a leadscrew or change gears into it yet, otherwise you could have single-pointed the spindle nose in place.
No cut corners except using a rotary tool as the spindle :)
And steppers for the positioning.
For an application like this, the only thing servos are guaranteed to do more of is cost money. They’re probably not going to be much more accurate, if at all, and while they’re often faster, on a machine this size that’s of little to no real value. Plus, driving them is more complicated. You get slightly better crash detection, but this isn’t the type of machine you run lights-out anyway. You won’t see steppers on a big industrial CNC mill anymore because servo motors and drives in the kilowatt range are a lot cheaper than steppers that size, and faster. Neither applies down here.
Want to see a nice homemade motor drive? Check this one out
http://www.delorie.com/electronics/bldc/
DJ is the super hacker!
Hi, only for curiosity, in my country is very hard to find a workshop that can do precision works for (relatively cheap) hobbystic use, so I have had to renounce to some details.
However… nothing dangerous, and the aspect isn’t bad! :-)
It would be a good idea to cut corners on the aluminum also. Otherwise you’ll end up with cuts on arms when setting up workpieces.
> This is an excellent high-quality, all-aluminum build *with no cut corners*.
Doesn’t that defeat the point?
Why anyone would use Mach3 when when you can install LinuxCNC (formerly known as EMC) on the same machine is beyond me.
Because LinuxCNC isn’t that great. I use it with my laser and dread to imagine using it with my CNC.
Mach3 is well made, well supported and I can engrave with my laser 4-5x faster without it complaining about the pulse rate.
I use LinuxCNC with my Tormach and it’s been great. Had it going for five years, have added a lot to it, and it’s never given me a single hiccup. Mach has a nice UI but I found it to be relatively buggy. A program crash has new meaning when it results in a 2″ shell mill meeting a hardened vise jaw.
Snob, Mach and nice UI – nice joke. All those blinging buttons look like gambling machine to me (it might have changed in past few years, never bothered to check). Awful looks was one of the many reasons I started using LinuxCNC.
Phil, I bet 34 eur that your machine is using software step signal generation.
I have never understood, why people expect good performance of the machine, when they do not use proper hardware (I mean FPGA board to do hardware step generation and provide additional gpio pins, because number of pins on lpt port is very low).
I may not know, where is Mach well-built, but I know that it definitely is not capable of doing kinematics calculations of any kind, not to mention that it is so far from actually controlling the machine, on real time, especially with software step generation, when no external motion controls are used – that might not be important for small hobby machine, but Snob gave a good example.
Or take a plasma machine, accelerate it to 30 m/min and then wait for the OS to freeze for half-second to find the torch 250 mm from where it would supposed to be. No, thanks.
Mach’s UI has better easy customization capabilities and the way they do wizards is better than LinuxCNC traditionally supported them with things like NGCGui. You can call it a slot machine but your personal taste aside the market has voted for Mach in a big way. I can’t believe we’re still using Axis after all these years. Mach gives you far more information on the screen (yes, it can start to look like MySpace) in a way that’s mostly easier to read, and it’s a lot easier to customize. LinuxCNC lets you go farther but requires far more skill. I just want probing screens like Mach has.
I think beyond that it is inferior because it’s not running on a realtime kernel, and that leads to weird glitches. So my $10k machine runs on LinuxCNC. I don’t use any FPGAs because they’re not needed. My machine takes 10k steps/inch and max rapid is 90 inches per minute, so I only need 15k steps/second, and software will reliably do 25k on my PC. Faster rapids would require bigger motors, etc., just not worth it. FPGA boards start to matter when you’re running servos or much higher step rates.
You might not know it but Mach3 and LinuxCNC are both forks of the same code written by NIST. LinuxCNC has had a lot more effort put into it over the years too. Now what were you saying again about the software? BTW the software not warning you that you are exceeding your computer’s real time capabilities is not really a desirable feature either. I just figured you should know that too.
The derp is strong in this one.
@The Snob Who doesn’t have a real time kernel? There are two real time extensions for Linux, RTAI, and Xenomai, LinuxCNC supports both too. Or did you mean Windows? Because honestly I’m not entirely clear about exactly what Art did to fake that crap. He sure did not modify Windows kernel though. Something about braining the system and running it in Ring zero I’ve heard. Sounds awfully sketchy to me.
Now as far as whoever the market has voted for how do you know how many LinuxCNC installs there are? It is not like there are license serial numbers to count, or anything like that. Heck I could be slinging LinuxCNC CDs out my back door and you’d have no way of knowing about it. So I’m genuinely curious where you are getting your data from.
Stepper motors are fine in this application. The mechanicals will be an issue before positioning will be. I tried to find a part number for the screws and couplings on the website, if they really are lead screws instead of fairly expensive zero backlash ballscrews and the couplings aren’t zero backlash this machine will have backlash issues that will account for more error then the steppers.