⚡ Maya Murad

Project 6/7/8:
Electronics Production + Design + Embedded Programming

                                                       The Challenge

  • [Electronics Production] Make an in-circuit programmer by milling and stuffing the PCB, test it, then optionally try other PCB processes
  • [Electronics Design] Redraw an echo hello-world board, add a button and LED, check the design rules, make it and test it
  • [Embdded Programming] Read a microcontroller datasheet, program your board to do something

Characterization of the design rules
for PCB production process [group]

Assembled "clank" (PCB milling machine)

                                                   Clank assembly

While it was overwhelming at first to receive Clank in pieces and assemble it together, the videos Jake put together where very helpful.
Some issues I faced during the initial assembly:
  • Not using the right micro USB with a data line; this resulted in the hardware not being responsive
  • Tightening the end mill holder too tight by mistake and then I couldn't fit any end mills in it anymore; I had to get a spare part to fix it
  • Z motor was overheating, so I updated the firmware as instructed.

Evolution of Clank's test run quality after

                                           Testing Clank's design rules

The first boards I milled with Clank were quite bad, I was able to fix some of them with a virtual troubleshooting session with Jake. I was able to get better results after using the V-shaped bits (instead of 1/64'' flute bit), tightening the belts and updating the z-motor firmware. However the results were still not good enough to produce board reliable enough for the upcoming assignments. For the upcoming assignments, I used the Roland Modela in the Arch Shop and OtherMills in EECS (I enjoyed using OtherMills the most as it's fastest and most user friendly).

I was finally able to get reliable results from Clank after doing an in-person troubleshooting session with Anthony. Some of the issues we fixed include, further tightening the belts, changing the spindle direction of the z-motor, and using 2.5 inch/sec speeds when setting the G-code.

Based on the test results, 0.016-0.017 is the right wire and gap thickness.

                                           In-circuit Programmer

The first board I made using Clank was the FabTinyISP to be used as an AVR programmer. At the time, the result produced by Clank wasn't reliable enough to use.

In my future boards I always used the ATtiny1614 (or 3216) and used the USB UPDI provided in the homelab kit to program my boards.

FabTinyISP produced with Clank - traces were too thin to use

                                           Design Hello World board

The first board I designed had the following components:
  • ATtiny1614 microncontroller
  • x1 tactile switch
  • x1 red LED
  • x1 uf capacitor
  • x2 1K resistors
  • 1x6 connector
  • 2x2 conector

I used Eagle to design the board and it was easy to use. The auto-router function worked well in this simple use case (though not as good in more complext situations), so it was pretty quick quick to design the board.

Programmer used for all my boards

Hello World schematic + board

Milled board on the Roland Modela

Stuffed board

Embedded programming [group]

                                                       ATtiny1614

ATtiny is a family of 8-bit AVR mircrocontrollers. The 1614 is a recent model in the series with 14 pins which can run at up to 20MHz and has a low power architecture.

The datasheet details the ATtiny's pinout, which is very useful when designing boards to make sure we are connecting to right pins. It also includes important information on its memory, peripherals, clock, and more.

ATtiny1614 datasheet

ATtiny1614 pinout

Settings in Arduino to program the ATtiny1614

Code in Arduino to program the Echo Hello World board; the generated hex file is higlighted