The Innovation Board is the UNL Maker Club’s in-house Arduino-compatible development board. The board has full Arduino Shield compatibility with Arduino Uno, with a few small improvements, including breadboard power delivery, a smaller form-factor, Windows Update-downloadable drivers, no USB power limiting, and In-Circuit Debugging support (using an external debugger, such as an AVR Dragon).
The board is available for purchase from the EE Shop, and comes in the Arduino kits we hand out in our Arduino workshops.
Plug the board into your computer using a USB micro B cable. On OS X, Linux, and FreeBSD, no drivers are needed. On Windows, you should be able to fetch the latest drivers from Windows Update automatically. If that process fails, you may download the drivers here:
Once the drivers are installed, you may follow the Arduino step-by-step Getting Started guide (starting at step 5):
Updating the USB-to-Serial firmware
While the Innovation Board uses the standard Atmel ATMega328 as its main microcontroller, it uses a PIC16F1454 for USB-to-serial conversion duties. There is a USB HID bootloader that allows users to upgrade the USB-to-serial firmware, or to change it outright to something else — without requiring an external programmer.
To upload new firmware to PIC16F1454, short pin 1 and 3 together on the PIC16F1454 programming header (it’s the 5-pin header in the top-left of the board). Then, plug the board into your computer. It will instantiate as a USB HID (human interface device). Download the Microchip USB HID Bootloader software, and use it to program your hex file.
The latest USB-to-serial firmware for the PIC16F1454 is Version 1.1.
- USB-to-Serial firmware (version 1.1) — this file contains the USB-to-Serial firmware only. This is probably what you want to download — you can use the USB HID Bootloader to update this file, as mentioned above.
- USB-to-Serial + USB HID Bootloader firmware (version 1.1) — this file should be used to program a blank PIC16F1454 microcontroller using a PicKit or other programmer. Use this if you’ve inadvertently fried your PIC16F1454 and have soldered on a replacement, or if you’re building a custom board based on Innovation Board
On-Chip Debugging with the Innovation Board
Most advanced embedded projects benefit from on-chip debugging — the ability to step through code and look at variables and function calls. To debug code on your Innovation Board, you’ll need an AVR Dragon (or other AVR-compatible Atmel debugger), and AtmelStudio, which is free to download.
The ATMega328 uses debugWIRE, a one-wire proprietary debugging protocol, to accomplish on-chip debugging. Unlike the Arduino Uno, you can debug your code without any hardware modifications to the Innovation Board — but you’ll need to be running version 1.1 of the USB-to-Serial firmware (see above instructions).
Hook up the debugger to the 2×3 ICSP header at the bottom of the board, paying careful attention to use the correct polarity. Select debugWIRE as the debugging method in AtmelStudio. You’ll have to allow the debugger to program the DWEN fuse before debugging.
A full tutorial on setting up Atmel Studio for Innovation Board debugging of Arduino projects will be posted later.
Hacking the PIC16F1454
The PIC16F1454 has 8 KB of flash memory, runs at 48 MHz, has a native USB 2.0 full-speed peripheral, and is a very capable microcontroller in its own right. There are many reasons why you might want to write custom firmware for this board that is not simple USB-to-serial firmware. Here are some ideas:
- Turn your Innovation Board into a MIDI controller. Program the PIC16 with USB MIDI firmware, and communicate with the ATmega328 using the serial link typically used for Arduino duties. Hook up buttons and knobs to the digital and analog inputs on the board, fire up Ableton Live, and go crazy.
- Electronic business cards. Program the PIC16 with USB HID Keyboard firmware, and wire a button on your innovation board to type out your résumé to the computer whenever pressed.