Assignment 4
Brief
- Make and test a microcontroller development board
- extra credit: make it with another process (not completed but have some links :D)
Learning this workflow and seeing the 'Mods' project was very interesting. Retrospectively I think this was a perfect setup for the CNC week.
A quick reflection...
This weeks assignment was siiick! Going from a file to a completely milled board in less than an hour was eye-openning (I didnt realise it could be as quick as 3D printing). Being able to mill your own PCBs would be an absolute game-changer for a few of my projects, but the only downside would be the difficulty in making double sided-boards. A ground plane and a trace here or there on the back is just too useful!
I think this workflow would be very handy for those that are willing to take the time to export and watch the mill run but you get something very quickly and can debug before it arrives. Protoboards still have lots of merit but need keep you completely tied up. But sending them off to a PCB fab house like PCBWay, JLC, PCBgogo are all just as easy - you just have to wait!
One idea that might help this process is making submodules where necessary, and trying to keep a linear pattern so traces can be routed easier.
To conclude, I think I'll stick to sending PCB's off for personal projects, then protoboarding, but if technology improves and a gerber can be exported directly from KiCAD or similar, I'll definitely consider grabbing a PCB mill.
Make and test a microcontroller development board
For this weeks assignment we were going to mill a custom breakout board for the Xiao RP2040. Claire prepared a quick board that was a derivative of the board she designed in week 8. We would keep the same schematic and only change the board outline.
Exporting from KiCAD
We printed out the SVG's from KiCAD, and modified them in Inkscape to make them compliant for Mods our G-Code generator for the SRM-20.
Generating G-code
We had to fix a couple (of annoying) issues in Inkscape:
- Ensure the edge of the SVGs are uniform across files,
- Remove internal holes from the Top Copper layer, this is handled by the drilling pass.
- The board outline should be white on the inside
- The holes should be black
- The traces and pads should be white
With the SVG's formatted we could pass them into Mods and generate G-Code
### Milling the board
Like in the group project we do the following: 1. Zero the machine 2. Move our job to the best spot (zero again, leaving whitespace) 3. Start milling process and swap bits for outlines
Testing the board
Now we have the PCB but how can we make sure it will work?
First tests
Before we even get the PCB off the mill we should make sure the traces arent shorted. Using a multimeter in continuity mode test the adjactent pads arent shorted. This is also good to do when recieving PCBs from a fab house.
We might have to re-mill the traces a bit lower.
Once we're all good we can remove the PCB - Thankfully we were!
Soldering
Since the board uses the top copper and we milled the top copper... we would have to solder extra long headers or reverse the Xiao. Both not great options so something to fix up for future PCBs!
I have quite a bit of experience soldering so zipped through this...
...having soldered over 1000 Raspberry Pi Pico boards using drag soldering.
When learning to solder a few of the mistakes I made was being impatient, not waiting for everything to heat up. Taking a step back, watching some videos and guides helped a lot.
Using the Microcontroller
3 tests were going to be performed (In Assignment 6) 1. Does the onboard LED work? Set the pin high and low, observe it turning on and off 2. Does the onboard button work? Read the pin, observe the serial output outputting the state 3. Do the GPIO outputs work? Wire one to another, set one high and read the other
I find that just trying and failing is the quickest way to learn (then inevitability having to look at documentation), but for programming, copying other peoples projects is sooo good (and GPT). Some excellent resources include but are not limited to: * Pico workshop | Core Electronics * Random GitHub repos in the language you are programming in * Forum's - use the ones that relate most to the problem you are trying to solve
Different Manufacturing Process
3D printing a PCB * 3D-Printed GPS Speedometer * 3D-PRINTED MACRO PAD
Using other conductive materials * Conductive Stainless Thread * Conductive Material Pack * Electric Paint Sachet
Shoutout to this master of prototyping: Techniques and Strategies for Building Electronic Circuits | Leo's Bag of Tricks