PCB Milling Master Class Series: So, you want to mill a double-sided PCB? You have entered the advanced territory.
While single-sided boards are straightforward, double-sided boards require a specific workflow to ensure the tracks on the back align perfectly with the tracks on the front. We achieve this using Alignment Pins and Mirroring.
In this guide, we are going to use FlatCAM. Warning: FlatCAM is incredibly powerful, but the interface is not intuitive. We are going to walk through every single click required to turn your Gerbers into G-Code.
Understanding the "FlatCAM Flow"
Before we load files, you need to understand how FlatCAM "thinks." It confuses almost everyone at first.
The "Project" vs. "Selected" Tab
Everything happens in a three-step loop:
- Project Tab: You see a list of your files. You must click a file here to select it.
- Selected Tab: Once a file is selected, you click this tab to see the operations available for that specific file (like Routing or Drilling).
- New File Generation: When you run an operation (like "Generate Geometry"), FlatCAM doesn't change the original file. It creates a new file in the Project Tab. You then have to select that new file to do the next step.
Step 1: Load and Organize
Go to File > Open > Open Gerber and load your Top_Layer.gtl, Bottom_Layer.gbl, and Board_Outline.gko. Then go to File > Open > Open Excellon and load your Drill_Holes.drl.
Pro Tip: The screen will look like a mess of colors. In the Project Tab, Right-Click on the Bottom Layer and set the color to something distinct (like Blue) and the Top Layer to Red. This helps you visualize the board stack-up.
Step 2: The 2-Sided Setup (Mirroring)
Since your CNC machine cuts from the top, to cut the bottom of the board, we have to physically flip the PCB over. That means we need to digitally mirror the bottom data.
- Go to the Tool menu (top of screen) and select 2-Sided PCB.
- Bottom Layer: Select your
Bottom_Layer.gbl from the dropdown. - Mirror Axis: Select X.
- Axis Location: Select Box.
- Alignment Holes: We need to create holes so we can flip the board accurately.
- In the "Drill Dia" box, enter your pin size (e.g., 3.0mm).
- Click the Add button near "Alignment Drill Coordinates."
- Click somewhere on the canvas (outside your board design) to place the first hole.
- Click Add again, and place a second hole on the same horizontal line (X-axis) but on the other side of the board.
- Finalize: Hold "CTRL" and select both your
Bottom_Layer AND your Drill_Holes files in the tool list.
Click Mirror Object.
Then click Create Excellon Object to save your alignment holes.
You now have a new file in your Project list called "Alignment Drills."
Step 3: The Tool Database
FlatCAM's tool database is tricky. Here is how to add your specific V-Bits.
- Select your Top Layer, go to the Selected tab, and click Isolation Routing.
- Look for the Tools Table. If your bit isn't there, click Add from DB.
- A new window opens. Right-Click anywhere in the list and choose Add to DB.
- Enter your bit specs.
Bit Recommendation: For beginners, skip the 30-degree bits. They break too easily. Use a 90-degree V-Bit or a 60-degree V-Bit. They are much stronger, more forgiving on uneven surfaces, and still isolate tracks perfectly.
- How to Save: There is no "Save" button! You must click the Red X to close the window. It will ask "Save Changes?" Click Yes.
- Now, open the DB again, select your new tool, and click Transfer Tool.
Step 4: Top Layer Isolation
Now we generate the toolpaths for the top copper.
- In the Project Tab, select
Top_Layer.gtl. - Switch to the Selected Tab and click Isolation Routing.
- Select your tool (Step 3). Set your Cut Z (usually -0.05mm) and Feed Rate (120mm/min).
- Click Generate Geometry.
- Crucial: A new file appears in the Project Tab (usually named
Top_Layer.gtl_iso). You are not done yet! - Select that new `_iso` file. Go to the Selected Tab.
- Verify settings and click Generate CNC Job Object.
You should now see blue lines indicating exactly where the machine will move. This is your G-Code.
Step 5: Bottom Layer Isolation
Rinse and repeat the exact process from Step 4, but this time select your Mirrored Bottom Layer.
Remember: The bottom layer is mirrored, but since we are flipping the physical board, the machine thinks it's cutting the "top" of the material. The logic holds up!
Step 6: Drilling (Holes & Alignment)
We have two sets of holes to drill: the component holes and the alignment pins.
Component Drills
- Select the mirrored
Drill_Holes.drl in the Project Tab. - Go to Selected Tab > Drilling Tool.
- Select your drill bits (e.g., 0.8mm, 1.0mm).
- Set Cut Z to go through the board (e.g., -1.8mm for a 1.6mm board).
- Click Generate CNC Job Object.
Alignment Drills
- Select the
Alignment Drills file we created in Step 2. - Repeat the drilling process, but use a larger bit (e.g., 3.0mm) that matches your alignment pins.
- Click Generate CNC Job Object.
Step 7: Board Outline (The Cutout)
Finally, we cut the board out of the FR4 material.
- Select
Board_Outline.gko in the Project Tab. - Go to Selected Tab > Cutout Tool.
- Holding Tabs: This is vital. If you cut the board completely loose, it will fly up and hit the spindle.
- Enable "Add Tabs".
- Set "Tab Count" to 4 (one on each side).
- Set "Tab Size" to 1.0mm (easy to snap off later).
- Select your End Mill (e.g., 1.5mm) and click Generate Geometry.
- Select the new geometry file -> Generate CNC Job Object.
Step 8: Exporting the G-Code
You should now have a list of "CNC Job" files in your Project Tab (usually highlighted in blue). It is time to save them.
Select a CNC Job file, go to the Selected Tab, and click the Save CNC Code button.
Checklist: You should have these files: 1_Alignment_Drills.nc 2_Bottom_Isolation.nc 3_Drills_Mirrored.nc 4_Top_Isolation.nc 5_Cutout.nc
We are now ready for the shop. In Part 4, we will learn how to use those Alignment Drills to flip the board with perfect precision.
Back to Part 2