Week 7: Embedded Programming

© Jessica Pointing


This week, I programmed my board to blink when a button was pressed. For this week, I used the programmer I made during week 3 and the board I made during week 5.

Programming the board

Programming the Board
  1. Connect the board with an FTDI cable to a computer
  2. Check the programmer that I made in week 3 is actually programmed and recognized by the computer (Go to About my MAC → More Info → USB). The device will be called FabISP
  3. Connect the programmer to the computer using a tinyUSB cable and connect the programmer to the board with a 6-pin wire, and connect that board to the computer using an FTDI cable. Make sure that the 6-pin wire is connected in the right way (ground on the programmer matches to ground on the board).
  4. Download CrossPack which installs the AVR code
  5. Download the hello.ftdi.44.echo.c and the hello.ftdi.44.echo.c.make files. The C code in the file instructs how to execute the given program. Each .c files has to have a .make counterpart.
  6. Open up Terminal and open up the directory where the files are located
  7. Create a .hex file (this transfers the .c instructions into bit information). The command is: make –f hello.ftdi.echo.c.make
  8. Next, program the programmer fuses. The command is: make –f hello.ftdi.44.echo.c.make program-usbtiny-fuses If the connection fails, you will get an error message ‘initialized failed, rc=-1’ If the connection successed, you will get the message ‘AVR device initialized and ready to accept instructions’
  9. Next, program the .c instructions onto the board. Run: make –f hello.ftdi.44.echo.c.make program-usbtiny

Make the board blink

Here is the blink.c. file and blink.c.make file.
make -f blink.c.make
make -f blink.c.make program-usbtiny-fuses
make -f blink.c.make program-usbtiny


  • The board wasn’t fusing!! It was frustrating. There were some dodgy connections somewhere. So I took out the voltage meter and checked every single connection. It turned out that two pins were connected when they weren’t supposed to be. I recommend using the voltage meter to check all connections always!