THE FINAL RESULT


Step5:FAB ISP programming

To program the Fab ISP that's going to be a programmer for another board you have to had a Fab ISP first ! I didn't have another working ISP and I found tutorials that Arduino it self can be used as an ISP programmer for AVR microcontrollers, So I went for this option and I used it to program the Fab ISP.


  1. Make the Arduino As an ISP programmer
  2. After reading this tutorial on Arduino Website, I figured out that there is a code that should be downloaded to the arduino first. This code turns the Arduino to AVR ISP. I connected a led circuit also that gives an indication if the code is downloaded successfully and running.

    This circuit is for visual feed back

    I connected the same circuit and pluged the Arduino into my Labtop.


    I open the Code then from tools I selected the Arduino as an ISP.

    I made sure that the right com port on which the Arduino is connected is selected.After thst I uploaded the code.


    The visual feedback circuit should act as the following:

    • Heartbeat - shows the programmer is running
    • Error - Lights up if something goes wrong (use red if that makes sense)
    • Programming - In communication with the slave

    After Uploading the code it worked well and the code was uploaded successfully


  3. Connect Fab ISP to the Arduino
  4. Now the Arduino Board is ready to act as an ISP programmer and I will use it to program my Fab ISP


    I connected the right pins to each other between the Arduino and FAB ISP except the reset pin of the Fab ISP should be connected to pin 10 on the arduino board and the reset pin on the Arduino is connected to nothing.Also a capacitor should be connected between reset and ground pins.


    The capacitor should be connected to absorb the reset signal while programming to allow programming through the board not progrmming it.


  5. Backup enviroment PATH and download WinAVR
    • Enviroment Variables:Environment variables hold values related to the current environment, like the Operating System or user sessions. These variables are dynamic and affect the way running processes will behave on computer.
    • Enviroment Path: is an environment variable on operating systems that specify a set of directories where executable programs are located.Each executing process or user session has its own PATH setting.

    We backup the path because may be while installing WinAVR all the directories on the path will be replaced with the WinAVR path and this will affect all the processes running on the computer.


    Open regedit from windows search then go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.

    Right click on the path then modify and copy its content to any word file.


    Download WinAVR then compare the new path content with the old one backed up. If it's changed then we will add semicolon then copy and paste the old path content. For me it was added already so I did nothing.

  6. Upload the code
  7. DownloadFab ISP firmware then un zip the file.

    Open make file in the fab ISP firmware folder with Brackets

    Change the com number to the com on which Arduino board is connected to.


    Open windows command prompet then change directory to the firmware folder, Type make clean then type make hex.Errors appeared and I neglected it.

    Type make fuse and wait till verifying and writing.


    After a sentence of fuse ok appears, Type make program.

    Another fuse ok appeared and this means the program is successfully installed.


    The soldered jumper should be removed to prevent any program from being uploaded to the fab ISP.


The board is programmed successfully!!

Resources I used in this week:


Contacts & Refrences

We are all Makers