CNC Your Own PCB With This Tutorial

It is getting so easy to order a finished printed circuit board that it is tough to justify building your own. But sometimes you really need a board right now. Or maybe you need a lot of fast iterations so you can’t wait for the postal service. [Thomas Sanladerer] shows how he makes PCBs with a CNC machine and has a lot of good advice in the video below.

He starts with Eagle, although, you could use any creation package. He shows what parameters he changes to make sure the traces don’t get eaten away and how to do the CAM job to get the files required to make the boards. If you don’t use Eagle, you’ll need to infer how to do similar changes and get the same kind of output.

We’ve only heard a few people pronounce Gerber (as in Gerber file) with a soft G sound, but we still knew what he meant. We have the same problem with GIF files. However, once you have Gebers, you can join the video’s workflow about 5 minutes in.

At that point, he uses FlatCAM to convert the Gerbers to a single G-code file that integrates the paths and drill files. There were a few tricks he used to make sure all the tracks are picked up. Other tricks include leveling a spoil board by just milling it down and mounting different size bits. He also has ideas on aligning the Z axis.

He first did a mock-up with some MDF scrap. The final boards, of course, use copper clad FR-4. Interestingly, the mock-up served as a position guide for the board. Even if you didn’t do an entire mockup, milling the profile of the board might be a good idea. Naturally, the first attempt wasn’t great and he aborted it. He simplified the board layout and tried again but that didn’t work well. He then switched out the engraving bit he was using for a proper end mill. That caused a bit of an edge that needed sanding, but solved most of the other problems.

It looks like for simple boards, the technique works ok, although there were some limitations. Some of the traces were the wrong width and some annuli didn’t survive the drilling. It also appears it isn’t reliable to place traces between IC pads using this milling process.

We’ve avoided some of the problems [Thomas] had by auto-levelling the FlatCAM output. We’ve also seen milling used to just remove resist followed by a traditional acid etch, which gives good results.

24 thoughts on “CNC Your Own PCB With This Tutorial

  1. I use my laser engraver to burn off spray paint masking… works well! (also etched the board in this video using Vinegar and Peroxide rather than much harsher and dangerous etchants like FeCl..

      1. Once you etch a bunch of copper with it, it’s no longer ferric chloride. Now it’s cupric chloride, which is a hazardous waste that’s illegal to put it down your drain; you must dispose of it properly.

    1. this is interesting . ta for sharing
      im wondering : if you can register the board well enough back in the laser cutter, you may be able to remove paint from the pads only leaving the paint on the traces as a poor mans solder resist

  2. For those with a Smoothieboard note you can do this directly with the board itself, using either a probe, or simply the crocodile-clip+contact method :

  3. For a single board, FR-4 is fine, but if you value your health and the life of your bits, use FR-1 or FR-2 – they’re resin or resin bonded paper, instead of fiberglass in epoxy. The glass dust is a bit nasty.

  4. I had a question about the CNC milling: I’m guessing that the bed really needs to be leveled manually, and not using an “automatic” leveling routine with a contact sensor of some kind that adjusts the z axis based on the measured offsets, since that may lead to too much variance in the depth of cut on a thin PC board. Or am I overly cautious?

    1. On CNCs you typically level your bed by machining it ( typically using a “surfacing” operation that ensures the bed is then perfectly level with the spindle/axes ).

      1. Sorry about my comment, I think I understood him comment as talking about CNC milling in general, so I answered about surfacing, but obviously that’s completely irrelevant when talking about machining PCBs, you can’t do surfacing there ( or can you ? I’d be curious to know if it’s possible or ever makes sense. Maybe if the pcb is very flat already, and the copper is pretty thick, a surfacing pass might make sense ? )

    2. its not do much about the bed. the fiberglass has inconsistent thickness, varying .010″ at times. when making a .003″ cut it creates incomplete cuts or too much cut depth. autolevel maps the true height of the piece to be cut, the applies the difference the the z axis, boards come out very nice. opencncpilot is a nice grbl dender with autolevel, along with bcnc and chillipepper, there are also options for mach3.

      1. Not only do the have varying thickness, the boards you cut out from larger sheets inevitably have a bend or twist in them, and they’re mighty difficult to keep flat on the bed. If you double-side tape them, they’ll peel or bow off slightly.

    3. Oh, you can definitely autolevel a PCB much more easily than anything non-conductive. Both BCNC and Chilipeppr have functionality allowing you to use a special gcode command (available in at least grbl) that’ll stop the bit once a circuit is made — so you clip one side of a circuit to your drill, and one side to the PCB itself, and probe at multiple points along the board to build a mesh. It works pretty flawlessly.

      1. Yes the Gcode you are looking for is G30 : . Smoothie also supports the XY version of that ( I think it might be G38 ) which is very nice to find the corner of a workpiece with the appropriate sensor ( or via the contact/circuit-closing method if working metal ).
        I find G30 for Z part finding, and for XY corner finding, is one of those techniques that lots of people put off learning/implementing on their machines, but once they finally stop procrastinating, it’s nearly universal how people love it and wonder how they could have lived without it.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.