Here, I am going to show you my current workflow for creating a single sided PCB with a CNC machine.  Please refer to the "Setting Up the Software" section for the software components I will be putting to use.  You will find links to both installation instructions and tutorials.

Don't shrug off single sided PCB milling.  Milling single sided boards can be done quickly. In addition, since you dont have to flip the board, you can place the location of the traces anywhere on the board you are milling.

Please understand that this is not a tutorial in the Eagle software package.  There are plenty of good ones already available.  I will share some screen shots, so you can see the settings that I used. If you click on the images, you can view them full size.


The Circuit

I struggled a little with the actual circuit I wanted to use for my initial workflow example.  I didn't want anything too complicated so I searched the internet, and found this cool little 555 timer project.

It is a simple touch pad circuit that will light an LED for a second or so when the pad is touched. It can easily be done on a single sided PCB.

Using the free version of the Autodesk Eagle software, and the Sparkfun library's, I drew up this circuit using the Eagle schematic interface.

If you dont want to create the schematic from scratch, you can download the Eagle schematic here:

Touch Plate Schematic


Board Design

The schematic creation is only the first step in the PCB milling process.  In order to create the actual board design, you must place all the components on your board.

By hitting the Generate/switch to board button at the top of the schematic window, a default board will be created for you, as shown here.

This board, in its current shape will be useless to you.  You must layout the componets in  order to run actual traces from component to component.


Placing Components

I moved all the components over to the board as shown here. This is done by selecting the move tool and clicking on the cross hair on each component.

Note that you can hit the right click button to rotate the part as you are moving it.

Notice that the connections that you created in the schematic window will rubber band as the components are moved.  


Routing the Traces

Once you are happy with the placement of the components you can start running your traces.  You can do this manually or you can use Eagles built-in autorouter, which is what I did here.

Before doing this I first set a few things in the design rules dialog under the edit menu.

I set the clearance on everything to 10mil.  I also set the minimum width to 10mil.

You can access the Autorouter from the tools menu by clicking "Autorouter"

Since we are doing a single sided board we will only allow the autorouter to do the bottom traces, on the layer "1 Top" option, I selected NA.

On layer "16 Bottom" option, I selected Auto.  I also selected and Effort of Medium. and hot the Continue button.

I was presented with a Routing Variants dialog, and just clicked the Start button.  It took less than a second for the traces to be run for this small board, so I just clicked the End Job button.  

Note that large complicated board can take a while to complete all the traces when autorouting.

You can download my Eagle board file here:

Eagle Touch Plate Board File

CAM Processor

In order to generate the Gcode for milling, you must first create the Gerber files needed by the PCBgcode plugin.  This is done using eagles CAM processor.

To do this, click the CAM processor button on the top of the board window which will bring up the CAM Processor dialog.

To simplify things, I had downloaded the Sparkfun CAM processor which is much simpler than the default Eagle processor.

Form the File menu select "Open Job" and select the Sparkfun CAM processor.  It is named "".

Not really much to do here, as the defaults will work just fine.  What we are interested in is the Bottom Copper and the Drill File for single sided boards.

To create the Gerber files hit the Process Job button.


Setting Up the Gcode Plugin

In order to process the Gerber files, you need to setup PCBGcode before actually converting the Gerber files to Gcode.

To do this hit the ULP up on the top of the Eagle board editor , as shown here.

Then, navigate to the pcb-gcode-setup.ulp as shown here and hit the open button.


The first time you runt the pcbgcode setup program, you will be asked for the GCode Style you would like to use.

Select the mach.pp style, as shown here. Note that you can change the GCode Style when every you want by using the GCode Style tab.

Click the Accept button to continue.

On the "General Options" tab I changed a few things. The first thing I did was to unchecked all the options in the Top Side Panel.  We will only be milling the bottom of the board.

On the Bottom Side Panel, I only selected the "Generate bottom outlines" and "Generate bottom drills".

You can set your settings the same as what I chose here.  They are mostly the defaults.

I did change the "Isolation Single pass" option to "on".  This will cause only a single width of the V-bit to isolate the board.  Generally, this is not a good idea, I just wanted to see how tight I could get things.

On the "Machine" tab I made the following changes.  They worked out good for me.

On the "Gcode Options" tab, I selected the "Use simple drill code" option.  Everything else I left as default.

At this point you can hit the "Accept" button at the bottom of the window.


Running the PCBGcode plugin

To process the Gerber files with the settings you have just set, hit the "ULP" button on the Eagle board editor once again.

This time, navigate to the "pcb-gcode.ulp" and hit the "Open" button.

You will be presented with a popup window that looks something like this. The red lines are what will be cut into the copper.  Later the small blue X's will be where you drill the through holes.

When you close the popup forms, your gcode files will be generated.

In my case two files were created. and

They names are self descriptive. One is the trace milling file and the other is the drill file.

Lets make some chips....

To be continued ....