Display Tweets on 3,500 LED Light Matrix

Hello,

Currently all I have is an Arduino Mega 2560 and WiFly.

I am trying to build a a twitter/Arduino driven mobile billboard with a matrix of LEDs. (70 x 50, 3500 LEDs, 140 5 x 5 text characters).

I am having trouble find information on how to execute this. Mainly, on how to send the letters to the panel in an intelligent manner.

I am expecting each "pixel" to be about 1" square (1 LED per pixel), resulting in a panel approximately 70" x 50".

I've already developed a 5x5 mockup of one of the matrices, but I'm running into problems trying to figure out how to drive this many LEDs from Arduino in a simple manner.

Design Goals:

  • Needs to be able to display an entire tweet at once. No scrolling letters, etc.

  • Needs to be cost efficient. I'm willing to solder more cheaper parts as long as it means the panel works.

  • Ideally, I'd like to be able to send text from the Arduino through a serial port to an intermediate device (assuming it's something I made) that then decodes the text into the proper matrix layout and send the signals to the LED panel.

  • Advice on how to power these devices is also accepted.

What I'm looking for:

  • Chips that decode text sent from Arduino into a matrix of letters.

  • Chips that drive a matrix of LEDs. I'm willing to go as small as a 5x5 matrix of LEDs (one letter).

  • Advice on best ways to power this.

Assumptions:

  • I'll have 3500 LEDs. Probably 5W since they need to be seen from the street. I am using a cast resin panel with holes drilled for the LEDs to provide a sort of lensing for the pixels. I can provide pics if needed.

  • Ideally, this sign will be mobile, and not necessarily powered by wall power, so we'd like to drive it with batteries.

  • We'll be connecting the Arduino to a 4G hotspot, so it'll just be handling the arbitration of the incoming twitter feed and sending the feed back out to the panel, where it will hopefully be decoded and displayed.

Please see my rough ASCII art diagram below.

Any help is deeply appreciated.

Thanks.


| 4G hotspot |


| |

|

| Arduino |


| |

|

| Text Decoder|


| |

|

| ???????? |


| |

|

| LED Panel |


Panel detail

. = LEDs

| = thin wooden dividers.


|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------ |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| |------------------------------------------------------------------------------------

The overall lack of responses has to do with the fact that in at least a couple ways, what you are suggesting is impossible.

3600 5W LEDs... Did you have particular LEDs in mind? Are you thinking about how you'll run it anywhere but the arctic circle? Cooling them will cost more than the LEDs themselves, which will be thousands of dollars.

Power.... No... No batteries here.

Have you considered how you're going to handle LEDs burning out?

How about a different solution for now?

http://www.sureelectronics.net/goods.php?id=1124 Grab a few of those. You can make it as big as you feel comfy with and test it out that way. You'd be surprised about how readable those are. Throw a small cowl over the top and you're golden, with the added benefit that several of these probably cost 1/100th of your proposed solution (which, as I said, is impossible).

To clarify: Not just impossible for an Arduino. Impossible for physics.

If you're UTTERLY determined to do it, you can build individual driver boards using a small AVR chip and use SPI to communicate the pattern for each board then use something like a 5 chip superflux LED instead of a 5w hb. This will still get hot enough that if you run it at all during a mild day, you will need to have active cooling fans, but at least the fans have a fighting chance.

I was told to use 5W LEDs by Digi-key to ensure visibility from the street. I think I’m using 3W LEDs at the moment. They came in a bundle pack and aren’t marked.

If lower wattage LEDs will provide the same effect, then that’s cool.

Heating isn’t expected to be much of a problem since it’s intended to be mounted on a mobile billboard, outside, in Detroit, in December.

I’ve considered using panels like that, but the pixels are too close together and don’t allow me to have the desired visual effect (see attached image of proof of concept).

At this LED Pixel density, I get a board that’s 70" x 50", with 5" tall letters, easily visible from the highway. Plus, it’s not nearly $3000 for the individual panels you linked to.

So, still, any advice would be helpful.

Thanks.

Well, give folks a chance to get home & start looking at this. That does seem like an ambitious # of LEDs.

3,500 5W LEDS that's 17.5 KWatts!!!!!!!!!!!

wow! (snow clearing project?)

What constraints are you trying to meet? With 3500 lots of LED drivers I imagine it's going to end up quite pricey and perhaps cost is your main concern. Or maybe you just want something that you know will work?

This article about using MAX72XXHardware describes how to drive a much smaller number of LEDs but seems to be an approach that could potentially scale up to drive thousands of LEDs.

Hmmm...

A 70x50 monochrome display (e.g. one bit per pixel) is going to take up 438 bytes so at least it's possible to keep that big of a bitmap in RAM....but I'm not sure you'll be able to cram Ethernet + Twitter + font bitmap + program in your Flash limit.

Speaking of which, does anybody have a working Twitter Arduino library any more? I thought they all broke when Twitter changed their APIs a while back....isn't everything encrypted now? I'm not sure anybody has SSL working with the Ethernet library.

The 'text decoder' part will actually be simple. Basically you just store bitmaps of all the characters you want to display (e.g. the first 94 displayable ASCII chars) then go through your string character by character, and spit out the appropriate pixels. I have an 8x8 bitmap font you can have; maybe someone else has one in 5x5 already.

Building your grid purely out of shift registers would take 438 of them. Pumping that much data out via SPI will take about half a millisecond so that's possible, but I'm pretty sure you will run into signal fan out problems. Someone more knowledgeable than myself would have to tell you how to handle clock & latch pin signal boosting to that many chips. This would be the brightest method, however, because an LED would be on solid until you turn it off. As someone else has said, however, 70x50 5W LEDs is going to be a very large current draw. Even at 12 volts you're talking about over 1,450 amps (!). If you're absolutely certain that, say, only 5% of the lights would be on at a time you're down to a more reasonable (?) 80 amps, but...that's still way out of amateur status. I personally wouldn't attempt something like that without having a certified electrician helping out.

Building it as a multiplexed grid will take down the power consumption a lot but will impact brightness. I'm not sure if that's a reasonable trade off for you; you'll have to test it and evaluate it yourself based on the LEDs you're using, what distance the lights need to be seen from, etc. I don't know about the overdriving capabilities of 5 W LEDs but if they work like their little brothers you could pulse them at about 5x their limit (e.g. 25 W) if you keep the pulse short (e.g. 0.1 millisecond). That would still be 200 strobes per second per row for 50 rows, which is more than fast enough so the human eye won't see flicker. Someone more knowledgeable than me would have to help you with designing something that can switch 25 watts on and off 200 times per second. The good thing about this method is it takes load down to a more manageable (?) 1,750 Watts (one row of 70 LEDs x 25 W). At 12 volts that's 145 amps; you might be able to that in a van with a rack of extra car batteries...

With either approach you'll need a transistor to control each LED; even a single 5 W LED is going to be well outside the range of what a single pin off an ATMega, 595 shift register, current driver like a TLC5916 or TLC5940, etc. can do.

My gut feeling is this project is doable the same way canoeing from California to Hawaii is doable. Theoretically possible and may possibly work if you are careful and exact about your plans but there are probably much easier ways to do what you want to do.

A 70" x 50" display is 86" diagonal. An 80" TV is $4,700 on Amazon...what about using a regular computer connected via HDMI to that? Or say a panel of 4x3 of 20" or 24" displays?

Either way it sounds like a cool project and if you pursue it I will help if I can. Good luck!

I'm trying to imagine the effects of 3500W of light output from an area that small. It's going to be very bright indeed. Strong sunlight is about 1000W per square meter and you aren't far off that. This thing is going to burn retinas out if you turn all the LEDs on at once.

Perhaps using the Holtek HT1632C could be used here, as long as the 5W parts don't mind being multiplexed. http://www.holtek.com/english/news/products/121208.htm

Working the eagle symbol (Thanks mmcp42!) and a DIP adapter here .. http://arduino.cc/forum/index.php?topic=78911.new;topicseen#new