Upgrading IOIO Firmware to 5.04

The Micro Rover applications use the IOIO board to communicate to the motors/actuators. The Micro Rover applications require version 5.04 of the IOIO firmware. The following provide the detailed instructions for upgrading the firmware:

Prerequisites

  1. IOIO OTG Board
  2. IOIO-Dude
  3. IOIO firmware
  4. Micro-USB cable
  5. Jumper Wire 
  6. Linux, Mac or Windows Workstation

Procedure

  1. Download the latest IOIODude
    IOIODude is a Java command-line app that works on Linux, Windows, and Mac
    On Linux / OSX, you may need to add execute permissions to the bash script after unzipping
    $ chmod a+x ioiodude
  2. Put your IOIO into "boot loader" mode following this sequence:
    • Power off the IOIO (detach it from a power supply AND from the PC, until the red pwr LED is off).
    • Jumper the boot pin (near pin number 34) to GND.
    • With the jumper in place, plug the IOIO to your PC, using a micro-B cable. The IOIO should power on (red pwr LED is on) and the yellow stat LED should be on as well (in fact, the boot pin in connected in parallel to the IOIO pin which controls the LED, so by jumpering boot and GND you are forcing it to light!).
    • Now, remove the jumper. The stat LED should blink a few times, telling you that the bootloader is now running.
    • Once done blinking, the IOIO should enumerate itself on your PC (i.e. you should see it in the Devices screen in Windows or in lsusb on Linux).
    • **If you are using Windows, and this is the first time you are using the IOIO with your PC, you may be asked for drivers. Download the IOIO Windows driver from the Downloads page, and point the driver installation wizard at it. On other OS, you should need no drivers.
  3. Test that the IOIO Board is Bootload Mode:
    (Windows)ioiodude --port=COM<number> versions</number>
    (Linux / OSX)
    ./ioiodude --port=/dev/tty<whatever> versions</whatever>

You should receive this output:
IOIO Bootloader detected.
Hardware version: SPRK0020
Bootloader version: IOIO0400
Platform version: IOIO0030

  1. Locate the *.ioioappfirmware and to write the image simply run:
    ioiodude --port=<your_port> --reset write <new_firmware>.ioioapp
    Comparing fingerprints. . . Fingerprint mismatch. Writing image. . . [########################################] Writing fingerprint. . . Done.

Typically, programming will take around 3-4 seconds. Or otherwise, if you are trying to install the exact same firmware your IOIO already has:
Comparing fingerprints. . . Fingerprint match = skipping write.