Milling, soldering, and testing a custom PCB from KiCad to physical board
After designing the PCB in the Week 06 Electronics Design assignment, this week was about turning that design into a real, working board โ milling it in-house, soldering the components, and testing it. The board is based on the XIAO ESP32-C3 with an SMD push button and a through-hole LED.
I started from my completed KiCad PCB design. To prepare it for fabrication, I went to File โบ Fabrication Outputs โบ Gerbers and selected the layers needed for in-house milling โ F.Cu for the copper traces and Edge.Cuts for the board outline. I clicked Plot, then Generate Drill Files to produce the complete set.
The PCB mill needs PNG image files, not Gerber files directly. Rather than using an external website, I used the Gerber2PNG plugin โ created by Fab Lab Kerala โ which converts Gerber outputs to PNG entirely within KiCad. I downloaded the plugin from the Fab Lab Kerala page in Git Hub. I followed the installing instructions in the page and installed it through KiCad's Plugin and Content Manager.
Once launched, I checked all three required layers and the plugin generated the PNG files:
To generate the G-code I used the mods project web interface โ a browser-based CAM tool that converts PNG files into toolpaths for the mill. I selected Programs โ iModela mill โ PCB from the left sidebar, then uploaded the trace PNG. The machine used is the Roland iModela.
After uploading the PNG, mods calculates the toolpath using the parameters set in the mill raster 2D node. The following settings were used:
| Parameter | Value |
|---|---|
| Tool diameter | 0.40 mm |
| Cut depth | 0.10 mm |
| Max depth | 0.10 mm |
| Offset number | 4 |
| Offset stepover | 0.2 |
| Feed speed | 4 mm/s |
With the board milled and cut out, I soldered all the components. The board uses a mix of SMD and through-hole parts, which I placed and soldered in order of size โ smallest SMD components first, then the through-hole LED, and the XIAO last.
This week connected the digital and physical sides of the electronics workflow for the first time. The biggest discovery was the Gerber2PNG plugin โ being able to do the conversion directly inside KiCad without relying on an external website made the process much smoother and more repeatable.
The milling step taught me how sensitive the process is to small parameter changes. Small adjustments in depth of cut made a visible difference in trace quality, and running test passes before committing to the final board was essential. Soldering the XIAO on castellated pads also required patience โ getting alignment right before applying heat made a big difference in the final result.
AI Disclosure: Claude (Anthropic) was used as a writing tool to help proofread and structure the documentation on this page. All designs, fabrication, and technical decisions are my own.