Interactive LED table with proximity detection

Here is my attempt at an interactive arduino powered LED table.

The table surface consists of 512 RGB LEDs in a 16x32 matrix. Included in the array are 128 IR photo transistors and an IR led matrix used for proximity detection. The table also supports user input via 2 NES controllers.

Each RGB led can be individually addressed and has a color palette of 511 shades.

Control over the panel is distributed across 6 custom designed PCBs ( 4 for LED array shift registers, 2 for IR node muxing ) and an Arduino Due controller.

Each shift register array board has the capability to control up to an 8x8 matrix and can be chained together. In this configuration, 2 are used for row/column ( 16x16 ) with an additional 2 configured for column only to get the other 16 columns working. The boards have jumpers onboard to configure them as row only, column only, or row and column use. The column shift registers are MBI 5168 constant current LED sink drivers rather than the standard 595 shift registers ( used for row control )

The 128 IR nodes are fed through 2 separate analog multiplexing circuits ( 16:1 x 4 per board ) and feed 8 of the analog pins on the Due board. Additionally, 2 NES controllers are wired into other digital IO on the Due.

Currently I have a number of different animations programmed into the table, each with some amount of variation via the NES input. The table supports proximity detection via the IR and can be used for another layer of interaction.

Here is a video of the table in action.

For an ongoing history of the build process including pictures and video visit



I really love your table! This one is one of the best I’ve ever seen. Keep going this way!


Very Nice!

Lots more pictures of build process posted

Table code made available via github

Love it!

Table now controllable via BT andriod application as well.