Upgrading Finch's Firmware

You may wish to change the Finch's default firmware; you are free to modify the firmware, which is open-sourced and described here. The procedure for updating firmware is not difficult with the right set of tools.

Required Software and Hardware

  • You will need an AVRISP2 firmware programmer, available here. There are a number of lower cost programmers available that emulate the AVRISP2, like this one.
  • You will need to install software for downloading the new firmware. AVR Studio is standard in Windows. If you prefer an open source tool, you can get avrdude by installing WinAVR (Windows), Crosspack (Mac), or just sudo apt-get install avrdude (Linux). 

Laproscopic Finch Programming

Read this forum post for a minimally invasive way to reprogram the Finch - it is much easier than completely disassembling the robot.

Open the Finch for Programming (old method)

  1. With pliers, carefully pull out the black IR LED shrouds.
  2. Remove the top shell by flipping the Finch over and unscrewing the four screws: 
  3. Plug in the AVRISP ribbon cable into the ISP port on the Finch's circuit board, such that the ribbon cable points away from the board: 

Using Atmel Studio 6 to download the Firmware

  1. Plug in AVRISP and Finch
  2. Launch Atmel Studio 6
  3. Click Tools->Device Programming or Ctrl-Shift-P:
  4. In the resulting menu, (1) select the Atmega16u4 in the device menu, (2) Click on "Memories", (3) Select the firmware hex file by clicking the file browser button (...), and (4) Hit program.

Using AVR Studio 4 to download the Firmware

  1. Plug in AVRISP and Finch
  2. Launch AVR Studio
  3. Click the "AVR" button in the top ribbon: 
  4. In the resulting menu, click on the Main tab, and under Device select "ATmega16U4": 
  5. In the "Program" tab, in the flash section, select "...", and browse to the .hex file that is the compiled machine code version of your new code. A .hex file is attached to this page of the most recent version (upgrades the IR obstacle sensor system). Once selected, hit the "Program" button. The AVRISP LED will flash orange until programming is done and the Finch's beak LED will turn off. 
  6. Unplug Finch and AVRISP, and go to the instructions for putting the shell back on.

Using avrdude to Download the Firmware

  1. Get the makefile and Finchr2.hex file attached to this page.
  2. Download the avrdude.rc file attached to this page and place it in the same directory as the avrdude.conf file.
  3. Plug in Finch and AVRISP2.
  4. Type "make program" at a command prompt in the directory in which the Makefile and .hex file are located (both files need to be in the same directory). 
  5. Unplug Finch and AVRISP, and go to the instructions for putting the shell back on.

If you want to download different firmware, setup your Makefile so that it targets the right hex file. Change TARGET in the attached Makefile to your program's name (without .hex). 

Reassembling Finch

  1. Line up the shell and ensure that all of the Finch's sensors are visible through their respective holes: 
  2. Place the IR shrouds back on the IR LEDs. We suggest looking at the LED through the wheel well while doing so, as it is fairly easy to push the shroud too hard, causing the LED to be pushed up and backwards. If this happens, remove the shell and bend the LED back in place. 
  3. Screw in the four screws to reattach top and bottom shells.

Congratulations, you have updated the Finch's firmware!