week 5
electronics design
<<<back

this week we started pcb design, something i'm super interested in but definitely have no experience. i started with high hopes of making a pcb that guides my final project which includes 4 motors and many leds, but i decided for this week to just do a simple pcb that breaks out the xiao board, similar to the design shared in class created by adrian torres.

i started by downloading kicad and downloading the fab electronics library for kicad which contains a helpful list of parts that the fab labs at mit keep in stock. i just wanted to do a basic board that had a few connectors, an rgb led, and a switch, potentially to continue developing my zipper idea from before, but i downgraded my idea even further when i started to realize how much i had to learn. so i started by mocking up the design in kicad with only three parts, i used an rp2040, included a switch, an rgb led, and a 7-pin connector.

i started on the rgb led board by arranging components in kicad, arranging in the pcb editor, and producing a traces and outline png for use in mods project.

i wanted to also practice milling throughholes so i made the design such that i could either solder the smd rgb led on the pads or i could use the throughholes to use the common rgb led also. milling traces on the roland went super smoothly (i love the roland!) and then i went to upload the outline and throughholes files. i assumed that we would call the throughholes outlines and mill them that way, and indeed roland does work that way, but the throughholes that i had made on kicad were too small. they weren't recognized as solvable with the 1/32nd endmill. you can see that the toolpath only recognizes the larger throughholes defined on the microcontroller.

there were two solution options, the first was to just mill the smaller holes (but the rgb led legs wouldn't fit), by adjusting the tool size and changing the endmill, which is nice to know.

i ended up milling the throughholes with the 1/64" endmill as a test and also with the 1/32nd endmill. then i moved to soldering.

the biggest design flaw was my use of the under-board ground pad. i tried and tried and tried to solder it to the board but not only was i unsucessful, i ripped the copper off the backing and ruined the pad entirely. but never fear, i just soldered a jumper wire from ground to the button pad.

my solders are getting better and i'm getting better at flowing between components and finding it quite satisfying. the smaller components were actually not hard to solder with a fine tip and that was quite a nice realization (that i can do this!).

the board came together in around 10 minutes.
notice here that i used the same size resisitor (1k ohm) for each data leg of the rgb led. i know that this isn't appropriate (that the red leg needs to be sized differently) but we didn't have a large range of resistors in the lab so i couldn't size it appropriately and will figure it out programmaticly.

it works!

here is my code! i used the arduino ide for this project.