Assignment 4: Electronics Production

PCB fabrication
We decided to fabricate Valentin's version of the ISP-board. At first I tested whether the cutout of 0.1 mm is enough. The board billet was slightly curved in the corner where the SRM20 origin was set, as seen in the picture below. As a result the cut was not through the copper,  so 0.2 mm cut depth was used for the first board.

Actually, the first board didn't come out that well. Against Neil's recommendation, we used FR4. The result is presented in the following picture, in which the pcb was photographed after polishing with steel wool. It  was even worse before. The reason could be a worn drill bit, but that needs to be tested.

So, we changed the tool to a v-shaped one with a width of 0.2-0.5 mm, that looks exactly like this. I changed the tool diameter to 0.3 mm in fabmodules. Now the milling result was perfect to my eyes. Only the copper island beside the USB data signals had to be removed with a knife. Later I was told by Juha-Pekka Mäkelä, that there is a handy calculator to determine the v-shaped tool cutting width depending on the cutting depth. In this case 0.4 mm tool diameter would have been better.


I have about 40 years of experience in hand soldering, so I decided to do the assembly with a proper surface mount component prototype assembly line that we have in our Fab Lab, because I had to refresh my skills in using those tools. I used the solder paste dispenser of the Essemtec SMT assembly system to put soldering paste to the pads. Then I placed the components with the pick and place system with a vacuum nozzle. The picture in the middle is the board ready to be soldered using a reflow oven. The left picture shows the paste dispenser, whereas the picture on the right has a non-related component held by the vacuum pick and place nozzle..


After the warm-up period

the board was placed in to the holder.

The oven then preheats the board

and reflows it.

As the result, we have a freshly baked pcb.


I had earlier programmed my usbtiny programmer with Juha-Pekka and Dorina, without properly documenting the process myself. So I went through everything again to my already programmed usbtiny, to which I had to add the jumpers, which were remove after initial programming.

The following resources were used:

FAB ISP programmer provided by Jani tutorial for FabISP Programming.

Install software tools:

Open Terminal and type:

sudo apt-get install flex byacc bison gcc libusb-dev avrdude  

Then type:
sudo apt-get install gcc-avr
- type "y" when asked to do so by your system

Then type:
sudo apt-get install avr-libc

Then type (may already be installed):
sudo apt-get install libc6-dev

And it was already installed.

Download and compile firmware:

Download and Unzip the Firmware:
Move to the desktop

 cd ~/Desktop        
Download the firmware from the Fab Academy Electronics Production page.

Unzip the firmware


Edit Makefile:

make clean:

make hex:

make fuse:

Make fuse gave me an error, as shown above. Googling the error lead me to an instruction suggesting, that I have to create a 10-usbtinyisp.rules file in directory /etc/udev/rules.d with the content:
SUBSYSTEM=="usb", SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c9f", GROUP="adm", MODE="0666"

That I did, but it didn't help. However, I now had the main.hex file, which I programmed in Windows with avrdude:

I remembered, that the faculty workshop uses chemical tin to coat the copper with a thin layer of tin. So, that is what I did to the USB-connector.