8. Electronics Production

This week I used KiCad, Adobe Illustrator and VPanel to mill a circuit board.

Research

Through my experience two weeks ago, creating a circuit board wasn't easy, but it was done and I was now ready to bring my design to life. I knew from my design that I created in week 6 for Electronics Design, the board I was to make this week would be intricate and need a lot of components to be sautered on.

Exporting Design from KiCad

Once the design is finished, I need to export it. First, I select 'File', and then I can select 'Plot...'. From here I will be able to configure the settings I need. It's important that I export my design as an SVG file so that I can upload it to Adobe Illustrator after to make it be ready to send to the milling machine.

Download PCB

Download Schematic

Download SVG (traces)

Download SVG (edge cuts)

These were the two files that were exported. There is a trace file, which displays the actual paths on the board that will connect components. There is also the edge cuts file, which represents the deeper cut the machine will make to full cut through the entire board. This is drawn around the perimeter of the board.

Modifying Design in Adobe Illustrator

Once I finished designing my board in KiCad, I needed to import the SVG files into Adobe Illustrator. I opened them in separate tabs, copied the trace layer, and pasted it onto the edge cuts file. This gave me both layers in a single file. I followed a specific process to layer and position them correctly.

I chose the edge cuts layer to be the bottom layer. I ungrouped the circle (representing the board outline), changed its fill to white, and then selected both the white circle and the traces. I moved everything to the bottom-left corner of the artboard, aligning it with the machine origin to help conserve material during the cut. Once the layout was complete, I exported each layer separately as high-quality PNGs.

I saved both images at 2400 dpi, using the highest quality PNG setting.

Configuring in MODs

Then I brought them into a tool called mods, which helps generate the .rml files required by the Roland milling machine.

The mods interface is a little tricky, so I started by selecting "Programs" → "Open Program" → "Roland mill (SRM-20)". Once inside, I imported my traces PNG into the appropriate module and selected "mill traces (1/64)" as the operation. I adjusted the cut settings as needed, then hit "calculate" to generate the toolpath. I noticed that some text looked too thin, so I returned to KiCad and thickened the text lines to 0.4 mm—the minimum width the machine can reliably cut.

Next, I imported the edge cuts PNG and selected "mill outline (1/32)" to create the file that cuts the board’s shape. I followed the same process to calculate and save the .rml file. I then emailed both files to myself and moved to the lab computer for milling.

Download RMl (traces)

Download RMl (edge cuts)

Milling on Roland Mill using VPanel

At the lab, I logged into my email, downloaded the two .rml files, and began prepping the milling machine. I attached four strips of double-sided tape to the back of my copper PCB board, making sure the tape was flat and evenly applied. I then placed the board onto the spoil board, securing it in the bottom-left corner. This is important because the spoil board protects the machine if the bit cuts too deep—and uneven boards can cause broken bits and bad cuts.

Using the VPanel software for the Roland SRM-20, I manually moved the milling bit to the bottom-left corner of the PCB and saved this location as the XY origin by pressing the "XY" button. Then I adjusted the Z-axis: I lowered it close to the board, opened the lid, loosened the collet, and gently let the 1/64" bit drop until it just touched the surface. Pressing it down too hard—or not at all—can affect the cutting depth.

I tightened the collet, returned to the software, and clicked "Z" to set the Z origin. I raised the bit by 2mm and loaded my trace-cutting file.

Always cut traces before the edge outline. If you cut the board out first, it may shift during the fine-detail trace cutting. Think of it like trying to nail a swing onto a tree that’s already been chopped down—it doesn’t work well when things are moving!

The trace cut came out clean. I used the shop vacuum to remove PCB dust, then swapped out the 1/64" bit for the 1/32" bit used for the edge cuts. I repeated the Z origin process, locked in the new bit, and loaded the edge cut file. Once that finished, I vacuumed again, removed the PCB from the spoil board, and snapped it out of the leftover copper.

Now it’s time to begin soldering!

Soldering Components to Board

Soldering the components to the board is a process that takes time and foresight. When I first started designing the board in KiCad, I planned the layout based on components I knew were available in the lab. However, there’s often a small difference between how parts look online and how they actually appear in person, so some flexibility is always needed.

I began by collecting all the components I would need: four 4-pin headers, three 3-pin headers (which I made by cutting a 16-pin header strip), one red LED, one Seeed Xiao RP2040, three 10kΩ resistors to use as pull-downs, and one 220Ω resistors for the LED circuit.

I wrote code that would turn the LED on and it worked! I was so happy to finally have something that worked the first try, haha.

void setup() { pinMode(D10, OUTPUT); // Set pin D10 as output digitalWrite(D10, HIGH); // Turn pin D10 on } void loop() { // Nothing here, the pin stays on }

Final