I think the secret to making nice double-sided PCBs on a mini-CNC is to establish a procedure.  This is what I do on the mini-CNC:
	Code:
	1. Install 3.175mm drill bit.
2. Home X, Y and Z axis.
3. Probe Z-axis.
4. Drill Left Alignment Holes.
5. Drill Right Alignment Holes.
6. Install 30deg V-bit.
7. Probe Z axis.
8. Height-map PCB, if required.
9. Route Top layer.
10. Install 0.8mm endmill bit.
11. Probe Z axis.
12. Route Top layer Cutout.
13. Flip PCB using Alignment Pins.
14. Install 30deg V-bit.
15. Probe Z axis.
16. Route Bottom layer.
17. Install drill bit.
18. Probe Z axis.
19. Drill Bottom layer.
... repeats steps 12 - 14 for all Drill files
20. Install 2 Retention Pins in Screw Holes.
21. Install 0.8mm endmill bit (Make sure drill clears Retention Pins).
22. Probe Z axis.
23. Route Bottom layer Cutout.
 I take notes while I'm using the machine, and improve on the process.
This is what I do to generate the G-code files from FlatCAM:
	Code:
	=========================== FlatCAM ===========================
Start WinPythonPowershell
cd ..
cd ..
cd flatcam
python .\flatcam.py
========== Do Height Map before drilling, if required. ==========
	*** do not import Drill file for 3 Fiducials ***
****************** Alignment Holes and Mirror ******************
Generate Drill files and Mirror Bottom:
	- select MechanicalNofiducial file.
	- click on 2-Sided.
	- Axis = X.
	- Reference = Box.
	- click on Gerber.
	- Select Bottom layer.
	- click on Mirror.
	- click on Excelon.
	- Select Drill file.
	- click on Mirror.
	...
	- repeat for all Drill files.
	- Drill Dia = 3.175mm.
	- point on desired coordinates Upper Left above Outline.
	- Shift + Left Click.
	- click Create Excelon Object.
	- point on desired coordinates Upper Right above Outline.
	- Shift + Left Click.
	- click Create Excelon Object.
	- select 1st Alignment Hole Drill file.
	- click Properties.
	- rename to "1 - Alignment_Holes_L_3.175mm".
	- click Drilling.
	- Cut Z = -10.0mm.
	- Travel Z = 1.0mm.
	- Feedrate = 25mm/min.
	- SpindleSpeed = 7500rpm.
	- Start Z = 1mm.
	- EndMove Z = 1mm.
	- EndMove X,Y = 0,0.
	- Preprocessor = GRBL_11_No_M6.
	- Click GenerateCNCjob Object.
	- select new Alignment CNC Job.
	- Save CNC job (include drill dia and side in file name).
	...
	- repeat for 2nd Alignment Hole Drill file with:
	  - "2 - Alignment_Holes_R_3.175mm",
	  - EndMove Z = 25mm.
	- Save Project.
************************ Milling Layer ************************
Generate Geometry file:
	- hide all other layers.
	- select Gerber file for Top layer.
	- click Properties.
	- click Isolation Routing - Advanced.
	- click Calculators, if necessary:
		- Tip Diameter = 0.1mm
		- Tip angle = 30deg.
		- Cut Z = -0.1mm
		- click Calculate.
		- Copy Tool Diameter of 0.1536mm.
	- Paste Tool Diameter.
	- Shape = C1, circular with 1 flute.
	- Passes = 2.
	- Overlap = 20%.
	- Enable Combine.
	- Click Generate Geometry.
	- Save Project.
Generate CNC file:
	- Select Geometry file.
	- click Properties.
	- click Milling - Advanced.
	- Tool Dia = 0.1536mm.
	- Job = Isolation.
	- Cut Z = -0.1mm
	- Travel Z = 1mm.
	- Feedrate X-Y = 120mm/min - 140mm/min.
	- Feedrate Z = 10mm/min - 12mm/min.
	- Spindle Speed = 9500rpm - 12000rpm.
	- EndMove Z = 25mm.
	- EndMove X,Y = 0,0.
	- Preprocessor = GRBL_11_no_M6.
	- click Generate CNCjob Object.
	- Save CNC job (include mill shape in file name).
	- Save Project.
	...
	- repeat 2 steps for Bottom layer.
*************************** Holes ***************************
Generate Drill file:
	- select excelon file for alignment holes.
	- click Properties.
	- click Drilling - Advanced.
	- Cut Z = -2.0mm (small), -3.0 (large), -10.0 (Retention Pins).
	- Travel Z = 1.0mm; height above PCB for traveling.
	- Feedrate = 25mm/min (large) to 40mm/min (small).
	- SpindleSpeed = 7500rpm.
	- Start Z = 1mm; height when operation starts.
	- EndMove Z = 25mm; height to raise after operation.
	- EndMove X,Y = 0,0; return to origin.
	- Click GenerateCNCjob Object.
	- Save CNC job (include drill dia in file name).
	- Save Project.
************************** Cut-out **************************
Generate Geometry file:
	- hide all other layers.
	- select Gerber file for MechanicalNofiducial.
	- click Properties.
	- click Cutout - Advanced.
	- Tool Diameter = 0.8mm.
	- Cut Z = -0.5mm (top layer), -1.3mm (bottom layer).
	- Passes = 0.10mm.
	- Margin = 0.
	- Gaps = None.
	- Click Generate Geometry.
	- Save Project.
Generate CNC file:
	- Select Geometry file.
	- click Properties.
	- click Milling - Advanced.
	- Tool Diameter = 0.8mm.
	- Job = Finishing.
	- Cut Z = -0.5mm (top layer), -1.3mm (bottom layer).
	- Multi Depth = enabled, 0.1mm - 0.15mm.
	- Margin = 0mm.
	- Gaps = None.
	- Travel Z = 1mm.
	- Feedrate X-Y = 100mm/min - 360mm/min.
	- Feedrate Z = 10mm/min - 30mm/min.
	- Spindle Speed = 9500rpm - 12000rpm.
	- EndMove Z = 25mm.
	- EndMove X,Y = 0,0.
	- Preprocessor = GRBL_11_no_M6.
	- click Generate CNCjob Object.
	- Save CNC job (include endmill shape in file name).
	- Save Project.
 There's been a lot of tweaking and adjusting since day 1.  Most of those values are now set as the default values in FlatCAM.  I have a lot less room for errors, except in things like trace isolation and PCB cut-outs; I use Milling operation for both of them, but use a V-bit for isolation, and an endmill for cutting out the board.  Those 2 bits don't use the same speeds.
Robert
				
			
Bookmarks