The Road to ACRIS

Finally. After months of inactivity, I finally have ACRIS ready enough to show the world. This post is more or less an account of what I’ve done so far. The main project page has links to all the technical information, plus a ton of photos, especially on the page about the lights I designed. I’m going to summarize what I did in this post.

It all began in January 2011 when I was working on the Next House Party Lighting System (which had some pretty awesome results). As one of the project leads, I designed the electronics that powered the lights. The idea was simple: get output from a computer to a board, which would then control a set of high-powered LEDs.

Fast forward into February. We had a lot of problems with the boards I designed, but eventually got through them. I learned a great deal from the mistakes I made, and, armed with this information, I designed totally new boards. Over
the summer, I then got those boards printed, built them, and installed them into two lights. Now, I’m working on making more lights, writing software to make them flash to music and respond to other environmental inputs. What do they look like so far? See for yourself:

The LED controllers I designed are highly generic. They can be used for other projects! I want to make these boards highly available because I think they will help a designer focus more on the creative process when designing a light and less on the tedious engineering aspects. There’s a lot of potential for growth!

The big attraction for the boards that I designed is that they drive high-power LEDs, especially RGB LEDs. They’re notoriously difficult to easily drive, so this board does all the hard parts for the designer.

The Lights

I bought some lights at the hardware store and modified them to use my LED controller and 3 of these LEDs. IMO, they look quite classy.

I wrote up some documentation on how I modified these lights. There are a bunch of photos here.

The LED Controller

These boards are the fundamental part of the project. What do they look like? Like this:

Well, what do they do?

  • Take input from a computer or other source over RS-485 serial (on CAT-5 cable)
  • Drive up to 15 channels at 360mA each(!!!) with that data
  • They’ve got a custom bootloader (with some interface software), so you can easily reprogram and reconfigure the boards
  • You can power them in several ways
  • You can string them together to create a network of devices

I want to make these boards generic so that anyone can use them to make their own LED lights. They work best with high-power RGB LEDs (since there are 15 channels per board, that’s equivalent to being able to drive 5 RGB LEDs).

I also made this cute mini version. I haven’t tested it out, but it should be able to drive 5 channels. It’s like 1.2×0.8″ or something.

Communication

I’ve just finished designing this USB dongle that converts serial over USB to RS-485 to communicate with all of the lights. It plugs right into the computer’s USB port. Unfortunately, I haven’t built any yet, but assuming they work, they’ll be awesome. Right now, I’m just using a breadboard.

Software

It’s modular! Basically, the designer specifies the types of lights he created as controllers. Then, he writes plugins that instantiate these controllers and modify them. So, you can specify complex environments very easily.

My implementation just controls the two lights I have so far. Right now, I just have some basic hue-cycling plugins, but I’m working on more complicated ones that will draw from inputs like music or the current time.

What’s Next

I have a little more work to do on the LED boards. I want to make the outputs screw terminals, clean them up, etc. I’m also starting to look into where I could potentially sell these boards as kits for people who want to make their own lights. I know a lot of people who are interested in using these boards in their own projects.

Share/Bookmark

9 Responses to “The Road to ACRIS”


  • This is some REALLY impressive stuff. I’m currently a college student myself…I now have a very strong urge to put a couple of these together =) Been wanting to get into RS-485 and this should give me a good starting point. Nice work!

    Eric

  • I like your work .. wish you all the best!

  • These are gorgeous!

    However, is it possible to make it so you can run multiple lights off a single Arduino vs. a full computer?

  • @Eric: Cool, thanks! RS-485 is dead simple. The one trick is that most RS-485 chips have a Data Enable line. You should always make sure that no more than one chip is trying to send data at any given time.

    @Seb: Actually, I’m not using Arduino as my development platform. The controller board I designed has enough outputs to control 5 RGB LEDs, but theoretically, you can chain the LED drivers together to control many more.

  • Nice project! I’m working on something pretty similar (see my website link) with high-power LEDs and RS485. The firmware has a long way to go, since we’ve had a few hardware issues, but I was thinking about implementing an RS485 bootloader for flashing firmware–looks like you got this working nicely!

    Do you have your bootloader code under any license at this point? It would be great to use it as a starting point for what I’m working on.

  • @normaldotcom: I don’t have any licensing stuff right now, but it will probably be MIT license. Definitely feel free to use it!

    I’m working on another project right now for a class that uses a similar, but more advanced bootloader I designed. When I finish the project, I’ll post the bootloader.

  • Great job sir!
    To make it more complex, would be cool to see it with wireless comunication :)

  • I love the work you have done on these. They are beautiful lights and very well built. I was planning on building these and I was wondering one thing. Can you make them DMX controlled. Either by DMX or the Art-Net protocol. Art-Net uses a RJ-45 connection for communication so in theory only the firmware would need to be tweeked

  • @Daniel: I’ve often thought about wireless. I’m worried about latency issues, but theoretically, it’d be possible to use simple radio transmission or something for communication. Hopefully one day I’ll be able to try it out! (I don’t want to spend the money on a radio transmitter.)

    @Marshall: Correct me if I’m wrong, but I think that DMX operates over RS-485 as well. But yes, with a simple firmware change, you can definitely use DMX on an AVR, since it’s just a protocol. You should be able to squeeze it in my code.

Leave a Reply