An ISP is an In System Programmer used to program or burn bootloaders onto blank microcontrollers. Here, I am using a design for making a FabISP to create a compact ISP programmer. This started off by first milling the board, you can go here to check that out: link.
After milling the board, I then soldered the components onto it. It uses an ATtiny44 as the controller with a 20MHz external crystal. I am following this tutorial to make my ISP: http://fabacademy.org/archives/2015/doc/programming_FabISP.html
Next, I used another pre programmed ISP and connected it to the new ISP using an ISP cable. I then connected the mini USB cable from my PC to the pre programmed ISP board. Make sure to short the jumper contacts SJ1 and SJ2 (use 0ohm resistor) on the new board while programming.
Next, I installed the firmware necessary for doing it by following the steps here: http://fabacademy.org/archives/2015/doc/programming_FabISP.html#mac
After that, I edited the Makefile in the “firmware” directory, which was created while unzipping the “fabISP_mac.0.8.2_firmware.zip” file. I then navigated to the line that said:
#AVRDUDE = avrdude -c usbtiny -p $(DEVICE) # edit this line for your programmer
and uncommented it (removed #). This line is to specify the programmer I am using, which is “usbtiny” and then commented the line that specified the programmer: avrisp2.
Then, I navigated to the newly unzipped directory from my terminal “fabISP_mac.0.8.2_firmware” and performed the command:
make clean
After which I got the response:
Macbook-Pro:Desktop/firmware ARS make clean
rm -f main.hex main.lst main.obj main.cof main.list main.map main.eep.hex
main.elf *.o usbdrv/*.o main.s usbdrv/oddebug.s usbdrv/usbdrv.s
Then I performed the command:
make hex
And then set the fuses of the board:
make fuse
Next, program the board as an ISP:
make program
To verify if the programmer is working, check your USB devices (lsusb or equivalent) to see if there is a new device called “FabISP”. And voila a new ISP is born! Now remove the jumpers on SJ1 and SJ2 to start using the board as a programmer.