Week 5: Electronics production

Group Assignment

For the group portion of our assignment we “characterized” the design rules for our design process. The first step in this process was testing the precision of the end mills of the Roland precision mill (Roland SRM-20).

Roland SRM-20

We did this by etching test line widths with different sizes of end mills (0.01”, 1/32” & 1/64”).

End Mills

See the CAD files and screen images below:

linetest CAD file cut-out CAD file 0.01 32 cut-out

…and here is what the my test characterizations looked like:

Characterizations

Individual assignment

To make my In-Service Programmer (ISP), I used a previous student’s tutorial as my guide, Brian Building the FabTinyISP. The documentation was clear and thorough.

Brian's ISP image

Here are the CAD files and cut file images used to mill my ISP:

ISP trace CAD ISP cut-out CAD trace image cut-out image

Preparation of the CAD files for milling:

Mods image

…and here is the finished cut:

trace & cut

The next step was gathering the components for the ISP:

Components

…and then “stuffing” the board (soldering the surface mount devices (“SMD”)) with the following components:

1x ATtiny45 2x 1kΩ resistors 2x 499Ω resistors 2x 49Ω resistors 2x 3.3v zener diodes 1x red LED 1x green LED 1x 100nF capacitor 1x 2x3 pin header

Here is what the stuffed board looks like:

Stuffed board

With a fully stuffed board, I proceeded to test the connections of the SMDs to the electrical traces with a multimeter. I verified the conductivity of the traces and then proceeded to the software installation. The first step was setting up the development environment on my computer. I had trouble installing crosspack in the MacOS environment, so I switched to the Linux Ubuntu OS on my laptop. I used the following command to install “avr dude” and it’s libraries:

  • sudo apt install avrdude gcc-avr avr-libc make

AVRDude 1 AVRDude 2

I then downloaded the firmware (fts_firmware_bdm_v1), and then created the necessary Hex file I ran the “make” command. That created the necessary files to install this software onto the ATtiny45 microcontroller on my PCB:

make hex file

I then updated the makefile to help the computer identify the programming device I used (Atmel ICE):

atmel ice

After saving the updated file, I connected the Atmel ICE controller to my laptop and to the PCB I stuffed to install the software. Then I flashed the ATtiny45 with the “make flash” command:

make flash

With the PCB flashed I set up and configured the fuses on the PCB:

fuse configuration 1 fuse configuration 2

Then I tested the USB functionality using the “lsusb” command:

function test 1 function test 2

My initial test failed, but I was able to get the PCB to function on the second test (not shown in an image). I then converted the reset pin on ATtiny45 to a GPIO pin with the “make rstdisbl” command, which disables the PCB’s ability to be reprogrammed going forward.

reset fuse 1 reset fuse 2

Lastly, I disconnected the Vcc from Vprog by removing the bridge from the solder jumper. Finished ISP Programmer!!!

PCB final