4. Electronics production¶
This week I worked on Electronics production. We learn how to produce PCB (Printed Circuit Borad) with different technologies, but I will focus on the cnc milling machine. So Let’s learn and understand how it works.
Hero Shots¶
Assignement requirements¶
Group assignment:
- Characterize the design rules for your in-house PCB production process: document feeds, speeds, plunge rate, depth of cut (traces and outline) and tooling.
- Document the workflow for sending a PCB to a board house
- Document your work to the group work page and reflect on your individual page what you learned
Individual assignment:
- Make and test a microcontroller development board
Group Assignement¶
Here you can fin the link to the group assignement.
Useful links¶
Individual assignement¶
For the individual assignement, I now go back to my own LAB to make it with my own LAB Machine. It’s include thinkness test, machine characterize, documenting workflow and make & test the famous quentorres Development board.
Step 1 : Files preparation for CNC milling¶
I now use Mods Project an open source project online that help you to generate toolpath gcode for cnc from many types of files : png, svg, raster image etc.... To use Mods click on this Link Then right click on your mouse > programs > open program > gcode : mill 2D
Now you can upload the image you want to generate the gcode toolpath for the cnc machine.
For the assignement project i use FlatCAM software to help me configure et generate the differnts G-code to produce my PCB
First thing we have to do is to export the differents fabrication files of the assigenement quentorres into flatCAM after downloading them Here.
Let’s do that !!!
- Open FlatCAM -> File -> Open -> Open Gerber and then select the face cut file with the indice F_CU. do the same but at this time select the cutout file Edge_cut.
- File -> Open -> Open Excellon. Now select the Hole file with the indice .PTH.
After exporting all these three files you will have it like this in flatCAM.
You will observe that the file is not position to the origin. Note that is very important to move the production to the origin to avoid some machine bugs.
To do this you just have to firstly select all the design (just do a drag to select them all) after the selection go to Edit -> Move to origin and the image will automatically move to the origin.
Toolpath Generation¶
We can now proceed to the different toolpath generation. Start with the board traces, Double Click on the F_CU file and a dialog box will open to help you first generate the Geometry and then click on isolation Routing.
this box dialog will open and you will fill the different parameters :
- Tool Diameter : 0.33 (represent our tool diameter, here is V-Bit the tool type);
- Passes : 5 (Reprensents the nombers of passes);
- Overlap : 10 (reprensents the passes superposition);
Then click on Generate Geometry to generate the diffents path. Here’s the result !
Now we have the geometry we can generate the CNC Job by setting up the different parameters in the dialog box. Here are the parameters i put :
- V-Tip Dia : 0.3112;
- V-Tip Angle : 30°;
- Cut-Z : 0.0351 (In the newest version of FlatCAM V-Tip Dia and cut Z are linked so you have to modifiy the value of the V-Tip Dia in order to have the right valut for cut Z);
- Travel Z : 5;
- FeedRate X-Y : 90;
- FeedRtae Z : 60;
- Spindle speed : 10000;
and then click on Generate CNCJob object to generate Gcode.
Double click on the edge cut file. Then click on Cutout tool to configure it. this box dialog will open and you will fill the different parameters :
- Tool Diameter : 1.5 (represent our cut tool diameter);
- Cut Z : 1.8 (Reprensents our material thinkness);
- Multi-depth : 0.6 (reprensents the numbers of passes for a progressive cut to avoid tool broken);
- Margin :
- Gap Size : 4 (reprensent the gaps to avoid the board fly or move while cutting) select bridge;
Now click on generate geometry !
Now the geometry generated, we can generate the G-Code for the board cutout. Here are the parameters i use for the board cutout
- Cut Z : 1.8 (Reprensents our material thinkness);
- Multi-depth : 0.6 (reprensents the numbers of passes for a progressive cut to avoid tool broken);
- Travel Z : 5
- Gap Size : 4 (reprensent the gaps to avoid the board fly or move while cutting) select bridge;
- FeedRate X-Y : 90;
- FeedRtae Z : 60;
- Spindle speed : 10000;
and then click on Generate CNCJob object to generate Gcode.
G-Code Generated !! For the holes double click on the excellon file and then select all the hole preselected by the software. After selecting them click on Drilling tool to configure the path.
- Cut Z : 1.8 (Reprensents our material thinkness);
- Multi-depth : No need here (reprensents the numbers of passes for a progressive cut to avoid tool broken);
- Travel Z : 5
- FeedRtae Z : 120;
- Spindle speed : 10000;
and then click on Generate CNCJob object to generate Gcode.
All the file are ready. Let’s go for the board cutting !!!
Step 2 : PCB production CNC Milling¶
Some specifications abouut the machine and the tools I used.
Machine Charaterize¶
Variable | Description |
---|---|
Model | 4040-XE |
Active Working Area | 400x400x55mm |
Spindle Power | 300W |
Stepper Motor | NEMA 23 |
Accuracy | 0.1mm |
Maximum Moving Speed | 2000mm/min |
Input Voltage | 110V/220V |
Input Current | 110V/10A;220V/5A |
Control Method | Computer & Controller |
Support Software | Compatible with Grbl-control software |
Machine Size | 760x620x360mm |
PCB Milling Settings¶
PCB Isolation Routing V-Bits | PCB: CutOut tool End Mill | PCB Hole tool Drill |
---|---|---|
Bit Type: V-Bit | flat-end Mill | Drill |
Bit Size: 0.3 mm | 1.16 mm | 0.8 |
cut depth: -0.1 | -0.4 mm | -1.8 mm |
max depth: -0.1 | -1.8 mm | -1.8 mm |
cut speed: 4 mm/s | 4 mm/s | 4 mm/s |
Plung speed: 4 mm/s | 4 mm/s | 4 mm/s |
Machine controlling¶
The softxware I use to control the machine is Candle who is an open source software for CNC Machine. Download and install it before continuing. Before you launch a Job here are the steps you have to do :
- Verify the connection cable between computer and the machine ;
- Connect the software to the machine ;
- Place the tool depending on the work you want to do;
- Place the material on the machine and fix it with scotch or the join screw;
- Set Z0 with a paper;
- Set the X0Y0 depending on where you want to cut the Job and your material size;
- NB: Note that the X0Y0 doesn’t have to change until all the Job are finish, if you lost it or the machine disconnect once is finish, you will have to restart from the begining; So pay attention to this very carefully.
- Now you can launch the work.
Results¶
TADAM !! I was so proud !!
Step 3 : Soldering and testing¶
The tools i used for soldering :
- Soldering Iron;
- Multimeter (To verify the continuity);
- Electrical Scotch (to help maintain some component on the board);
- Third hand loop (To hold the board while soldering and see well the traces);
- Hot air Gun (for SMD soldering);
- A Twist (to move SMD component)
Code¶
const int LED = D0;
void setup() {
// put your setup code here, to run once:
pinMode(LED, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED, HIGH);
delay(2000);
digitalWrite(LED, LOW);
delay(2000);
}