Skip to content

Week 8 - Electronics Production


Assignment Overview

Group Assignment: - Characterize the design rules for your in-house PCB production process - Submit a PCB design to a board house

Individual Assignment: - Make and test an embedded microcontroller system that you designed - Extra credit: make it with another process


As usual here is my schedule!

image


Group Assignment

Introduction

For this week's group assignment, we characterized the design rules for our in-house PCB production process using the Roland DGSHAPE MonoFab SRM-20 milling machine. Our objective was to understand the machine's specifications, test its capabilities, and produce a milled PCB board.


Machine Specifications - The SRM-20

image

The SRM-20 (Subtractive Rapid Manufacturing) is a compact desktop 3-axis CNC milling machine designed for rapid prototyping. It's the machine we use for all our PCB milling in the lab and is one of the most commonly found machines in Fab Labs around the world.

Specification Value
Cuttable Area (X, Y, Z) 203.2 x 152.4 x 60.5 mm
Spindle Speed 3,000 – 7,000 RPM
Mechanical Resolution 0.000998594 mm/step
Software Resolution 0.01 mm/step
Interface USB
Cuttable Materials Modelling Wax, Foam, Acrylic, ABS, PCB

Software Tools

The software used for PCB milling with the SRM-20 are: - Inkscape — for preparing and exporting PNG files at the correct DPI - MODS — for generating RML toolpath files from the board exports - VPanel — for controlling the machine and setting X, Y, and Z origins


Characterizing Design Rules

We used the characterized files from Prof. Neil to guide our design rules.

image

image

We concluded that 0.020 inch is the minimum required for proper visibility and clean milling of both trace width and spacing. Anything below 0.015 inch (1/64") risks traces being too narrow or too close together, which can lead to incomplete cuts or shorts on the board.


Modeling and Cutting

We prepared our board files in Inkscape, exported them as 1000 DPI PNGs, and used MODS to generate the RML files. We then milled the board on the SRM-20 using:

  • 1/64 inch endmill for milling copper traces
  • 1/32 inch endmill for cutting the board outline

image

Cutting Settings:

Setting Value
Traces Tool 1/64 inch endmill
Outline Tool 1/32 inch endmill
File Format RML
Export DPI 1000

Results

image


Group Assignment Conclusion

Our board came out well on the first try. Through this assignment we gained hands-on experience with the full PCB milling workflow — from preparing files in Inkscape and MODS, to setting up and running the SRM-20. The skills and design rules we learned here will guide our circuit board designs going forward.

For more details, check out the full group assignment page here.


Individual Assignment

For this week's assignment I milled my PCB from week 06.


Exporting PCB Design from KiCad

I first started off by exporting my PCB design as SVG. To do that I used the plot feature.

image

In the plot feature I exported the design as SVG. I used the following settings:

image

This is how the files will be saved: There will be 2 SVG files. One with both the traces and the Edge Cut and one with the Edge Cut only.

image


Preparing Files in Inkscape

After that, open Inkscape and import the SVG file.

image image

Then add your initials to customize it and then export the SVG file as a PNG file.

image

When you click the Export button a window will pop up where you can make some changes. Change the background color to white and DPI to 1000, then click the export button after selecting your desired folder.

image

image

After that you have to do the same thing for your Edge Cut file.

image


Generating RML File

What is an RML file?

An RML file for the Roland SRM-20 is a machine-readable toolpath file, specifically in the RML-1 command set format, used to instruct the desktop milling machine to cut or trace PCB (Printed Circuit Board) designs.

Here are the steps to make the RML file:

First go to modsproject.org and open programs and find the SRM-20 milling machine and click on mill 2D PCB.

image

Here is a screenshot of the interface and numbers to follow along.

image

First import your PNG file and click Invert. Note: The white parts are the traces and the black parts are the things that will be removed.

image

Select the 1/64 for the mill bit size.

image

Then select the 2 programs and click the delete button. Then create a new module (save): Modules -> Save

image

image

Remember to set the origin to 0.

image

After that hit Calculate and your RML file will be downloaded automatically to your downloads folder.

image

Moreover, a new window will pop up where you can see the toolpath in 3D view.

image

Carefully check if the toolpath is correct by checking if there are any shorts in the connections.

image

After that, do the same thing for your edge cut file.

Import the PNG file and click invert.

image

Important! Set the mill bit size to 1/32.

image

Don't forget to add the save module.

image

Hit Calculate to automatically download the RML file and view the toolpath in 3D view.

image image

Milling the PCB

Turn on the machine.

image

Now open the V-Panel for the SRM-20.

image

This is the interface for the SRM-20.

image

Set the X-Y coordinates to 0 and for the Z axis use the gravity method and set the Z axis to 0.

image

Click the Cut button and choose the RML file you downloaded (the one with the traces and the edge cut).

image image

Then click the Output button to start milling your PCB!

image

Yay! It's getting milled!!

This is after milling the traces:

image

Then do the same thing for the edge cut and click output!

image

After that, clean the dust and using the spatula take out your PCB!! Yay!!!!


First Attempt - Version 1

This is the final result:

image

I noticed that some traces didn't come out well so I went to redesign the PCB in KiCad.


Second Attempt - Version 2

This is the Version 2 PCB Design:

image

The Challenge:

I only have 1 day left to do everything and I still haven't finished the milling, soldering, and programming my board. So I decided to design another PCB which is much simpler. So I grinded the whole night and I finally designed a new PCB and milled it!


Design Iteration - Version 3

Here is the new PCB design:

image

This new design is much easier to work with and what it basically does is that I can program the LEDs to make patterns.

After designing the PCB I made the RML file using the same steps I did before using MODS. And then I milled the design. Here is the result of my design.

image

Here is the PCB after cleaning the dust.

image

Yaay!! It looks great!

image


Soldering the Components

After that I gathered all the components and placed them like this: It makes the soldering much easier.

image image

The soldering part was quite interesting and I enjoyed it a lot. This part for me was quite easy as I've done some soldering before.

Important: From the components I used, only the LED had polarity so always remember to solder that correctly!

Here is the result of the soldering! I'm pretty impressed - it looks clean and nice!

image image

Programming the LEDs

For programming I used Claude.ai. For the programming I gave the prompt to Claude AI and it gave me the code for the program.

Note: I haven't just copy-pasted the code to my Arduino IDE - I learned line by line what it does so that I understand the core idea.

Here is the link to my chat with Claude AI: Link

To program the LEDs I first opened the Arduino IDE and connected the board to my computer. Then I selected the board type and the port.

Note: I am using the XIAO ESP32 C3 and to program it you have to add the board to your Arduino IDE. To know how I added the board, click here to view my previous assignment.

image

After that I copy-pasted the code from Claude AI and uploaded it to the board.

Yaay!! My board is alive!!!


Final Results

Hero Shot

image

Click here to view the code: Code


Project Files


Reflection

This week was very humbling as at first I wanted to mill my final project board but I learned that I have to learn and gain more experience to do it. I also learned to work under tight deadlines as I had to redesign everything at the last minute.

Overall I'm very happy that I learned a lot about PCB milling, programming, and soldering. From now on I will continue to work on my final project board and make it work.


Thank you! See you next time!