Many Iowa Scaled Engineering products contain firmware loaded into the onboard microcontroller. While every effort is made to provide the latest and greatest firmware when the product is shipped, bugs are discovered (and fixed) and new enhancements are added periodically. Fortunately, updating the firmware yourself is an easy process. The instructions below assume a Windows operating system, but the same basic process applies to other operating systems.
Step 1: Obtain Programmer
To update the firmware, a programmer is required. Most of our products are based on Atmel AVR microcontrollers. While any AVR programmer can be used, the instructions here are based on the USBtinyISP version. This programmer is available in kit form from Adafruit or fully assembled from SparkFun.
Step 2: Download Firmware
Firmware updates are provided by Iowa Scaled Engineering as a download from our website. After downloading the zip file and saving it to your computer, unzip it by right-clicking on the file and selecting Extract (or Extract All). Follow the prompts to extract the file.
Step 3: Install Driver
In Windows, the USBtinyISP programmer requires drivers to be installed. First, plug the programmer into a USB port on your computer. Windows may detect the device but issue a warning. You can ignore this.
Next, download the Zadig driver installation utility and run it. Click “Yes” if asked to allow the program to make changes to your computer. Next, select the USB device in the box at the top:
If multiple devices are listed, you may need to cycle through them until the USB ID matches the values shown below. Note: the device name may differ from that shown above – the key is to find the device with USB ID = 1781 / 0C9F.
Next, select the libusb-win32 driver by clicking the up/down arrows next to the box:
Finally, click the Install Driver button. After the installation is complete, you will get a confirmation:
To get the programmer to be recognized by Windows, unplug it temporarily and then plug it back into the USB port. Windows will recognize the programmer and finish installing the drivers.
Step 4: Attach Programmer to Device
The USBtinyISP programmer has the ability to supply power to the device being updated. However, some Iowa Scaled Engineering products use a different supply voltage than that provided by the programmer so we recommend disabling this feature. For the SparkFun board, slide the switch to the “No Power” setting. For the Adafruit programmer, remove the jumper (if present) at the end near the flat cables.
Since the programmer will not be supplying power, the device being updated should be powered by its normal means (batteries, power jack, MRBus network connection, etc). Be sure the board has power before attempting to program it!
The programmer has both a 6-pin and a 10-pin female header. We will be using the 6-pin header. The cable connected to the header should be marked with a red stripe on one side. This indicates the Pin 1 end of the header. On the device being updated, locate the 6-pin male header. This header will have an arrow pointing to one of the pins – this is also Pin 1.
Connect the female header from the programmer to the male header on the board, aligning the red stripe on the cable with the Pin 1 arrow on the board.
Step 5: Run the Update
Back on your PC, double-click the flash.bat file to start the update:
The programmer will upload the new firmware, showing its progress as it goes. If everything is connected correctly and the programming succeeds, you should get a screen similar to the one shown below.
Wrapping Up
Congratulations! You have successfully updated the firmware in your product. You can now disconnect the programmer and begin using the device with the new firmware.