Needs more LEDs, EMSL biggified Conway’s Game of Life

Evil Mad Scientist Laboratories has proven bigger is better with their colossal LED table running Conway’s Game of Life. At the heart of the system is 44 ATmega164Ps controlling 352 LEDs on a 32×44 inch table; and to make it interactive IR LEDs detect the presence of objects.

The display is set up as an exhibit at the San Jose Museum of Art in tribute to [Leo Villareal]. To see a demo, catch a video after the divide.

@ftorama, I imagine it’s because with each colored LED, there is a matching IR LED for it’s sensing. So each micro is controlling 8 LED outputs, and has 8 IR LED inputs. 352 LED outputs plus 352 IR LED inputs is quite a bit, not to mention the communications with the other micros.

We have 352 analog inputs to manage at 400 Hz, and 704 LEDs to control at 20-40 mA depending. (Full power, non-multiplexed.) Using 44 $3 AVRs to handle these tasks is actually a cost effective method. Each has 8 analog inputs and can drive the 16 LEDs, with only a few resistors as external hardware. By making the system modular, it also replaces the problem of purchasing several large circuit boards ($$$$) with the problem of purchasing many small circuit boards ($$).

I didn’t read the link, but it seems like this design is running a variation of “Conway’s Game of Life” which is not actually a game. It’s a self-starting program that consists of a number of cells on a 2D array, and on each “move” a cell determines whether it is alive or dead based on the number of cells around it that are alive or dead. It makes for some pretty interesting patterns, but there is no actual game to play.

Why is the refresh scan (R -> L) so obvious in the videos? Is each of the modules running the same code, or is there one master here using the rest as dumb displays?

I would have thought this would have been an ideal platform for demonstrating a true multi-processor AVR system. Each AVR tile runs exactly the same code which communicates its state after each generation to its eight neighbours. Then you have a pacemaker to ensure new generations are synchronised.

Each AVR tile is running the same code, and each has serial communication to its four neighbors. Messages spread across the field, peer-to-peer, starting where ever the signal originates– in this case from the step/run/clear controls on the lower right. The propagation delay is set to 50 ms as we have it here; we liked the effect, and the fact that the changes ripple away from where you touch.

The obvious way to ensure exact synchronization would be to ditch the scalable peer-to-peer design, and instead give each board a step and clear input line, controlled from a master board that has big drive transistors.

some kind of shift registers for the output would have been much better. also, RGB leds in each cell would really have let you make this thing do a lot more.

as for input, you can read it in a row x col scanned grid, so you don’t need 352 inputs, you only need like, 30 inputs or so. you could have still built the boards to be modular and had only a much cheaper shift register chip on each board.

think about how modern LED signs work — they have thousands of LEDs. imagine each set of 8 LEDs had its own microprocessor!

the “right to left” scan makes it look slow. i suggest you get rid of it.

@av
If there were physical on/off buttons you could certainly multiplex the inputs. This is a museum exhibit that can’t have physical buttons that wear out– hence the optical input scheme. The sensors are analog and need to be read out at 100 Hz+. Adding the distributed ADC hardware and a master controller is a lot more expensive than this scheme.

We know about multiplexing and shift registers. We make *lots* of multiplexed LED devices– you’ve probably seen some of them. This is a different application with a different solution.

@ sM10sM20
The sensor system is not perfect, as we discuss in the video– there are occasional false positives, most of which are due to our reflections as we’re walking around the thing demoing it. Watch closer, you’ll see another dozen or so events, including ones that we point out directly.

(Also, there’s nothing all that complicated in this setup. Wouldn’t it be much more complicated to try and fake it rather than to just go and build it?)

@sM10sM20: That was explained in the video as “some random mutation from our sensors”. I guess that means that the inputs sometimes register a press erroneously and that causes cells to change on their own.

@Spyder_21: I agree, Conways game of life is a little boring, I’d like to see a game like pong or tetris (or other) on this — but I think that the fact it’s a museum exhibit gives them a reason to do something that will work without any user input. That being said, I’d be worried that the stop/pause button would be randomly triggered as a false positive and stop the display, or that the display would eventually die out, and just appear to be off to people. I think arcade buttons or switches on the side would have been the way to go.

@Osgeld
This was made to accompany a museum exhibit that specifically relates to LEDs and Conway’s game of life. Nothing else would have been appropriate.

Yeah, it could have been done with shift registers and a central CPU, but it also would have cost significantly more. Seriously: price it out. Figure two 8-bit LED drivers, an 8-channel ADC, and a 74*14 buffer for the SPI clock & latch lines per board, plus a master controller that supports fast enough data rate to read out the sensors– maybe a beagleboard. No– wait– we spent less than a beagleboard on chips, total. If you need a bleepload of ADCs, MCUs are the best deal in town. Even if we ran this as one big shift register, using an MCU per board would still be the most cost effective way to get it done.

And that “team of people?” There are two of us, and I’ve got a day job. We built this in less than a week on a low budget, and I hand soldered every freaking one of those chips myself. But don’t worry, we’ll remember to prioritize impressing you on our next project. ;)

@Osgeld
You’re misinterpreting what I said. 7400s are dirt cheap; it’s the shift register LED drivers and ADC chips that get expensive. If you can show me a better way to do this, I will take it very seriously and even blog about it, giving you full credit. Please contact me off-forum if you want to discuss it in detail. My assertion is only that what we did here is one reasonable, low-cost approach to the problem. The chips cost $3.22, so a total of $142 for the chips in this project.

Also, if you want an Arduino clone plus an 8×8 RGB matrix, you can get it on our web store, today, for a grand total of $33 (+ actual USPS postage + sales tax if you’re in CA). If you really think that this is overcharging, please let us know privately, and we’ll see what we can do to help you out. :)

come on guys – they did it this way and it looks great. They made a decision based on their view of the situation and have done a great job of explaining why they have choose to do it that way. we don’t know their entire build environment, nor should we care to. Maybe they do buy the chips by the 100, maybe their board house made them a deal, maybe this, maybe that. Discussing alt designs is fine but not when it becomes an attack. leave it at that. Period. End of story.

It rocked, do more!

Does anyone remember the board that was full of leds that acted as a multitouch device? It used the leds as inputs. It was on had a few years ago i think but i can’t find it. I was never able to figure out how they used the leds as inputs and outputs. Anyone have any thoughts on the matter?

Could a similar tactic work for this project?

If you have that many ir detectors, could you use an ir laser to draw on the display?

Totally! Each board normally has 8 outputs to IR LEDs plus 8 analog inputs from the phototransistors. On a fresh board you can wire it up without the phototransistors, but instead hooking up each IR LED in series with a current-limiting resistor, between a pair of I/O pins– still using 16 I/O lines, but all digital now. The nice thing about using the separate IR LEDs is that you don’t see them (normally if you try and detect with the LEDs that you’re using as indicators they never can actually turn off all the way).

I actually tried this out on the very first of the circuit boards, and while the board was pretty messy with the extra wiring, *it worked.* I thought for a while that we’d be able to use it for the project (and save soldering an extra 352 phototransistors!) but in a couple hours of fooling around with it, I was not actually able to get the response time to be fast enough to give the right for human interaction “feel” for this particular exhibit.

It’s pretty neat stuff, though, so we just submitted our proposal for MakerFaire NYC about it: we’ll be demonstrating how to construct different types of IR sensor circuits like these, and hopefully we’ll be blogging about them this fall.

@Osgeld: I wasn’t trying to insult you, I have little tact, myself(possibly exampled in my previous post ;D), I just try to curb the urge to exactly speak my mind as much as possible, in the interest of those reading my posts.

@kd5uzz: An LED will act as a phototransistor of sorts, but will not be as sensitive as an actual phototransistors. If you try to source current from the LED rather than sinking it, you can determine the value of a near light source. Standard rectifier diodes can also be used to determine temperature…

@kd5uzz
>If you have that many ir detectors, could you use an ir laser to draw on the display?

Yes with a software change– the default software uses lock-in detection to buck ambient IR interference (with moderate success). Even better than a laser would be just a simple TV remote or IR throwie, though– then you don’t have to bother about hitting all those tiny sensor targets.

“If you can show me a better way to do this, I will take it very seriously and even blog about it, giving you full credit.”

yea let me drop everything to redesign your ciruit for blog credit

“Please contact me off-forum if you want to discuss it in detail.”

if your serious contact me osgeld(at)cheesefactory(dot)us

“Also, if you want an Arduino clone plus an 8×8 RGB matrix, you can get it on our web store, today, for a grand total of $33″

really? I would be interested in that, but looking at your product page right now the only thing I see that includes a rgb matrix and a arduino compatible system is the Meggy Jr RGB, which starts at 75$

What an unfortunate mess of comments. No, this isn’t how I’d do it, because I’m poor and cheap. But this is how I would WANT to do it. Having independent processing units interacting with each other on a massive scale is extra cool. Not only that, but you can make it as big or small as you want! I’m just a sucker for artificial interaction.

A wonderful project, interestingly and well created, and the comments, which started off as a useful question and answer with the creator have been dragged down by one man’s blunt-headed idiocy. How sad.

@All,
Please stay on topic. Osgeld and Windell have discussed some interesting points. I’ve removed everything that was off topic and overly insulting.

Let me be clear, you can detract and discuss all you want. Please make it about the project and on topic. If you personally insult someone or veer off into completely off topic rants, your comment will most likely be deleted.