8. Electronics Production
Goals
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 a microcontroller development board that you designed
- [] extra credit: make it with another process
Tools Used
- Concepts - My goto sketching app on the ipad
- Fusion 360 - 3D CAD/CAM software from autodesk
- Roland SRM-20
- GIMP
- Thonny
- ChatGPT
TLDR; Nice images
Group Project
Link to full documentation here
Summary
TODO
Individual Project
1. Testing Fusion 360
For my assignment this week planed to test using fusion 360 for cut my board from week 6.
1.1 CAM and settup
For my test i use the project tools to select a few traces just to try out posting the program.
Under my setup
i defined my stock to be 160 x 100mm x 1.8mm
For posts i used the default fusion Roalnd RML post.
Under machine type select MDX-40 (note that although we are using the SRM-20 this still works)
1.2 Running tests
To suet up the machine is enter V-Panel and jog the x-y axis to aprox 5mm in from the edge of the copper and set my set origin point
under User coordinates system
and then X/Y
To set the z-axis i slowly jog the z axis down until it is close and i then release the grub screw and manually lower the bit down to the copper.
Note: make sure you minimize your stick out on the tool to reduce vibration, i like to have the tool jammed up pretty far in the collet before this step.
Now set set origin point
-> User coordinates system
-> Z
Files are loaded under Cut
then your Add
files before hitting Output
Shot of the file running
First cut was very hairy, but i noticed that the stock looked smooth, this is normally a sign that switching from climb to conventional will help
So i updated the toolpath from climb to conventional and the cut was much smoother
1.2 Tweeks
I was worried about my ability to solder with the pads being close to the other copper, so i wanted to experiment with using a 2D Pocket
to remove all the unused copper.
The results of using a 2D Pocket
to remove all the unused copper were quite impressive. The copper was removed cleanly and evenly, leaving a smooth surface for soldering.
1.3 Results
Testing continuity with the multimeter was successful.
And looking at the tool under the magnifying glass did not show any damage or chipping
2. Making my Quentorres from Week 6
2.1 Setup
For my first full cut, the first step was to create a new setup
and set up my stock size.
I hide all the bodies except copper traces to create a pocket toolpath selecting each of the traces.
And then un-hide the body and select the outline of the board.
Then check each of the loops, and make sure the tool is cutting on the right side of the line using the red arrow.
In the Heights
tab is set the bottom height to be 0.2mm offset from the Stock Top
Set the Multiple Depths
to be each at 0.1mm
My stock to leave is 0.1mm radial
and 0mm axial
Simulation of the pocket toolpath
I then set up a 2d Contour
to finish the traces, in this case i was able to use the silhouette selection to select the outline of the board.
Again, in the Heights
tab is set the bottom height to be 0.2mm offset from the Stock Top
And, Set the Multiple Depths
to be each at 0.1mm
I then decided that the rectangular board was a bit boring.
So used an online generator to generate a squircle.
TODO
TODO
TODO
TODO
TODO
TODO
TODO
TODO
3 Making things flat
TODO
TODO
TODO
TODO
TODO3
4 Trying Again - No Pocket
TODO
TODO
TODO
TODO
TODO
5 If at first you fail, fail again
TODO
TODO
TODO
TODO
TODO
TODO
6 The Mil-enth time the charm
I was going to keep at this tract of thinking but at a certain point out lab actually ran out of 0.4mm endmills so I had to rethink my approach.
The only option i could get working was a 60deg v bit we had and just to keep things as tried and true as possible i decided to switch up my board for a Fab-Xiao
TODO
TODO
TODO
TODO
TODO
TODO
TODO
basic_blink.py
import machine
import time
led = machine.Pin(0,machine.Pin.OUT)
while True:
led.toggle()
time.sleep(0.5)
print("Hello, Pi Pico!")
TODO
TODO
import machine
import utime
# Define pin numbers
ledPin1 = machine.Pin(0, machine.Pin.OUT) # First light (RP2040: Pin 0, ESP32-C3: D6)
buttonPin = machine.Pin(1, machine.Pin.IN, machine.Pin.PULL_DOWN) # Button (RP2040: Pin 1, ESP32-C3: D7)
while True:
buttonState = buttonPin.value() # Read button state
if buttonState: # If button is pressed
ledPin1.value(1)
utime.sleep_ms(500)
ledPin1.value(0)
utime.sleep_ms(500)
ledPin1.value(1)
utime.sleep_ms(500)
ledPin1.value(0)
utime.sleep_ms(500)
ledPin1.value(1)
utime.sleep(2)s
ledPin1.value(0)
utime.sleep(1)
else:
ledPin1.value(0) # Keep LED off if button is not pressed
In Summary
TODO
Things I would do differently next time
TODO
See below link to to files created this week: