Building a 16X32 LED Matrix

:-[

Hi guys! I am new to this forum and my first post hopefully doesn't upset you guys too much.

I tried searching for LED Matrix and couldn't find anything, and if anything close did come up... I didn't find anything in "plain english" that explains to me what I need to build or buy a controller for as many LEDs my project needs.

I am looking to build a matrix of at least 8X16 LEDs... and possibly (hopefully) 16X32 LEDs. RGB is my second option because of costs and the fact that I don't know this is possible... so if RGB is out of my league.. I would like to use a single color.

I would like the ability to program custom designs, moving images and patterns as well as scrolling words if possible, out of my Mac. We have to keep in mind... programing is not my niche. So user friendly software would be great.

Does anyone want to instruct me on how to build this device, build it for me, or let me know if it already exists and where I can buy it? I am sure it involves the use of the arduino.. and thats why I am here. Plus you guys look like you know what you are doing.

Any help is appreciated. Thank you very much for your time.

-Chris

you can get 8x8 grids cheap here

they are available other places too.

the arduino only has enough pins to drive one of these directly, and you will need to multiplex the pins to do so to get beyond that you will need to used led drivers, or shift registers, the latter are cheaper.

There are tutorials for all of the above on the arduino playground

Those grids wont do. I am going full scale and each block will be approximately 1ft sq.

I will be using 1 Watt Luxeon LEDs.

edit:

I found the playground by means of google. But where does it show how to link multiple arduinos together to cover a grid of 8X16 or bigger?

Are there specific tutorials for my project. Take a look at this video below, its pretty much what i plan on doing.

you only need 1 arduino

click playground

output

direct driving of an 8x8 grid.... the schematics are there... you just have to extend the multiplexing to a bigger grid.

if you really want to go with luxeons, check out thingm... blimkm, it might be more your speed

http://thingm.com/products/blinkm.html

full rgb luxeons, and they use spi, so you can just daisy chain as many as you need..(actually I think 256 of them... but don't quote me)

you only need 1 arduino
if you really want to go with luxeons, check out thingm... blimkm, it might be more your speed

BlinkM — ThingM

full rgb luxeons, and they use spi, so you can just daisy chain as many as you need..(actually I think 256 of them... but don't quote me)

The BlinkM uses I2C (TWI) not SPI. You may use upto 127 on the same bus (this is an inherent I2C limitation).

you only need 1 arduino

http://www.arduino.cc/

click playground

output

direct driving of an 8x8 grid.... the schematics are there... you just have to extend the multiplexing to a bigger grid.

if you really want to go with luxeons, check out thingm... blimkm, it might be more your speed

BlinkM — ThingM

full rgb luxeons, and they use spi, so you can just daisy chain as many as you need..(actually I think 256 of them... but don't quote me)

wow... thats almost exactly what I am looking for, except it seems that the Blinkm gets programmed and thats it... after it programmed with the Arduino and connected to power, it just runs through its set patters that you assigned it. This would also run all the daisy chained LED's through the same program. Correct me if I am wrong. And I dont see anything about it being a luxeon... I need a very bright LED with wide dispersion to cover a 1 ft square area.

Also, I don't like the fact that they are about $15 each. 130 or so would quickly get me around $2000.

you only need 1 arduino
if you really want to go with luxeons, check out thingm... blimkm, it might be more your speed

BlinkM — ThingM

full rgb luxeons, and they use spi, so you can just daisy chain as many as you need..(actually I think 256 of them... but don't quote me)

The BlinkM uses I2C (TWI) not SPI. You may use upto 127 on the same bus (this is an inherent I2C limitation).

127 is pretty much right for me though. So this might actually work for my small scale project. But I need to clarify if they are able to receive individual "sync'd" programs. Basically so they all work together, but run different patterns.

Anyone know where to get the chip or driver (don't know the lingo) that controls DMX? I am thinking DMX to be another option for me... although I think that this would get pricey pretty quick as well. I am assuming it would involve using a single DMX board for each RGB led that I wish to control independently.

wow... thats almost exactly what I am looking for, except it seems that the Blinkm gets programmed and thats it...

Each BlinkM can be continually updated via I2C.

You might also be interested in this forum topic on LadyAda.net of someone controlling 6 RGB LEDs with an arduino clone. I'm not sure how relevant it is. (edit - no code etc, so not terribly helpful unless you contact them)

^^^ Yea... um... not so helpful. But its still cool to watch, so.. :slight_smile: thanks anyway

you can update blinkm constantly changing the values, it is programmable too.

you can update blinkm constantly changing the values, it is programmable too.

So with the Blinkm's... you can just daisy chain them and at the end of the chain.. control the individual color or flash patter of, lets say.. the 16th LED and the 18th LED?

Another Question... where is the programing done when they are daisy chained? Through the Arduino with the Blinkm program? Or is it where I have to sit and type in the program code for each LED? If there is a place that explains this, please feel free to put me in my place and point me in the right direction. I can't seem to find much info and if I do.. nothing that I can understand because it usually is for a different project or written in a way that only computer programers understand.

Again.. thanks for your help.

You would control everything from the arduino

read the blinkm documentation, its uses spi

You would control everything from the arduino

read the blinkm documentation, its uses spi

I read the info they had on their site and it doesn't explain how I would control Multiple units Individually.

My main problem is, a bunch of people have experience with one blinkm... but nobody seems to know much about what happens when they are linked. I want individual control over each and ever blinkm once they are installed in my 8X16 grid. The blinkm program that connects through the Arduino doesn't seem to support multiple units unless it means that they all change to the same color at the same time.

I just sent them an e-mail and hopefully they can elaborate for me.

NOW....

How about just using the circuit on the blinkm? It seems to me that I would need 4 Blinkm's for each of my squares on my 128 square matrix. So, instead... I would like to use a similar assignable board for each of my own LED arrays that I install. So basically the Blinkm without the LED. Is there such thing?

If you download the BlinmM datasheet http://thingm.com/fileadmin/thingm/downloads/BlinkM_datasheet.pdf on page 23 & 24 you will see sample code on how to control multiple BlinkMs. There is also an example in the Arduino examples they supply.

The BlinkM is I2C and each can be assigned a unique address. Each of the commands you send begins with an address, so controlling multiples should be pretty easy, albeit expensive in your case.

If you look at page 25 you will see that the BlinkM is really another microprocessor (Tiny45S) with an LED attached. It has a program loaded in it's itsy bitsy self. I'm not sure what the chip alone would cost, but by the time you bought the programmer, chips, boards, etc. for something like your planning it might not be the way to go.

However, a BlinkM solution should be pretty straightforward. It would also be cool as hell.

I'd suggest you buy one and mess around with it. It's an easy way to get familiar with I2C and the colors it produces are amazing. The first one is pretty cheap :slight_smile: