WEEK05: electronics designThis week we learned the basics of electronic circuit design. The lecture was a crash course in EE basics: Kirchoff's laws, electronic design tools, Ohm's law, circuit routing, schematics, and the rest. I have experience in this world, so I held office hours opposite Jake; he taught folks Eagle, while I showed them how to use KiCad. Our assignments were twofold: (a) recreate the Hello World board discussed in the Week 3 lecture, which uses an ATtiny44 to echo charcters over a bit-banged UART connectoin; and (b) use the lab instruments to characterize our devices.
hello world, pcb editionI used KiCad, an open-source EDA tool supported by CERN, to recreate the Hello World board. First, I drew a schematic, adding a switch and an RGB LED with a few current-limiting resistors. I decided to use labels rather than drawing all the wires to keep the schematic clean: Keen observers will notice that I labeled MOSI and MISO with PORI and PIRO: Primary Out, Replicant In; Primary In, Replicant Out. I'm not convinced these particular terms will stick, but I do think it's worthwhile to stop using the language of slavery when describing electronic communication wiring. After cloning the fab KiCad libraries and assigning footprints, I set my design rules to 0.4 mm / 0.4 mm and routed a circular single-sided board with a ground pour that uses the momentary switch to jump over a track, thus avoiding the need for vias: I routed the board on the E15-023 SRM-20, using a single pass with a 1/64" end mill at 0.004" depth and one outline to save time. This created an unexpected problem: since the mill didn't overlap any traces, several of the grooves were packed with dust that I had to pick out using a dental tool. Not much of a time-saver. More concerningly, I also noticed one place the mill didn't quite complete a route, creating a tiny short that I cleaned out with a razor:
Once I had the milled board sorted the soldering went smoothly enough, using 0.020" SAC305, no-clean gel flux, and a big chisel tip on the Weller WES51: I modified the original firmware slightly to toggle the RGB LED color with every echoed character, programmed the board using the hand-carved programmer from Week 03, and gave it a test using gtkterm and a USB-serial cable:
[command: ffmpeg -i VID_20191008_181749.mp4 -filter:v "scale=800:-1" -ss 00:00:00.0 -t 00:00:05.0 -c:a copy out.mp4]