Fab Academy Logo
EN | PT
EN | PT

Week 8: Electronics Production

Group Assignment

In-House PCB Production Design Rules and Sending PCBs to a Board House

Part 1: In-House PCB Production — Characterizing Design Rules

The Machine and Software

Our lab uses a small desktop CNC mill for PCB fabrication. Unlike the big Ouplan we used in Week 7, this one is specifically for milling circuit boards, removing thin copper from FR1 substrate to isolate traces.

For CAM we used EasyTrace5000, a tool Riccardo created for PCB milling. It takes SVG files and generates G-code with parameters for tool diameter, cut depth, and speed. Post-processor was set to Grbl, and we controlled the machine through Candle.

PCB Mill Setup

Tool and Machine Settings

We used a V-bit for isolation routing. Here are the parameters we configured in EasyTrace5000:

Parameter Value
Tool typeV-bit
Starting diameter0.249 mm
Cut depth-0.04 mm
Copper thickness1.8 mm
Spindle speedNot controllable (fixed)
Post-processorGrbl
OriginBottom-Left

V-bits let you adjust the effective cutting width by changing depth — go deeper and the cut gets wider. They are noisier and less predictable than straight end mills, but almost impossible to break.

The spindle speed on our machine can't be controlled through software. It just runs at whatever RPM it runs at. Common for these small desktop PCB mills. So the only parameters we could really tune were the tool diameter setting and the cut depth.

EasyTrace5000 Settings

The Test Pattern

To characterize our machine's limits, we used a line test pattern — an SVG with traces at progressively smaller widths and spacings: 0.3 mm, 0.2 mm, 0.1 mm, and 0.01 mm. Mill it and see what survives.

Test Pattern Design

Fixturing and Zeroing

We secured the FR1 copper board to the machine bed using double-sided tape. The board needs to be perfectly flat because we are cutting features measured in hundredths of a millimeter. Any warping means some traces won't cut through while others get destroyed.

For zeroing Z, we used the probing function on the Candle software where we create a circuit by connecting a wire from the machine to the copper board and the other end of a wire to the v-bit, and probing makes it set the correct Z zero once it completes the circuit.

Candle Probing Setup Zeroing in Progress

Running the Test in Candle

We loaded the G-code from EasyTrace5000 into Candle. It shows a real-time preview of the toolpath and lets you jog the machine, set the origin, and monitor progress.

Additionally, we generated a height map using Candle to account for the hundredth of millimeters of height difference at the surface of the copper.

Results and Design Rules

After milling, we inspected which trace widths and spacings came out cleanly.

Design Rule Value
Minimum trace width0.2 mm
Minimum trace spacing0.2 mm

The 0.2 mm traces and spacings came out clean and well-defined. At 0.1 mm things started getting unreliable — traces were inconsistent or merged together. At 0.01 mm nothing survived, which makes sense given our tool diameter of 0.249 mm is already larger than that spacing.

So for any board we fabricate in-house, KiCad design rules need to enforce a minimum width and clearance of 0.2 mm. Anything finer goes to a board house.

Milled Test Board Results

Part 2: Sending a PCB to a Board House

Why Send It Out?

In addition to it being part of our group assignment, the board Youssef designed in Week 6 (the neuron board) was too complex to fabricate in-house. Trace widths and spacings were below our 0.2 mm limit, and the density of the design meant the risk of errors over a full board was too high.

Neuron Board Design

Adjusting Design Rules for the Board House

Before submitting, we needed the design to comply with the board house's manufacturing capabilities. They publish their design rules (minimum trace width, spacing, drill sizes, etc.), and your KiCad DRC needs to pass against those.

We edited the design rules in KiCad to match and re-ran the DRC.

KiCad DRC Settings

Exporting the Manufacturing Files

To send a board to a board house you export from KiCad:

  • Gerber files (RS-274X format): one per copper layer, solder mask, silk screen, and board outline
  • Drill file: all hole locations and sizes

This is done through File > Fabrication Outputs > Gerbers and File > Fabrication Outputs > Drill Files.

Exporting Gerber Files

The Board House Workflow

The typical submission workflow, we chose to try out JLCPCB:

  1. Upload Gerber and drill files: most have a drag-and-drop interface
    JLCPCB Upload Interface
  2. Review the board preview: the board house renders your files so you can verify layer alignment
    Board Preview
  3. Select manufacturing options: board thickness, copper weight, solder mask color, surface finish
    Manufacturing Options
  4. Run their DRC: they flag any issues with your design
    Board House DRC
  5. Review pricing and lead time
    Pricing and Lead Time
  6. Submit the order (or in our case, document up to this point)

What We Learned

Our in-house mill handles simple single-sided boards with 0.2 mm minimum features. A board house goes down to 0.127 mm (5 mil) or finer, handles multi-layer boards, adds solder masks and silk screens, and plates vias — none of which we can do ourselves.

The trade-off is time and cost. In-house takes minutes and costs nothing beyond the FR1 board. A board house takes days to weeks and costs money. Simple prototypes go in-house, anything with fine-pitch components or dense routing goes out.