ELECTRONICS PRODUCTION

Group Assignment

Individual Assignment

You can access the group assignment here.

Group Assignment

This week's group assignment focused on characterizing the design rules for our in-house PCB milling process. By testing different trace widths, clearances, and via sizes on the Roland Modela MDX-20, we established reliable minimum values that guide future PCB designs at our lab.

PCB Milling Machine – Roland Modela MDX-20

The Roland Modela MDX-20 is a compact desktop CNC milling machine used for PCB fabrication. It uses precision end mills to cut copper traces directly from FR1 copper-clad boards. The machine supports a working area of 203 × 152 × 60.5 mm and achieves a positional accuracy of ±0.01 mm, making it well-suited for fine-pitch PCB work.

Roland Modela MDX-20 milling machine

Design Rule Test Board

We milled a test board containing traces of varying widths After milling and visual inspection with a magnifier, we identified the following reliable minimums for our setup:

PCB design rule test board

Traces below 0.01 inch showed inconsistent results, some cuts were incomplete due to minor board-level warping. We used double-sided tape to secure boards flat against the sacrificial layer, which significantly improved trace quality at finer widths.

Submitting a Design to a Board House

As part of the group assignment, we also submitted a PCB design to a board house (JLCPCB) to understand the professional manufacturing workflow. We exported Gerber files from KiCad, packaged them into a ZIP archive, and uploaded them to the board house portal. The review confirmed our design was within standard manufacturing tolerances.

JLCPCB order confirmation

Individual Assignment – Making the PCB

For the individual assignment, I took the PCB I designed in Electronics Design week (Week 06) — a custom board based on the Seeed Studio XIAO RP2040 — and milled, stuffed, and tested it in the Fab Lab.

Step 1: Preparing Files with Mods CE

I exported the PCB traces and board outline as PNG images from KiCad at 1000 DPI. These were loaded into Mods CE (the browser-based CAM tool used in Fab Academy) to generate Roland-compatible toolpath files (.rml). Two separate toolpaths were generated:

Mods CE toolpath generation

Step 2: Milling the Board

The FR1 copper-clad board was secured to the MDX-20 bed using double-sided tape. The Z-axis was zeroed carefully on the copper surface using a sheet of paper as a feeler gauge. The traces toolpath was run first, followed by the outline cut. The total milling time was approximately 20 minutes.

Milling the PCB on SRM-20 Freshly milled PCB board

After milling, I cleaned the board with isopropyl alcohol to remove copper dust and inspected all traces under a magnifier to check for shorts or broken traces. All traces were intact and within tolerance.

Step 3: Soldering Components

With the board milled and cleaned, I began populating it with components. The bill of materials included:

I used a soldering iron with a fine chisel tip at 320°C and leaded solder (Sn60/Pb40) for the SMD components. A soldering microscope was used for the 0402 passives. I applied flux to each pad before placing components and soldered quickly to avoid heat damage.

Soldering SMD components Fully populated PCB board

Step 4: Testing the Board

Before programming, I performed a continuity check with a multimeter to verify there were no unintended shorts between power rails and ground. The board passed inspection and I connected it to a laptop via USB-C.

The XIAO RP2040 was recognized immediately by the computer. I uploaded a simple test sketch using the Arduino IDE to blink the onboard LED and read the button state over serial. The LED blinked correctly and button presses were detected reliably, confirming the board was functional.

Testing the PCB with multimeter Serial monitor output confirming button detection

Key Learnings