One of the first things I did upon getting a desktop CNC machine was to research software that would allow me to route and drill PCB’s (printed circuit boards) without the mess of chemicals.
Printed circuit boards don’t necessarily have to be expensive to buy from a good board house. In fact I’ve seen them as low as $30-$40 with silk screen and solder mask. The problem with many of the low price boards is lead time. At the very least you’re talking a couple of days.
But what if you want it NOW? Or at least the same day? A time honored method has been to start with a copper clad board, apply “resist” in the pattern of your circuit, put it in a chemical bath to eat away the unwanted copper, then drill holes for components, vias, etc.
There’s absolutely nothing wrong with that method. You can make some really good boards this way, with fine detail. There are different methods of getting your circuit pattern onto the board, such as pen, tape, photo resist, etc.
If you have access to a small CNC router, you can avoid the hassle and mess, and also precision drill and contour your board to any shape you want. You’ll have a new set of hassles of course But that’s all part of the fun, right?
The software I’m about to describe assumes that you will be able to produce gerber files. That may well be a severe limitation for many. Gerber files are generated by PCB design software, and not everyone has access to that. So this method generally won’t work well if you have hand drawn circuits, patterns cut from books or magazines, etc. Sorry. But this will give you a chance to learn something new. There are no doubt some free/low cost software packages to be found with good enough quality for simple projects. That’s a topic for another day.
So after much digging around, playing with different software to route boards on my CNC machine, I ended up choosing a program called PHCNC.
Pictures of the PHCNC software running from http://www.accuratecnc.com/software.html
I have no affiliation with the company that makes this software, other than being a customer. During my research, I found that accuratecnc and another company, LKPF (http://www.lpkfusa.com/Software/ccam.htm) both make CNC machines specifically for isolation routing. I’ve seen both praised for the high quality boards they produce. However when it comes to the software, especially if you want to run it on your own CNC machine, accuratecnc’s PHCNC is by far easier to use. In fact, LKPF’s software won’t even allow you to generate standard g-code for your CNC machine. You’d have to jump through some hoops just to get the software, then jump though some more hoops to be able to use it on your machine.
PHCNC is a little pricey, but not that bad. It’s basically $400 or $500 (for the pro version). You have to attach a dongle to use it. The dongle appears to make the software think one of their machines is connected, even though it’s your own CNC. Actually I’m not sure if it can directly control your CNC machine at all, but rather you’d use your favorite CNC control software (like Mach3 in my case), and load the file that PHCNC produces.
I tried a couple of other programs too, including CopperCAM. At first, CopperCAM seemed great. Simple interface, fairly straightforward approach. But, I soon ran into problems. The biggest one was in loading gerber apertures from gerber files. In short, the board designs might load in, and if the board was very complicated at all, it would more than likely be messed up due to the poor support for the ability to load in custom pad shapes and other features. When I say custom, I’m not even talking fancy. Rectangular pads with rounded corners for instance were problematic. So after trying many options, I finally decided it was worth the investment to get something that would just work. So far, after making a few boards, it’s working pretty well.
AccurateCNC has an interesting link on their site describing the aperture problems. I ran across this early on, and kind of dismissed it for awhile while I tried other software. However I found myself paying more attention to this after much frustration.
So what do you get when you make your own board? Well, they’re not “pretty” compared to those nice boards you get from PCB fabs, but they’re functional, and you can have them same day, which is sometimes quite advantageous. In a future article I’ll review a few PCB fab places I’ve used. Some of them are quite affordable if you don’t want to make a big mess with chemicals or have a CNC machine with proper software tools to make your own, or can simply afford to wait. If you plan well, you’ll have plenty of other stuff to work on while waiting impatiently for the UPS truck to show up
I vividly remember seeing a 3D printer on a TV news report for the first time. The story was about a 3D printer made by 3D Systems. The short report showed a model of a skull rising from a vat of clear liquid. It was not apparent at the time that it took a long time to make that model, since all you saw was the finished part rising from the goop. That false impression of speed made it all the more impressive. That particular type of machine used a clear resin that was cured by an ultraviolet laser which traced out each layer of the object.
Jump to present day, and 3D printers are popping up all over the place. It’s not quite “for everyone” yet, but it’s getting there. Prices have come down to sub $1000 for one that works right out of the box, and there is a huge community of users now, as well as a large source of models and modeling programs.
One thing common with the early printers is the layer by layer construction. Whether it’s liquid resin, powdered material, or plastic filament, it’s all put down layer by layer until the model is complete.
The development and refinement of filament based printers is certainly of enormous significance for the expansion of the base of 3D printers. These machines are generally known as “FDM” (Fused Deposition Modeling) printers and work by melting plastic, extruding it (pushing it really) through a thin nozzle, and fusing the layers together as the model is being built. Materials are cheap, the technology is simple, and the resulting models are functional and have decent strength. They are not the prettiest, because of the fairly coarse patterns in the material when compared to other technologies, but they are certainly quite good for the relative low cost and simplicity.
After looking at the options, and deciding that I’d like to have something I could use to make good prints without a lot of fiddling around, I chose to buy an UP! printer from pp3dp.com about a year ago.
Sold directly from China at first, this printer didn’t take long to get a good reputation as a good performer, though it was a bit more pricey than a kit like one of the makerbot models at the time. The software has a decent number of options to control print speed and quality, but not so many that you can’t determine some pretty good settings without much fuss. It had a few rough spots in the design that seemed silly, like holding the extruder assembly onto the carriage with just one screw, and some of the parts in the machine are 3D printed, which I think 3D printer makers regard as “cool” because it can print parts for itself. But all in all, it’s been a solid little printer, with good quality, support, and community.
I love being able to have an idea and hold a real object that I made the same day. It opens up so many possibilities for prototyping and design verification before expensive tools are made for production parts. I’ll continue to post more on this subject, including some tips and fun projects. If you’ve been thinking about getting into this technology, I’d certainly encourage it. It’s a lot of fun.
Having just looked at the physical CNC controller in the previous post, let’s have a quick look at some CNC control software. This software has the job of reading the CNC codes (“g-codes”), interpreting that data, and sending the appropriate signals to the CNC controller.
The development of CNC control programs that run on a PC have a long history, and there are many flavors to choose from. Some run on Linux, some on Windows, many multi-platform versions that look the same to the user no matter what the underlying operating system is.
In a larger, industrial strength CNC machine, the CNC control software may well be proprietary, controlled by a fancy control panel. In the case of small machines like this one, the PC based software control works quite well, though your mileage may vary. Once you get past the initial setup stage, where you have to change options to match the specific CNC machine you have, it’s generally pretty smooth sailing. Many CNC machine makers provide the detailed instructions you need to set it up and get running. The instructions that came with this machine were adequate for basic operation, but I soon found out that those settings were not optimum and some of them were not consistent with well established practices and standards. So expect to have to do a little experimenting and research to get the best setup for your machine.
I have chosen to use a program called “Mach3” for my CNC machine. There are probably many other fine programs, and to be honest, I jumped into learning this program due to it’s popularity and pretty good reputation without really doing in depth research.
Here’s a screen shot of the main Mach3 window.
As you can see, it’s pretty busy, and this is only one of about a half dozen screens! It is however the main one you’ll use during operation, The position of the X, Y, Z, and 4th axis (if available on your machine) are shown, along with a graphical representation of your work table and design file, various control options, a window displaying the code, etc. There’s a lot going on here, and if you’re like me, you’ll get a certain amount of joy just watching this thing run.
There are many devices you can buy to bring some of these controls out to a physical control panel that makes this a little easier to work with and make it feel a little bit like a more professional CNC machine. Many people have built very nice custom control panels suited to their needs and preferences.