For this week, this is my schedule:
The Roland DGSHAPE MonoFab SRM-20 is a compact desktop CNC milling machine.It operates on 3 axes (X, Y, and Z) which allows it to mill precise shapes and patterns onto different surfaces.
This machine is one of the most widely used pieces of equipment in Fab Labs around the world, and it is the one we use in our lab for all of our PCB milling. The SRM-20 is capable of working with a wide range of materials including wood, foam, acrylic, and soft metals. However, for our Fab Academy assignments we primarily use it with copper clad PCB boards for producing our actual circuit boards.Despite being a relatively small and affordable machine, it consistently produces accurate and clean results.
I got this labelled image of the SRM-20 from Azhim Damzang's Week 4 page.
For our group assignment, we began by downloading the PNG test images directly from the Fab Academy website. These images are specifically designed to test different trace widths and spacings to help us figure out the minimum dimensions we can reliably mill on our PCB milling machine.
We used a 1/64 inch milling bit to mill the traces onto the copper board.
After carefully examining the milled results up close, we made an important observation that the traces and their spacing only came out clean and clearly defined starting from the 0.020 inch setting. Anything smaller than that was either too thin or not properly separated from the neighboring traces. The reason for this comes down to the bit size itself — since the 1/64 inch bit has a diameter of 0.015 inches, it can only cleanly cut spaces that are larger than that diameter. This means that 0.020 inches is the smallest reliable trace width and spacing we can work with, since it is the first size in the test array that exceeds the bit's own diameter.
You can access our group assignment here.
For this week’s assignment, which involved creating and testing a self-designed embedded microcontroller system, I chose to test the board I had developed for my final project during the electronics design week. However, I needed to make some additional modifications, as a few of the components required changes.
The modified PCB:
Edge cuts are the lines that define the outer shape and boundary of a PCB, showing where the board will be cut during fabrication.To add an edge cut layer to your PCB, change the active layer from F.Cu to Edge.Cuts
To draw the edge cuts, you can use lines to create a custom shape, or select the rectangle tool from the tools section to draw a defined border.I chose the rectangle for my pcb and make sure it's 0.6mm
To smooth the sharp corners of the board, I also chamfered the edges by right clicking on the border, selecting Shape Modifications>Chamfer Line, and setting the radius to 3 mm.
I added my initials on the baord using the Text tool in Kicad. Just press the 'T' icon on the left tool panel near the image tool.
To export your design from KiCad as an SVG file, go to **File>Plot** and then configure the following settings:
Plot format: Select SVG from the dropdown menu.
Output directory: Click the folder icon to choose where your files will be saved.
Include Layers:
SVG Options:
MODS CE is an online tool used to generate toolpaths for CNC machines from PCB designs. It allows you to import high-resolution images of your PCB layers, such as the copper layer and board outline, and then creates precise instructions that a CNC machine can follow to mill the board. MODS CE supports adjusting settings like cutting depth, tool size, and feed rates, making it easier to produce accurate PCBs from digital designs.Open Mods CE in your browser by visiting the link mods.programs.org.
This workplace should appear:
This is the toolpath of my board:
We can also simulate the PCB milling process using MODS CE. The following image shows the toolpath generated for my board.:
After finishing both milling steps, gently take the PCB off the sacrificial board and remove any leftover copper dust.
Oops! I just discovered a short circuit on my PCB that I hadn’t noticed earlier 🤦♀️
I decided to create another PCB, keeping it simpler this time, while I work on finalizing my main project board later. I designed a basic Xiao ESP32 C3 blink circuit with a button and included connector pin sockets to allow additional components for testing.
This is the schematic of the PCB designed in KiCad. I used the Xiao ESP32-C3 module and assigned it a generic socket footprint, as I did not plan to solder it directly onto the board. I also used an Omron tactile switch.
This is the PCB of the blink board, I made in Kicad. Routing was a million times easier than the pcb of my final project baord 😃
I then repeated the entire process, from editing the files in Inkscape to generating the RML file, and reset all the origin points again in VPanel.
This was the toolpath of the new board and this time, no short circuits!
Setting the Z axis again:
These are the results:
Now, to actually build the board, these are the components I will need:
Step 1: Prepare the PCB
Clean the PCB board and ensure it is free from dust or debris. Place it securely on a heat-resistant surface.
Step 2: Heat the Soldering Iron
Let the soldering iron heat up to the appropriate temperature, roughly between 300°C – 343°C.
Step 3: Tin the Tip
Before soldering, melt a small amount of solder onto the iron tip. This is called tinning and it helps with heat transfer and prevents oxidation.
Step 4: Solder the Components
Place the component on its respective pad on the PCB. Heat the solder pad and component lead simultaneously with the soldering iron, then apply solder to form a clean joint. Start with the smallest components first (resistor, LED) and finish with the XIAO ESP32-C3 last.
Step 5: Inspect the Joints
A good solder joint should look shiny and smooth with a small cone shape. If the joint looks dull or grainy, reheat it as it may be a cold joint. If solder is bridging two pads together, use solder wick to remove the excess.
Step 6: Clean the Tip
Keep the soldering iron tip clean and free of oxidation throughout the process by wiping it on a wet sponge or brass wool ball regularly.
After soldering all the components, you need to make sure everything is connected properly before powering up your board.
First, make sure your PCB is not connected to any power source. Set your multimeter to continuity mode,this is usually the setting with a small speaker or sound wave symbol. In this mode, the multimeter will beep if it detects a good connection between two points.
Take the two probes of the multimeter and place one on each point you want to test,for example, one probe on a component pad and the other on the trace it should be connected to. If the multimeter beeps, the connection is good. If it stays silent, there is a break or bad solder joint somewhere that needs to be fixed.
This test helps you catch any problems like broken traces, missing solder joints, or accidental short circuits between pads before you power up the board, saving you from damaging your components.
It took me some time to solder the components, mainly because I was a beginner. Practicing on plain boards felt easier than soldering directly onto the actual PCB. My hands were shaking a lot, and some of the pads ended up with uneven solder joints, but overall, it was a really fun.
This is my soldering video:
The results:
Step 1: Install the ESP32 Library
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.jsonStep 2: Download the ESP32 Package
Step 3: Connect Your Board
Step 4: Enter Boot Mode
Step 5: Upload the Code
I used Claude AI to help me generate a simple blink code for my board.
This was the simple code it generated:
#define LED_PIN 2 // D0 = GPIO2 on XIAO ESP32-C3
void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(115200);
Serial.println("Hello Fab Academy! Blink starting...");
}
void loop() {
digitalWrite(LED_PIN, HIGH); // LED ON
Serial.println("LED ON");
delay(1000); // wait 1 second
digitalWrite(LED_PIN, LOW); // LED OFF
Serial.println("LED OFF");
delay(1000); // wait 1 second
}
The LED turns on and off repeatedly every second, creating a blinking pattern.
The best part of this week for me was soldering the components. It was much more harder than I expected, especially since practicing on plain PCB boards felt easier than working on the actual board. My hands were really shaky, and I honestly felt like a surgeon while soldering 😆. I made several mistakes throughout the week,from designing the PCB in KiCad to milling it and soldering the components,but I’m glad I had the chance to learn from them and do better next time.