Art Controller Firmware

From Evil Mad Scientist Wiki
Jump to: navigation, search

This page is part of the documentation for the Art Controller kit.

Default Firmware[edit]


The default firmware for the Art Controller is available for download here. (12 kB .zip archive)

Hardware Requirements[edit]

Reprogramming the Art Controller requires an AVR ISP programmer with a 6-pin interface cable, such as the USBtinyISP (or the ISP Shield on top of a shield-compatible Arduino, and with a 6-pin ribbon cable added).

Connect the programmer's cable to the Art Controller's AVR-ISP port, J4. Pin 1 of the port is marked by an arrow; make sure that your cable is oriented correctly with pin 1 of the cable (usually marked by an arrow or red stripe on the cable) towards pin 1 of the port.

The Art Controller needs to have power applied (from exactly one source) during programming. The Art Controller's +5 V rail is connected to the ISP port. If your AVR ISP programmer has the option to provide power to the programming target (the USBtinyISP and ISP Shield do), you can use that to power the Art Controller during programming, however you must ensure that no other power source is connected when you connect it.

Software Requirements[edit]

If you have not already done so, you will need to install free software, AVR-GCC and avrdude, on your computer. This is an open source toolchain for working with AVR microcontrollers

You can find links to installers for these at the top of this article.

Compiling and installing firmware[edit]

A makefile is provided to compile and install this program using AVR-GCC and avrdude.

To use it, follow these steps:

1. Update the header of the makefile as needed to reflect the type of AVR programmer that you use.
2. Open a terminal window and move into the directory with this file and the makefile.
3. At the terminal enter
make clean <return>
make all <return>
make install <return>
4. Make sure that avrdude does not report any errors. If all goes well, the last few lines output by avrdude should look something like this:
avrdude: verifying ...
avrdude: XXXX bytes of flash verified
avrdude: safemode: lfuse reads as 64
avrdude: safemode: hfuse reads as DB
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK
avrdude done. Thank you.

If you a different programming environment, make sure that you copy over the fuse settings to the new environment.


The default firmware for the Art Controller is free software, licensed under the GNU General Public License (GPL).

If you have an application in mind that is incompatible with the GPL, please contact Evil Mad Scientist. (Additional license options may be possible. )



Please see Art Controller Software Hacks for alternative ideas for Art Controller firmware.

Additional hints for custom firmware[edit]

  • Refer to the schematic diagram for the location of the I/O pins on the Art Controller.
  • Pin PB4 (physically, pin 16 of the microcontroller) goes to the transistor that drives the relay. All 16 other pins (excluding 1 (reset), 10 (ground) and 20 (power)) can be repurposed as I/O pins to suit your application.
  • If you need a lot of extra I/O pins, consider not installing the DIP switch, to expose an extra 8 pins.
  • Refer to the Hardware Variations page for additional hacking hints.
  • Refer to the ATtiny2313's datasheet for additional AVR microcontroller functions.
  • The ATtiny4313 microcontroller is compatible with the Art Controller. This is a "drop-in" upgrade from the ATtiny2313, with twice the available memory. If your custom application needs more memory, this is a nice way to get it.