Arduino Tetris on a Multiplexed LED Matrix

[Alex] needed a project for his microcomputer circuits class. He wanted something that would challenge him on both the electronics side of things, as well as the programming side. He ended up designing an 8 by 16 grid of LED’s that was turned into a game of Tetris.

He arranged all 128 LED’s into the grid on a piece of perfboard. All of the anodes were bent over and connected together into rows of 8 LED’s. The cathodes were bent perpendicularly and forms columns of 16 LED’s. This way, if power is applied to one row and a single column is grounded, one LED will light up at the intersection. This method only works reliably to light up a single LED at a time. With that in mind, [Alex] needed to have a very high “refresh rate” for his display. He only ever lights up one LED at a time, but he scans through the 128 LED’s so fast that persistence of vision prevents you from noticing. To the human eye, it looks like multiple LED’s are lit up simultaneously.

[Alex] planned to use an Arduino to control this display, but it doesn’t have enough outputs on its own to control all of those lights. He ended up using multiple 74138 decoder/multiplexer IC’s to control the LED’s. Since the columns have inverted outputs, he couldn’t just hook them straight up to the LED’s. Instead he had to run the signals through a set of PNP transistors to flip the logic. This setup allowed [Alex] to control all 128 LED’s with just seven bits, but it was too slow for him.

His solution was to control the multiplexers with counter IC’s. The Arduino can just increment the counter up to the appropriate LED. The Arduino then controls the state of the LED using the active high enable line from the column multiplexer chip.

[Alex] wanted more than just a static image to show off on his new display, so he programmed in a version of Tetris. The controller is just a piece of perfboard with four push buttons. He had to work out all of the programming to ensure the game ran smoothly while properly updating the screen and simultaneously reading the controller for new input. All of this ran on the Arduino.

Can’t get enough Tetris hacks? Try these on for size.

LED Matrix Infinity Mirror

[Evan] wrote in to let us know about the LED matrix infinity mirror he’s been working on. [Evan] built a sizable LED matrix out of WS2812B LEDs and mounted them to a semi-reflective acrylic sheet, which makes a pretty awesome infinity mirror effect.

Instead of buying pre-wired strands of serial LEDs like we’ve seen in some other projects, [Evan] purchased individual WS2812 LEDs in bulk. Since the LEDs just had bare leads, [Evan] had to solder wires between each of his 169 LEDs (with some help from a few friends). After soldering up hundreds of wires, [Evan] drilled out holes for each LED in a piece of semi-reflective acrylic and inserted an LED into each hole.

To create the infinity mirror effect, [Evan] mounted the LED matrix behind a window. [Evan] put some one-way mirror film on the outside of the window, which works with the semi-reflective acrylic to create the infinity mirror effect. The LEDs are driven by an Arduino, which is controlled by a couple of free programs to show a live EQ of [Evan]’s music along with patterns and other effects.

What is the Matrix…Clock?

We’re surprised we haven’t seen this kind of clock before, or maybe we have, but forgot about it in the dark filing cabinets of our minds. The above picture of [danjhamer’s] Matrix Clock doesn’t quite do it justice, because this is a clock that doesn’t just tick away and idly update the minutes/hours.

matrix clock

Instead, a familiar Matrix-esque rain animation swoops in from above, exchanging old numbers for new. For the most part, the build is what you would expect: a 16×8 LED Matrix display driven by a TLC5920 LED driver, with an Arduino that uses a DS1307 RTC (real-time clock) with a coin cell battery to keep track of time when not powered through USB. [danjhamer] has also created a 3D-printed enclosure as well as added a piezo speaker to allow the clock to chime off customizable musical alarms.

You can find schematics and other details on his project page, but first, swing down below the jump to see more of the clock’s simple but awesome animations.

Continue reading “What is the Matrix…Clock?”

A Wooden LED Matrix Coffee Table

[johannes] writes in with a pretty impressive LED table he built. The table is based around WS2801 serially addressable LEDs which are controlled by a Raspberry Pi. The Pi serves up a node.js-driven web interface developed by [Andrew Munsell] for a room lighting setup. The web interface controls the pattern shown on the display and the animation speed.

[johannes] built a wooden coffee table around the LED matrix, which includes a matte glass top to help diffuse the lighting. An outlet to plug in a laptop and two USB charging ports are panel-mounted on the side of the enclosure, which are a nice touch. The power supply for the LEDs is also inside the enclosure, eliminating the need for an external power brick.

While [johannes] hasn’t written any software of his own yet, he plans on adding music synchronization and visualizations for weather and other data. Check out the video after the break to see the table in action.

Continue reading “A Wooden LED Matrix Coffee Table”

Light Pen Draws on LED Matrix


Who needs a 1920×1080 OLED display when you can have an 8×8 matrix of LED goodness? That’s the question [Kathy] asked when she built this LED matrix light pen project. It looks simple enough – a 64-LED matrix illuminates as the pen draws shapes. But how does the circuit know which LED is under the pen? Good old fashioned matrix scanning is the answer. Only one LED is lit up at any time.

[Kathy] used a pair of 74LS138 3-to-8 line decoders to scan the matrix. The active low outputs on the ‘138 would be perfect for a common cathode matrix. Of course [Kathy] only had a common anode matrix, so 8 PNP transistors were pressed into service as inverters.

The pen itself is a phototransistor. [Kathy] originally tried a CdS photoresistor, but found it was a bit too slow for matrix scanning. An LM358 op-amp is used to get the signal up to a reasonable level for an Arduino Uno to detect.

The result is impressive for such a simple design. We’d love to see someone use this platform as the start of an epic snake game.

Network Controlled Decorative LED Matrix Frame

LED-Pixel-FrameThere is nothing better than a project that you can put on display for all to see. [Tristan’s] most recent project, a Decorative LED Matrix Frame, containing 12×10 big square pixels that can display any color, is really cool.

Having been built around a cheap IKEA photo frame this project is very doable, at least for those of you with a 3D printer. The 3D printer is needed to create the pixel grid, which ends up looking very clean in the final frame. From an electronics perspective, the main components are a set of Adafruit Neopixel LED strips, and an Arduino Uno with an Ethernet shield. The main controller even contains a battery backup for the real time clock (RTC) when the frame is unplugged; a nice touch. Given that the frame is connected to the local network, [Tristan] designed the frame to be controlled by a simple HTML5 interface (code available on GitHub). This allows any locally connected device to control the frame.

Be sure to check out the build details, they are very well done. If you are still not convinced how cool this project is, be sure to check out a video of it in action after the break! It makes us wish that you could play Tetris on this frame. Very nice job [Tristan]!

Continue reading “Network Controlled Decorative LED Matrix Frame”

Aluminum LED Matrix Looks Professionally Made


[David Donley] has wanted to make a LED matrix for a while now, and has decided to finally pull the trigger — after all, that many LEDs certainly aren’t cheap!

He’s using a set of 16 Adafruit 8×8 NeoPixel LED Matrices (almost $600 worth of LEDs) and a BeagleBone Black to control them. To mount the LED matrices he bought a sheet of 6061-T6 aluminum for two purposes — one to act as a giant heatsink, and two, to look cool. All he had to do was drill some holes in the sheet for the connectors, and then use 3M 300LSE double-sided adhesive to stick the NeoPixels to the surface. The result is a border-less display that looks clean and professional.

To power the array he’s using a 5V 90A power supply — at full brightness these LEDs can consume around 325W, or 65A at 5V!  Taking notes from the opensource LEDscape code on GitHub he’s made his own software to control the display — stick around after the break to see it in action.

Continue reading “Aluminum LED Matrix Looks Professionally Made”