8. Electronics Production¶
This week i enjoyed making my own PCB board, which was made using Roland SRM-20 milling machine.I have got the basic hands on experience to use this machine along with the MODs as software to generate rml file for milling and VPanel driver for running the machine.It also comprised of soldering the components required as per my design from week 6 and testing my PCB board with Arduino IDE with programming.
Nevertheless, these processes like milling using SRM-20 and soldering needs patience and attentive with precautions along with the safty.
Assignments for week 8:¶
1. Group Assignment
- characterize the design rules for your in-house PCB production process
- submit a PCB design to a board house
2. Individual Assignment
- make and test a microcontroller development board that you designed
- extra credit: make it with another process
1. Group Assignment.¶
Group Assignment link is here
Learnings outcomes from the group assignment:¶
This group assignment help me learn on the design rules test for PCB production going through the line test taught by Neil in the class. The 1/64” end mill was used for inner traces and 1/32” end mill for Edge.Cuts.The setting for 1/64” end mill before calculating to get rml file were to be having cut depth of 0.004 inch, offset number-4, offset stepover-0.5 and cutting speed of 4mm/s. And for 1/32” end mill, setting cut depth of 0.024inch, offset number-1 and cutting speed 4mm/s.
While operating the SRM-20 milling machine, one need to be attentive throughout.Some safety measures to be considered are holding the end mills while removing/changing, monitoring the curser step for spindle movements to axes, fitting the sacrificial layer and copper clad boards firmly with its bed, and setting the X,Y and Z-axes origins wisely.
2. Individual Assignment.¶
Fabrication of Microcontroller Development Board using MonoFab SRM-20.¶
Processes involved:
1. Exporting F.Cu files and Edge.Cuts files.¶
For this PCB fabrication, i will be using the electronic design from week 6 which i have designed as per the need of my final project.I have used Xiao SAMD21 as my microcontroller.
I have used design from my week 6 assignment
Fistly i opened my design of week 6 and has exported the F.Cu file in SVG format as shown below.
Similarly i have exported the Edge.Cuts file.
Since i was using KiCad 9.0 version, my exported SVG files were not suppoorted for mods.So i had exported my files as PNG format using the Inkscape software.I had resized to content and changed DPI to 950 for both files.
My png files exported from Inkscape looked like this.
2.Using MODS to convert PNG files to rml¶
MODs is a software developed by MIT which was mainly for the PCB milling as it makes easier for the machines like MonoFab SRM-20 milling machine.It converts files like SVG and PNG formats into rml format which can be read by SRM-20 milling machine.
To convert my files, i searched mods from google chrome.
Once i get to the mods, right clicked on the blue icon and selected program.
I continued by selecting ‘open program’ followed by clicking on ‘mill 2D PCB’ under “SRM-20 mill”.
Then the SRM-20 program pop up with the initial outline below.
In the first node in the left i have inserted my png file.Then, under the set PCB defaults node, i have selected the trace mill of 1/64 inch since i have to mill the trace for F.cu first.
I clicked on calculate and view under ‘mill raster 2D’, followed by changing X,Y and Z origins as zero under ‘Roland SRM-20 milling machine’.
This is how my F.Cu traces looked when viewed.
Then i proceed by turning on the ‘on/off’ node located right side and cliched again on calculate under ‘mill raster 2D’ to download my rml file.
Here is the final workflow to download rlm file for F.Cu
I followed the same procedures for downloading the rlm file for Edge.Cuts.But i had to change 1/32 under thge ‘set PCB defaults’ node and changing ‘offset number’ 1 under the ‘mill raster 2D’
links for adding library for XIAO Samd21 here
3.PCB milling using ROLAND SRM-20.¶
For my PCB milling, i used 1/64” and 1/32” end mills for making traces of F.Cu and Edge.Cuts respectively.
The setting of Copper Clad board involved the cleaning of underlay bed and changing the sacrificial copper clad layer.Another copper clad board that can be used for actual PCB work is added.Both the copper clad boards axactly fitted as per the size of the machine bed and were pasted with double sided tape.
Ensured that the copper Clad boards were fixed gently on its bed.
I pressed ‘on’ the power button of SRM-20 milling machine.
Now, i opened the “VPanel” which was the driver for the Roland SRM-20 milling machine and displayed its panel where i jogged the X,Y and Z axes.
I inserted the 1/64” end mill with the help of allen key and tighten it to its spindle and chuck.
I Jogged the X and Y axes to the optimal space by maintaining gap for Z-axis to about 30mm from copper board.I made clicked on “X/Y” under “Set Origin Point” to set origins for X and Y axis.
Followed by making Z-axis zero by making use of ‘Curser Step’ to touch the paper placed to act gently on the Copper clad board.I have used paper for the safety from breaking the end mill.I gave some manual pressure on the paper about its thickness towards the copper clad to ignore the impact of adding paper for levelling.
After setting all axes zero, now it was time to run the SRM-20 milling machine.
Clicked on ‘Cut’ option and upload the downloaded rml file and delated the existing files.Finally clicked on ‘Output’ and the SRM-20 milling machine stared to cut F.Cu layer.
After completing the milling work, i cleaned the working area by vacuum cleaner.
And then removed from the sacrificial layer and cleaned again and took towards the electronics compartment for contuinity test my board.My board showed fine for now.
4.Soldering works for my PCB board.¶
Soldering need practice and patience as it may affect my PCB board without practice. So my Local Instructotrs helped me with demonstration and i have started practising with the damaged components and boards.
After i am done and some confident in soldering, i have collected the components to be use for soldering with my PCB board.The list of materials are as below.
Some of the tools, equipment and materials i have used during my soldering works are listed below.
I started soldering and i checked the continuity of circuits after every components to ensure the working.
I continued soldering.
My final board after soldering looked this way and again checked for the contuinity for all the traces and components.It shows fine.
5.Program run for my PCB board fabricated.¶
As i will be using Xioa SAMD21 as microcontroller for work, i had to look for the pin outs and referred link is here.
To make convenient to use for this work, i have sketched to show the pins and layout for my PCB board as per the design.
I have will be using Arduino IDE to test a simple LED blink with my board.
Since i have to use Xiao SAMD21 as my microcontroller, i had to search for the library package for it.So i have found from this link and copied the link address and pasted under “Preferences” in Arduino IDE.
Then pasted the copied link and clicked OK.The Xiao SAMD21 libarary was added.
Before i run the program with coding, i had to plugged in my PCB board via USB port and check if Microcontroller and LED is blicked.The Light on my MCU blink along with the LED at board which indicated that it is working.
Next i wanted to run a program for my board. I looked for a code to blink LED from chatGPT.
#define LED_PIN 10 // Onboard LED on Seeed XIAO SAMD21
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH); // Turn LED on
delay(500); // Wait for 1000ms
digitalWrite(LED_PIN, LOW); // Turn LED off
delay(1000); // Wait for 500ms
}
The above code pasted from chgatGPT.However, i have changed LED pin to pin 10 as i wanted to try with D10 and changed the LED delay blink time to 1000ms.
From the above codes,
"#define LED_PIN 10 // Onboard LED on Seeed XIAO SAMD21"
This code above means that the LED pin is defined by pin 10 or D10 on Xiao SAMD21.
"void setup() {
pinMode(LED_PIN, OUTPUT);
}
This explains that setup loop function executes once when the microcontroller get started and the pin 10 acts as output that controls the LED.
void loop() {
digitalWrite(LED_PIN, HIGH); // Turn LED on
delay(500); // Wait for 500ms
digitalWrite(LED_PIN, LOW); // Turn LED off
delay(1000); // Wait for 1000ms
}
The above code explains that the it configures continuously after every program.The LED turns on with pin 10 with high voltage and pauses the program for 500 milliseconds.Then the LED gets off and it waits for a second to begin another serial configuration.
To run the program, i had connected using bread board, jumper wires,LED, and my PCB board.I connected the board to computer via USB.
I opened Arduino IDE and clicked to new sketch and pasted my codes.
Next i had selected my board and port for the program.
Followed by clicking on compiling and uploading
Next click on serial monitor and observed the LED blinking every after 1 second.My video showing the blink LED below.
My Learning outcomes from this individual assignment.¶
Here ends my week 8 of Fab Academy, where i could learn basics on producing my own PCB board with design and soldering the components and programming.I have learned that i need to be attentive during the PCB milling as anytime bad will happen or break the trace end mills.Though the SRM-20 milling machine looks small in size, it showed high precision in terms of electronics production.Soldering needs to be taken seriously by using safety measures.
Disclaimer : all the writings are done myself except for the codes referred chatGPT but edited some portions of codes and the links referred are provided along my document.I have explained the codes used