Electronics Production


  • Make an in-circuit programmer by milling the PCB (program it, so that you can use it to program your board in Electronics Design week, and in other weeks)
  • Optionally, trying other processes.

What should be done

  • Shown how you made and programmed the board
  • Explained any problems and how you fixed them
  • Included a ‘hero shot’ of your board

This week assignment is to create the FabISP in-circuit programmer using to the schematics provided. I chose to make hello.ISP.44.res board.

Initial Trials

I tried to make the FabISP on our lab's Modela MDX-20 but it wasn't in a great shape. The metallic bed was missing and a sheet of Acrylic was used as a bed and sacrificial layer; Also as in Egypt there was a lack of end-mills below 1mm diameter and the collet was bored to fit the shank of available ones.

I did some first trials to make the circuit with some 1/46 endmills but ended up breaking most of them with no good result.

After some debugging I assumed that the problem could be with either the lack of metallic bed or the bored collet; So, I cut a sheet of 4mm aluminum using a circular saw and drill for the holes and changed the collet with an unused one. The problem when I took a closer look at the movement in the bored collet and the unused one is that there was some significant vibrations in the bored one which I assume has something to do with the difference between the metric and imperial endmills shank diameter.

So After setting everything up I zeroed the endmill on the FR-1 sheet and started milling the traces.

Then I cut out the board using the 1/32 endmill.

I then soldered the components.


For programming the FabISP, I used a USBAsp programmer.

I made a cable for the FabISP and hooked the pins up to the USBAsp's pins using Jumpers using the right order.

Then plugged in the USBAsp into the USB port of my PC.

I edited the Makefile to use the USBAsp.

AVRDUDE = avrdude -c usbasp -p $(DEVICE) 

Made the hex files

make hex

Then set-up the fuse

sudo make fuse

Then programmed the FabISP

sudo make program

After successful programming, i desoldered the zero ohm resistor and the solder jumper.

Afterwards I connected to mini-USB cable to the FabISP. Then ran lsusbcommand to check for connected devices then once more to confirm that the FabISP is read as a programmer by the system.