arduino running Tetris on the side of a building??

Hi, I've been getting pretty good with the arduino (and AVRs in general), and I have a project. There's a building where I live that has set up special bulbs on its office windows so they can show various graphics during holidays (July 4, Christmas, etc).

I'm connected to the building manager, and I'd like to draw up a proposal to run a game of tetris on the side of the building. If its a solid method, I'm sure she'll be sympathetic, but I'd like to have it well thought out before I go to her.

The building has 14x18 "pixels" available. They actually can be split, but that makes things too complicated. This works out to 252 pixels.

let me reiterate, I'm dead serious about this. If we can think of something that'll work, this will probably happen (as long as upper management of the company doesn't have a problem with it).

So here's what I'm thinking. The first idea is x10. It allows 256 unique devices, and there's a library for the arduino, although I haven't played around with it. Does anyone have any input on arduino-x10 interfacing? I also have a couple extra boxes I could throw linux on, and use whatever people have developed for that. However, I've read over a couple pdfs on the protocol it uses, and I think that it isn't anywhere near fast enough to control 256 lights. This isn't necessarily a problem, as only a few pixels change with each "frame" of Tetris (4 max? Unless a line has to be cleared?), but its something to be aware of. The pdf is located at . It takes 11 cycles of the power line to alter one pixel, which I think means you should be able to do about 4-5 a second at 60 hz (there's a small pause that eats up a few cycles). Did I work that out right? This also means I probably won't be able to play space invaders :)

My problem is that although I'm pretty good with residential x10, I'm not too sure about a large commercial property. One company owns this building, if that helps anyone. Does anyone see any problems with hooking up to an x10 controller, and using phase couplers to connect everything?

My other idea is to use relays, but the amount of wiring nonsense involved.... ugh.

Anything else?

I did some consulting for a company that did low-speed data-over-power networking many years ago, and they had had huge problems in their early installations with large office buildings (although theirs were often going into “near-skyscraper-sized” buildings). The big buildings often had step-down transformers inside the building that gave them trouble getting reliable connections. That may not be a problem with the building you’re looking at, but I’d suggest doing some feasibility tests with scattered X-10 modules before planning the system.

Unless X-10 had upgraded the protocol, you’re going to be using almost every supported house and device code. You’ll need to make sure that no one in the building is using X-10: you don’t want to be chased down the halls by drug addicts because you accidentally turned off their coffee machine and sent them into severe caffeine withdrawal ;D

Does the building already have a system for controlling those lights? If so, maybe you can plug into it.

Another alternative might be to do your own system, say, using those inexpensive 300 or 400MHz transmitter and receiver modules from China. With a cheap CPU like an ATTiny, you could do an async serial protocol that would be error-resistant and much faster than X-10, while only costing a little more per node. That could enable you to do some animation that might even be fast enough to do Tetris. Would the building owner allow you to plug in some electronics that aren’t UL certified?


As Ran pointed out, I’d look into what’s controlling it already. I would guess that there’s a system of some type already connected to the bulbs.

On the subject of X10:
A few years ago I had to add some automation to a project that I was working on, and evaluated X10 offerings at the time. In the end we used a related, but more powerful protocol called “Insteon”

More info here:

It has the benefit that addresses are virtually unlimited (each device has a unique factory assigned address), and it has wireless capability, so you can bridge phases by plugging a wireless unit into each phase. It was also pretty easy to program / control from a pc.