Skip to content
bobo1on1 edited this page Jul 5, 2013 · 8 revisions

This is the repository of the Art-Net to LED strip controller custom designed for OHM2013.
Many thanks to the developer(s) of the Ethercard library and the developer(s) of the Fastspi library.

The controller is designed around an atmega328, and can be soldered or plugged on top of an ENC28J60 pcb, this pcb can be bought on ebay for about $4.
The atmega328 has an arduino duemilanove bootloader burned in, the firmware can be flashed using the ISP header.

A modified version of the ethercard library is used to interface with the ENC28J60 over SPI.
The FastSPI2 library is used to drive the WS2801 or WS2812 led controllers, make sure you do svn checkout http://fastspi.googlecode.com/svn/branches/FastSPI_LED2

Because at OHM2013 we have led strips at 5 volts with the WS2812 controller, and led pixels at 12 volts with the WS2801 controllers, there is a jumper on the pcb to select pixel or strip output.
The board also has a 5 volt regulator, and a jumper to select between 5 volt and 12 volt input.
This way, you can either power the board directly with a 12 volts power supply and drive a 12 volt pixel string, or power the board with a 5 volts power supply and drive a 5 volt led strip.

The firmware uses DHCP to get its ip address, the 15 least significant bits of the ip address are also used to select its Art-Net universe. For compatibility reasons the firmware also listens to Art-Net universe 0.

To program the board, use an avr isp mkii programmer, then add this to the arduino boards.txt:

LOC.name=OHM LOC
LOC.upload.using=avrispmkii

LOC.bootloader.low_fuses=0xFF
#WDTON fuse is set to 0 to permanently enable the watchdog timer
LOC.bootloader.high_fuses=0xCA
#BOD level is set to 4.3 volts
LOC.bootloader.extended_fuses=0x04
LOC.bootloader.path=atmega
LOC.bootloader.file=ATmegaBOOT_168_atmega328.hex
LOC.bootloader.unlock_bits=0x3F
LOC.bootloader.lock_bits=0x0F

LOC.build.mcu=atmega328p
LOC.build.f_cpu=20000000L
LOC.build.core=arduino
LOC.build.variant=standard

Then in the arduino IDE, select the "OHM LOC" board, burn in the bootloader first to set the fuses and choose upload.

Schematic:

Pcb:

Clone this wiki locally