Computer numeric control (CNC) is a computer-based system used to control tools such as milling machines, lathes, routers, lasers, punches, water jets, and 3D printers. For a long time, CNC equipment remained constrained to the industrial shop. With the recent proliferation of personal computers, however, CNC has managed to move into the home environment with an ever-increasing number of do-it-yourself (DIY) enthusiasts and hobbyists building their own CNC equipment. The reason this technology enjoys such a large acceptance is because it has the accuracy and repeatability that only a computer-controlled system can offer. In this article, I detail an implementation for a set of electronics that can be used to control pretty much any small or midsized CNC machine.
The CNC motherboard has four stepper driver modules plugged into the respective slots. (Source: Texas Instruments)
The CNC motherboard
I call this implementation the CNC motherboard, as it revolves around a backplane that accepts motor driver modules to drive the CNC machine axes. In this incarnation, the CNC motherboard can support up to four axes, which is more than enough for the great majority of CNC equipment topologies being built today. The motor driver modules typically are based on bipolar stepper motor drivers with a step/direction interface. In essence, any motor topology can be used, as long as it works by moving according to STEP commands. Since the number of stepper motor power stages with an inherent step/direction interface is always growing, we see the stepper motor ruling the great majority of DIY CNC equipment implementations.
The control of these four axes is supported by a series of blocks. The brain of a CNC machine is a computer called the CNC controller. It is in charge of sending a series of STEP pulses and setting the ENABLE and DIR control lines to the motor driver modules according to a command better known as G code. A G code command can be anything like "move in a line to coordinates X,Y,Z at speed F," "move in a curve," "drill a hole," and so forth. The CNC controller interprets this command and generates the respective combination of STEP/DIR pulses, and at the right frequency, to achieve the required motion.
The CNC controller for our DIY CNC machine can be any personal computer (PC) with a parallel port. Although PCs are no longer being fabricated with parallel ports, adding this resource in the form of an expansion card is very simple. The PC connects to the CNC motherboard through this parallel port, granting us a total of 12 output functions and five inputs.
Before we start distributing the control signals in and out of the different control functions, we add an isolation block for two main reasons. First, this isolation stage protects the computer in case something goes very wrong. Since the motor drivers can be employing high voltages that can hurt the computer, it is best to make sure the computer side cannot come in contact with this higher form of energy. Second, the isolation helps to decrease the control line's noise caused by ground bouncing.
The control of four motor modules claims nine control signals: one ENABLE, which will be shared among the four modules; one STEP; and one DIR per module. The remaining outputs are distributed as follows. Two are used to control two 250V AC/30A relays. The other output runs a watchdog protection block, often referred to as the charge pump.
Jose, this is an interesting set up. The power and low cost of microcontrollers has allowed a wide range of very interesting hobbyist projects that would be very difficult in the past.
Is there more detail about this controller on the TI site. I know some guys who would be interested.
I couldn't find a link about where I can get one. I want to use that CNC setup for some home projects (CNC mill and lathe).
On another note, I see it uses a parallel port, serial communication. That is becoming a problem with CNC setups these days. Most new desktop computers, laptops, micro-computers, and the like, do not have parallel ports onboard. In many cases, a parallel port card would need to be installed. And hopefully, the system has an expansion slot available.
What most people do is buy old, or surplus, computers from somewhere. My current CNC mill runs off of a PC I found in the garbage many years ago (Celeron 700MHz Compaq desktop). I think it is time to change how these CNC drive systems work. USB is the only way to go. So, built in support for USB to serial in a good stop-gap solution.
A friend who's an engineer & runs a small prototype shop tells me that none of the serial options can function quickly enough to handle the 'feedback loop' in starting, stopping, & moving the tool. (He's rebuilding a German 5 axis mill & currently dealing with that issue.)
I'd like a source for this board too. I've considered doing somthing like this myself so I can let my lathe do the work accurately while I drink coffee. My lathe did not come with change gears to enable it to cut threads. After spending lote of hundreds of dollars, I still can't cut metric! On the internet there is a website concerned with "electronic lead screw" kits, a single stepper controller to cut any pitch (coordinated lead screw movement). So many things to do!
Please note that parallel is not serial, but 8 bits wide, and bidirectional. I use old machines running under DOS and one would be amazed how smoking hot these machines really run as far as pure processing horsepower.
USB, while a high through put, are bogged down by multitasking. For example you can buy a USB to parallel converter to run an older printer. But to run high speed on this bus, you can't. Connect a scope and repeatedly toggle one bit. Very poor performance overall.
Ahh, yes. About 20 years ago my son and I built a robot using the stepper motors, power supply, and motor driver board from big industrial-grade daisywheel printer. We discarded the logic board and designed and built a simple interface board to interface the motor drivers to..a parallel port.
We used an eight-bit control word, where three bits allowed us to control up to eight motors (two implemented), four bits were used to control individual motor phases, and one bit indicated whether the driver should be at full power (to step) or half-power (to hold position). This design, of course, permitted forward and reverse motion, and half-stepping by energizing two phases at once.
Thanks for your comments and taking the time to read this article! In the upcoming weeks I will be finalizing the application note which will contain details such as schematics and source files. I am also studying different venues to having these boards available for purchasing on some sort of an eStore.
With regards to the USB, I will soon be posting a completely different CNC solution which revolves around USB. It is the one I am using on my 3D printer. However, the truth is as perfect as this solution is for a 3D printer, I would not use it with a router, mill, lathe, plasma CNC table. Any of the later, operate much better when using a CNC controller such as MACH3 and USB solutions have not been able to pair up with their parallel counterpart. In my experience, adding a PCI parallel port to any PC out there works perfectly fine. I have done it with 3 completely different computers (the ones I use for my CNC Mill, CNC Plasma and CNC Router) and as of today have had no problems.
Let me know if there is anything else I can help you with!
When you get your design done, Hackaday.com would probably post it to a very wide audience. You imply this is your design and not a TI product.
It is beefier than most of the open-source units out there (mainly for 3d printers).
You may find a good demand for this. One possible eStore is adafruit.com or the Maker Store (make magazine), esp if you open this up as an open-source or offer it in kit form.
Goto hackerspaces.org and find a hacker space near you - take it by for an intro and show&tell. You might even sell the demo unit on the spot!
An analysis of what’s needed to implement Design for Disassembly and Design for Recycling results in eight strategies engineers can use to design an intentional end-of-life stage into their products.
Government regulations, coupled with growing consumer sensitivity about data and identity theft, require that data storage organizations demonstrate proper protection and due diligence in protecting sensitive information stored inside datacenter enclosures.
When a crane doesn't have a monitoring system, crane owners schedule service every six months and simply scrap the parts they replace, even if a part has had little use and doesn't need replacing. This can cost thousands.
From Dell / Intel® New Paradigms in Design Work Scott Hamilton, vertical market strategist for Dell Precision workstations, 5/2/2013 3
Early in my career, I worked as a draftsman and remember the days of drawing on vellum with numbered pencils and Mylar with plastic lead. This was a fun experience in the sense that I ...
I've been using workstations for more than 10 years and love finding ways to get more performance from my system. With demanding professional applications that require more power each ...
A lasting memory from my first job as an engineer in an auto assembly plant is standing on hard concrete at six in the morning, vending-machine coffee clutched in hand, listening to ...
A quick look into the merger of two powerhouse 3D printing OEMs and the new leader in rapid prototyping solutions, Stratasys. The industrial revolution is now led by 3D printing and engineers are given the opportunity to fully maximize their design capabilities, reduce their time-to-market and functionally test prototypes cheaper, faster and easier. Bruce Bradshaw, Director of Marketing in North America, will explore the large product offering and variety of materials that will help CAD designers articulate their product design with actual, physical prototypes. This broadcast will dive deep into technical information including application specific stories from real world customers and their experiences with 3D printing. 3D Printing is
To save this item to your list of favorite Design News content so you can find it later in your Profile page, click the "Save It" button next to the item.
If you found this interesting or useful, please use the links to the services below to share it with other readers. You will need a free account with each service to share an item via that service.