Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Code for an Arduino to drive GE color effects lights
C PHP Processing JavaScript Other
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.gitignore Minor housekeeping
5x7.bdf Revise makemap to use a 5x7.bdf font.
LICENSE Tidy licensing and documentation a hair.
Makefile Add a utility to show a gif
README Switch to using arduino-1.0, not 0022
TODO Minor housekeeping
elegante.license.txt Add a scrolling message function
elegante_pixel.ttf Add a scrolling message function
fifo.c Implement an initial pass at a Tetris game.
fifo.h Implement an initial pass at a Tetris game.
index.php Minor tweaks.
led3.cfg Add led3 for 3 light config
ledscroll.c Add white color
makemap.c Revise to handle .bdf files, notably the 6x10 one.
message.h Working config.
showgif.c Add a utility to show a gif
testlib.c Allow us to specify a number of iterations.
tetris.c Show the score of the game on the web page
tetris.h Implement an initial pass at a Tetris game.
war.c Implement an initial pass at a Tetris game.



This project contains code to control an Arduino to drive multiple
strings of GE color effects lights in interesting ways.

The interesting components are as follows:
  led.pde   -   Code to run on the Arduino itself
  drive.c   -   Code to 'drive' the Arduino, using the
                serial port to pass simple messages
  libled.c  -   A library to simplify the process of
                setting pixels; it uses led.cfg to
                specify an x/y to string/addr mapping.
  ledsim.c  -   A library to to simulate libled so
                you can do development without a string of lights.
  war.c     -   A very simple 'space war' game for two
                that uses libled or ledsim.


This project was written by a Debian Linux user and, as of this date,
has only every been run on a Debian Linux system. 

However, the code is fairly portable.  If you're clever and patient,
you can likely get it to work for you.

The bulk of the Arduino code is contained in led.pde.  That should
work in any Arduino environment, and should get you a running
driver on your Arduino.

You will need the drive command line utility.  Again, the Makefile
will build it on a Linux system, and maybe other Unix systems.

But it should be possible to compile it on any Unix (including Mac OS X)
fairly easily.  For Windows, it'll be harder; you'll have to manually
port the serial IO stuff.

On Debian, I have the following relevant packages:
  ii  arduino                              0018+dfsg-6                       AVR development board IDE and built-in libraries
  ii  avr-libc                             1:1.6.8-2                         Standard C library for Atmel AVR development
  ii  avrdude                              5.10-3                            software for programming Atmel AVR microcontrollers
  ii  binutils-avr                         2.20.1-1                          Binary utilities supporting Atmel's AVR targets
  ii  gcc-avr                              1:4.3.5-1                         The GNU C compiler (cross compiler for avr)
  ii  arduino                              0018+dfsg-6                       AVR development board IDE and built-in libraries
  ii  arduino-core   

I suspect an apt-get install arduino-core gcc-avr will get you all of those.
You also now will need libft-dev to get freetype dev libraries.

You need to download the contents of web/.gitignore from the internet
and drop them into the web/ subdirectory; that includes an Arduino
logo, jquery, and jquery-TextFill.

You need to download a 1.0 Arduino development environment, and make
a symbolic link in the top level directory named 'current-arduino'
that points to that directory.

This commmand:
  make && make upload
should result in compiling + uploading the program to the Arduino.

  ./drive init
  ./drive status
  ./drive chase

Will make the Arduino do interesting things.  Note that
  make reset
is also quite handy.
Something went wrong with that request. Please try again.