Electronics Production
This week's assignment: make an in-circuit programmer that includes a microcontroller; optionally customize the design, mill and stuff the PCB, test it to verify that it works.
[1] PCB Mill Design Rules
When you normally design a printed circuit board (PCB) and send it off to a PCB fab house, you need to obey certain design rules -- constraints on properties of the PCB, such as the minimum width of traces or minimum clearance between pads. This is no different when using another form of PCB manufacturing. In order to use the PCB mill at the Harvard shop, the Roland SRM-20, we as a group needed to determine these constraints. Using a 1/64" end mill, we milled out a board which tested the minimum viable trace width and pad clearance that the SRM-20 could handle. The result was the following:
We milled the PCB using the SRM-20 PCB PNG program on mods. The image above shows a mininum pad clearance of 0.016" and a minimum trace width of 0.006". Even though we didn't need to design PCBs this week, we now had the design rules which we could use in the upcoming weeks for PCB design.
[2] Milling PCBs
I decided to mill all three available in-circuit programmers listed on the course website -- two SWD programmers (one with an LED, the other without) and one serial (UART) programmer, all based on the ATSAMD11C14A microcontroller. This what the PCB mill looks like in action:
After milling one of the boards, I gathered its components:
I soldered on the components, and repeated this for the other two programmer boards. As a result, I had these three programmers:
Since I had a little extra time this week, I also decided to mill out the ESP32 example board linked on the class website. After milling out and soldering on the components, I wired it to a strip of 16 WS2812B individually-addressable RGB LEDs and uploaded the awesome WLED project's code onto the ESP32. This turned the ESP32 and LED combination into a Wi-Fi controllable RGB lamp!
Demonstration of LEDs working: