Electronics Production
Group assignments
- characterize the design rules for your in-house PCB production process
- submit a PCB design to a board house
My group assignments
Individual Assignments
- make and test a microcontroller development board that you designed
- extra credit: make it with another process
Have you answered these questions?
- Linked to the group assignment page
- Documented how you made the toolpath
- Documented how you made (milled, stuffed, soldered) the board
- Documented that your board is functional
- Explained any problems and how you fixed them
- Uploaded your source code
- Included a ‘hero shot’ of your board
PC working environment
- PC: MacBook Pro(16-inch,2019)
- OS: Sonoma 14.7.2
- Terminal: zsh
hero shot
hero video
Original development board
In this case, we used the one created in week6.
1.Board design
-
Schematic
-
PCB
2.tool path
2.0 add filled zone(Kicad)
There seem to be several advantages, but in my case, I chose Fill GND to reduce the machining area and shorten the machining time.
In my case cutting time was reduced by 1/3.
2.1 Export file
file > export > SVG
2.2 V Carve Pro Operation
-
As a preliminary preparation, convert the exported SVG file in Kicad to a PNG file.
-
Create New File Open Create a new file
- job setup
Set up the left material you will use.
my setup | |
---|---|
width | 100mm |
height | 75mm |
thickness | 1.6mm |
NOTE :
Note the following as it relates to the work that follows, “Setting the User Origin for V Panel Operation”.
Set Z Zero Position to Material Surface
- The instructor told us that Zero Position is set to Material Surface in order to make delicate cuts in base cutting and to make thickness variation more uniform.
XY Datum PositionUser
- Be sure to uncheck Offset.
- Fileをimport
file > import > import Bitmap > open File
- Trace Bitmap
1.setting 2.Preview 3.Apply 4.Delete superfluous layers that overlap
- Grouping of outline and pattern separately
Ungroup Right click > Ungroup Object > Ungroup back onto original object layers
grouping Right click > Group Objects
- Material setup
Check that there is no difference from the value set in job setup, and click “OK” if there is no difference.
Pocket Toolpath
- Add the endmill to be used. If none, add the following
1.select 2.+ 3.tool diameter,flutes 4.Apply 5.Select
my setup | |
---|---|
diameter | 0.4mm |
flutes | 2 |
Feeds and Speeds
- Spindle Speed > 15000 r.p.m
- Chip load > 0.005 mm
- Feed Rate > 150 mm/min
- Plunge Rate > 200 mm/min
- setting passes
1.Edit passes 2.depth 3.Number of Passes > set passes 4.OK
my setup | |
---|---|
Depth | 0.2 |
Number of passes | 1 |
- select offset,climb
- Calculate
Calculate it as follows.
3D
2D
Profile Toolpath
- Add the endmill to be used.
1.select 2.+ 3.tool diameter,flutes 4.Apply 5.Select
my setup | |
---|---|
diameter | 0.8mm |
flutes | 2 |
Feeds and Speeds
- Spindle Speed > 15000 r.p.m
- Chip load > 0.005 mm
- Feed Rate > 150 mm/min
- Plunge Rate > 200 mm/min
- setting passes
1.Edit passes 2.depth 3.Number of Passes > set passes 4.OK
my setup | |
---|---|
Depth | 0.4 |
Number of passes | 4 |
-
Calculate
-
simulation
Blue frame : result Red frame : Check the Rapid Rate you selected.
- save toolpath
Save each tool used at this time.
0.4mm
0.8mm
3.milling
3.0 MDX-40A, V Panel operation
Pay attention to west-harima week-assignments 08 regarding feed rate, spindle ratio, and origin, and proceed with the following process.
- Fixtured the board to spoil board (sacrificial layer).
NOTE :
-
In FabLab West-harima, Acrylic double-sided tape in 100 yen shop is used.
-
Set chuck (Depend on mill size, change Chuck)
- Mill set(Do not overtighten)
- Set Z Probe and click button to set the Z origin. (NOTE: Z Probe set = tool path origin)
-
Set X0 Y0
- Move the mill to the XO and YO position.
NOTE : It is possible to move endmill fast, but be careful.
- File upload
- If the upload file is remain, "all file delete" and "add file" and click "output". (Automatically, start machining )
- Milling start
-
Vacuum
-
Take off the board from spoil board (sacrificial layer).
-
Take off the mill.
-
Done!
4.Soldering
4.0 Parts Preparation
Actually, there was another 0-ohm resistor, but I failed to take a picture of it...
4.1 Datasheet check
Before Soldering, check the datasheet for components that need attention.
4.2 Resistor mounting
At that time, I was soldering while looking at the PCB I designed, but I accidentally attached a resistor with the wrong value... I realized that it is important to note which resistor value should be used and where, so that I can understand it later when I look at the PCB.
4.3 LED Mounting
Since I installed the LEDs in the opposite way in week4, this time I marked them while looking at the data sheet to make sure I did not make a mistake. This time, I installed the LEDs without making a mistake.
4.4 Button Mounting
Attention to installation polarity
4.5 ESP32S3 installation
This time I put Kapton tape on the back side before installing. (Be careful not to cover the pins.)
I will heat it properly and install it so that the solder flows into the hole. Be careful not to let the adjacent ones touch each other at this stage.
4.6 PinHeader取り付け
The instructor taught me an easier way to install it! This is the West-Harima method :)
4.6 Testing with a multimeter
Wipe off the flux before testing. After testing, I found some soldering defects, so I corrected them.
5.Programming(LED blink)
This time, I programmed using the Arduino IDE.
5.0 Open the Arduino IDE
5.1 Choose Board
Tools > Board > ESP32 > ESP32S3
5.2 Choose Port
Tools > Port > Select the Port you want to use
5.3 Programming
I used the code previously used in week4.
On my board, the pin connected to the LED is D9, and the pin connected to the button is D10, so I just modified that.
const int ledPin1 = D9;
const int buttonPin = D10;
int buttonState = 0;
int i = 0;
void setup() { //declaration of inputs and outputs
pinMode(ledPin1, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin1, LOW);
delay(1000);
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin1, LOW);
delay(1000);
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin1, LOW);
delay(1000);
}
else {
digitalWrite(ledPin1, LOW);
5.4 result
Datasheet
-
ESP32S3
- Pinout
impressions
- I learned that it takes a lot of process and time to design and program a board.
- I was happy to be able to install the LEDs with the correct polarity.
- I thought it would be easier to make mistakes when soldering if I knew which resistor goes through how many resistors when I looked at the PCB design later.