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