Every apartment needs awesome furniture, so why not make your own? This coffee table contains LED strips that light up into various customizable patterns and colors. The lights are controlled by an Arduino and a hidden button, and the entire thing is battery powered so there are no cords.

If you don't want to make your own table, you can also use the same code and circuitry to modify an existing table.


Step 1: Table Design

This was my first woodworking project using nice wood and "advanced" tools, so please do not consider me an expert. Rather than describing in detail how I made the table, I'll give more of a broad overview of what I did*.

The design of the table is an open-framed cube, with space in the top for the electronics and additional LED strips around the legs. The lights are diffused through plastic which is embedded flush with the wood to create a smooth surface.

*Note that I did a few things in ways that were not ideal. In the instructions I will outline a better method for making the table than what I actually did. Generally, the changes involve cutting certain pieces all at the same time to ensure that they are the same length.

EDIT: I added the part files for the table. Note that they are Inventor files, not generic stls. (I don't have Inventor anymore so I can't open/convert them).

Step 2: Make the Top and Base Frames

The top and base of the table are essentially open frames with various grooves cut out for joining and assembly.

For both of them, I started by jointing and planing lengths of maple to the thicknesses specified in the design. Next, I used the table saw to carefully cut out long notches from the edges of the parts. The base frame only has one groove, but the top frame has multiple. Make sure to check that your piece of plastic fits flush after you cut the groove it will sit in (you won't be able to go back and make it deeper).

You should then miter all eight pieces to length using a jig (this is something that I did not do, so my top and base frames were slightly different sizes). Also cut grooves for adding splines (strips of wood) when you glue the frames together. With the top frame, make sure that you cut the grooves so the splines won't be visible on the finished top surface (make sure they pass through the inner edge, where the plastic will sit and cover them).

Set all the pieces near their places and glue/clamp the frames together. Take care that the edges of the miters are touching and that the frames are sitting flush with the surface they are on. Once they are dry, trim away any part of the spline that is sticking above the surface of the frame.

Step 3: Cut and Attach the Inner Frame

A thin plywood frame sits inside the top frame and acts as a connecting surface between the top frame and the legs, as well as a mounting surface for the electronics tray.

I started by cutting all my plywood strips to the same length and width on the table saw. Next, I marked and drilled holes near the edges so that later on I would be able to access the cables from the LEDs in the legs. I then cut the corners to 45 degree angles on the chop saw so the strips would fit neatly together as a frame. I routed a groove along the inside edge so the electronics tray would be able to sit flush with the frame's surface. Finally, I attached the strips of the inner frame to the bottom of the top frame with wood glue and brads.

Step 4: Make the Electronics Tray

Most of the electronics for the table are mounted on a removable plywood tray underneath the top frame.The tray fits flush to the inner frame, with routed edges on all sides. After routing, I cut squares from all four corners of the tray so it could fit around the legs and be removed if I ever needed to access the electronics. Finally, I drilled holes for the power switch and control button.

Step 5: Make the Legs

The legs are made of two pieces of planed maple (which face outwards) and two pieces of plywood (which face the inside of the table). I cut all the parts (both plywood and maple) for the legs at the same time, so I knew they were the same width and length.

Some of the LED strips are embedded in the maple, so I had to cut a deep groove using a dado blade on the table saw. I then used a normal blade to cut a space for the embedded plastic. Without moving the blade, I trimmed off a thin strip at the edge of the plywood pieces for where the edges of the plastic would lie. I did the same thing to create the raised step where the legs would attach to the underside of the top frame. Lastly, I cut the mitered long edges of the parts.

One of the shop staff taught me a useful trick for gluing together the legs, which was to hold the parts together using blue tape. Arrange the parts, then tightly connect the edges with strips of tape. Unfold the leg and apply glue to the joints. Refold the leg and seal the last corner before letting it dry. Since the tape holds everything in place, the corners are nicely flush without fighting with clamps.

Step 6: Finish the Base

I cut another plywood square to fit on the top of the base frame and be connected with L-brackets. To install them I measured and marked the holes for the plywood panel, which I drilled half-way through with the drill press (I didn't want to see the holes when I flipped the base right-side-up). Once the brackets were attached to the plywood, I hand drilled the pilot holes for connecting to the frame and put in the screws.

Step 7: Rout the Edges

After the major components of the table were completed, I routed the external edges of the parts to keep them from splintering or chipping when I use the finished table.

Step 8: Sand and Fill the Parts

I sanded the all of the parts with 180 and 220 grit sandpapers and an orbital sander until smooth. I made sure to get as many of the interior edges as possible. After sanding, I filled gaps in the edges with small amounts of filler and sanded them flush again.

Step 9: Seal the Parts

Once everything was sanded, I finished the parts with Watco Danish Oil to harden and seal the wood. I found it easiest to use a foam brush for applying the oil and a clean rag for removing it.

Step 10: Attach the Electronics Shelf

I didn't want to worry about applying the oil around exposed metal parts, so I left the installation of the electronics shelf until after I applied the finish. I used T-brackets to attach it to the underside of the top frame. The holes in the shelf itself only go halfway through the wood to make sure the screws don't poke out the top.

Step 11: Attach the Legs

The legs fit tightly into the corners to the top frame. I had a small gap between the surface of the legs and the top frame, which I filled using a scrap of 1/4" plywood. I drilled the pilot holes first, tacked the plywood in place using brads, and finally attached the legs with screws.

Step 12: Attach the Base

Similarly, I attached the base to the top/legs assembly. I marked where the center of the interior sides of the legs would be and drilled pilot holes before adding screws. To finish the table, I applied strips of adhesive-backed furniture felt to make sure it wouldn't damage the floor and could slide easily.

Step 13: Solder the LED Strips

The LED strips come in lengths of ten sections, but for the table I needed six lengths of six sections (for the top grid) and four lengths of two sections (for the legs). This meant I needed forty-four sections, or five cut-up strips in total. They also needed the proper connectors so I could easily plug them in to the circuit.

I ended up making:

(6x) Six control sections, 3 pin male header on starting end

(3x) Two control sections, 3 pin male header on starting end and 3 pin female header on back end

(1x) Two control sections, 3 pin male header on starting end

The LED strips can be cut in the middle of the copper pads with regular scissors. To solder on wires I used a blade to carefully cut away the casing around the pads and applied a small amount of flux. I then tinned the pads and soldered on the wires. The exposed joints I covered with heat shrink and the ends of the wires were soldered to the appropriate connectors.

I needed to connect a few lengths of LED strip together to make the sixth strip for the table top. Once again I trimmed the casing, applied flux, and tinned one set of pads. I aligned the pads on the two different strips and melted the solder over the joints to make the connection.

Step 14: Make Cables

Rather than soldering long wires between the strips, I used connectors and cables that I could easily unplug in case something wasn't working. Each cable is about 20" long and has a three-pin male connector on one end and a three-pin female connector on the other. The colors are arranged so they will align with the wires on the LED strips.

I also made a seven similar cables of different lengths (3", 3", 5", 6", 9", 12", 15"), all with three separated single-pin male headers and a three-pin female connector on the other end. These were for plugging the strips into the circuit board.

In addition to those, I made a short 3" cable for the signals going from the Arduino to the LED strips and another for the Arduino power and ground.

Step 15: Make the Circuit Board

The circuit board mainly connects the cables together, rather than containing electrical components, but I found it easier than trying to combine all the cables without it. The only non-header component is a 10K ohm pull down resistor used in the circuit for reading the button state.

All the headers on it are female. It has ten pins connected to power (seven for the LED strips, one for the Arduino, one for the button, and one for the switch/power coming in) and nine connected to ground (seven for the LED strips, one for the Arduino, one for ground from the batteries). There are two sets of seven headers for the LED signals coming in from the Arduino and the LED signals going out to the strips.

I didn't need the full board, so I scored it with a blade and snapped it in half before soldering on my parts. I started with attaching all the headers, then soldered on the resistor and made the necessary connections.

Step 16: Solder Leads

I soldered long-ish (~7 inch) wires to the power switch and control button.

Step 17: Arduino Code

The code for running the patterns is a giant switch case that changes based on how many times the button is pressed. The button is read as an interrupt, and the interrupt changes variables that tell the cases to break so a new case can be started. Each type of pattern can be easily modified to use different colors or to run at different frame rates. The colors are defined at the beginning of the program to make it easier to read.

Pin assignments:

2: button state/interrupt pin

7: LED strip in the legs

8-13: LED strips in the top

Step 18: Cut and Sandblast the Acrylic

I cut the panels for the legs out of clear scratch-resistant acrylic using a laser cutter, but the rectangles could also be easily cut using a band saw. I then sand blasted the non-scratch-resistant side to give them texture and make them more diffuse. Alternately, you can use opaque plastic instead of the clear acrylic to have more solid-looking panels. To join the acrylic at the corner of the legs I used a sander to make a miter joint.

Step 19: Add LED Strips to Legs

The LED strips are a tight fit inside the legs. They sit in the deep dado cut, behind the acrylic panels. The input and output cables are threaded up to the electronics tray via the holes cut in the interior frame. I ended up using a hook of wire and pliers to pull them through (a flashlight is also handy, especially if you use black heat shrink like I did). The strips were then plugged together using the extension cables I had make earlier. A few adhesive-backed cable holders helped keep the wires at the edge of the interior frame.

At this point, make sure you TEST THE LED STRIPS. Sometimes I ended up with bad connections at the solder joint and the strip wouldn't light. After this point it will be much harder to reach the strips since the acrylic panels will be in the way.

Step 20: Attach Acrylic to Legs

I used a clear version of Liquid Nails adhesive to attach the acrylic panels to the legs. Unfortunately, it was a messy process and dried quickly, so I couldn't get many photos. I applied the adhesive to the wood on either side of the LED strip and quickly pressed on the acrylic with the sandblasted side facing the wood. When it was aligned I held it in place with a clamp (or two clamps, if they had a small clamping area). I then attached the other acrylic panel the same way and left them to dry overnight.

Step 21: Add the Electronics to the Top

Once the legs were completed and drying, I added the electronics to the top. I drew light pencil lines indicating where the LED strips should go and put the strips roughly in place using double-stick tape (the dividers have notches for the strips so you can more carefully align them then). I had also marked the places for the Arduino and the batteries and I used adhesive-back velcro to secure them to the wood.

Step 22: Cut the Dividers

To make the "squares" of the disco panel surface, I created dividers using lasercut acrylic. However, these parts could also be made using a bandsaw or scroll saw, although the corners of the cutouts won't be as sharp. The dividers contain spaces for routing wires, fitting around electronics, and holding the LED strips in place.

Step 23: Add the Dividers

My table wasn't perfect, so some of the dividers didn't fit inside the top frame. I carefully sanded them down until they did, checking the fit as I went. I then assembled the divider structure and put it into place inside the table. Once it was mostly in place, I shifted the wires and LED strips so they lay in the notches and not trapped between the dividers and the electronics tray.

**needs more photos of assembling/installing the dividers

Step 24: Wire the Electronics

Finally, I added the circuit board I had made and plugged in all the cables. It worked better to do this after the dividers were in place because I found several times that I needed longer connecting cables. I also ended up soldering the battery pack to the switch rather than using a header to make a more secure connection between the two.

Step 25: Test!

Check and see if the wiring works - turn on the power switch and cycle through the patterns with the button. Fix any connection issues.

Step 26: Add the Acrylic Top

I didn't add the acrylic top panel until the electronics were all in place and working. My acrylic is a very tight fit and almost impossible to remove from the tabletop (you can also glue it in) and I didn't want to have to unscrew the electronics tray if I didn't have to.

The top panel is an approximately 24" x 24" piece of scratch-resistant acrylic (mine was not quite square due to the geometry of the finished table). Like the side panels, I sandblasted the underside to make it more diffuse and give it texture. The top then snapped into place above the dividers.

**need photos

Step 27: Enjoy!

Pull up a chair and enjoy your new table. As I mentioned earlier, it is very easy to change the colors in the patterns to make this table your own. You can also use the code and LED strips in a different table or for some other light-based purpose.

Love to make it
<p>What does the ''5x'' mean in the 5x led tricolor light strips?? Does it make a difference which one you use??</p>
<p>It means that you need 5 led strips from RadioShack , but from other suppliers it is better if you calculate the total length of the strips and then you can buy ( I bought one led strip - 5 meters , but I skipped the leds on the feet .</p>
<p>I am new to arduino - honestly I am a layman to electronics but liked this idea so tried my luck on this.</p><p>I am trying to upload the code to arduino mega - but i get this error.</p><p>tabletop_full_ino.ino:1:21: fatal error: FastLED.h: No such file or directory</p><p>compilation terminated.</p><p>Error compiling.</p>
<p>You need to include the file FastLED.h on your library , find it ( google search ) and copy paste it . This file allows the arduino to control the leds controllers.</p>
<p>do i have to use the 5x tricolor led strips?????</p>
<p>Do you have to use an Arduino Mega???</p>
<p>No. Any Arduino or compatible should work.</p>
<p>OK!! Thank you! </p>
<p>Cool project</p>
<p>Hi, I just have one question, if you put all your LED's seriell, wouldn't they all have the same color? They don't seem to have a WS2812 controller. How can you have every partition light up in a different color?</p>
this is art!
<p>could be nice for chess</p>
<p>Im looking at this design to create a lit-up 4 player chess board. </p>
<p>Hello, I'm currently building your table (wonderful project, by the way) but I'm stuck on the circuitry. Is it possible that you have clearer pictures of the Arduino and the circuit board? I can't quite figure out how to get everything to connect. </p>
<p>Hey great project!!! I was wondering if you had any pictures that showed the wiring of the circuit board and the arduino a little bit better? I have everything else built i'm just a little confused on the wiring still. Thanks</p>
<p>In the process of making this! Good thing I have connections to tools and free wood otherwise this would be much more expensive than it already is. lol</p>
<p>Where did you buy that much maple at 1.5&quot; thick? You use about 35' of it throughout the project and the stuff is incredibly expensive. </p>
<p>which program you have used in order to realize the design of the table?</p>
<p>I used Autodesk Inventor.</p>
<p>Secondly, This project along with another one I've seen floating around give me an awesome idea that I will more than likely not be able to pull off myself. But I will attempt none the less.</p>
<p>Is there a reason you don't have this entered in the &quot;Make It Glow!&quot; Contest?</p><p>https://www.instructables.com/contest/makeitglow2014/</p>
<p>Could you possibly upload the original inventor model? A friend and I are making a table based off of yours and it would be really cool to have the original model. Thanks for the cool 'ible!</p>
<p>The model is up now in the first step. I didn't follow it exactly so be aware that there are probably some inaccuracies.</p>
Can you post the code for the Arduino <br>
Smart idea! I really like this project. Thanks for shearig :)
<p>Yeah, I think that I have found my future table!</p>
<p>A great idea, but I'd suggest a &quot;dumbing down&quot; version of instructions for people (of ALL ages) who haven't the knowledge you have for programming the lights. There are some who might want to use electricity instead of batteries too. All in all a great looking table!</p>
<p>Great job, </p><p>what software did you use to make your model ? </p>
<p>I did the initial design by sketching, but I used Autodesk Inventor for the CAD and the dimension drawings.</p>
excellent! i love it . This is a geart work, with pretty design, i'm a big fan ! thanks for sharing it.
<p>Great idea and very well documented project. It looks awesome to me :). </p><p>How long can you power these LEDs with 8xAA batteries? </p>
<p>A quick look at the numbers gives me about 0.5 hours of run time (using <a href="http://www.digikey.com/en/resources/conversion-calculators/conversion-calculator-battery-life" target="_blank">this</a> calculator), although I'm pretty sure I've run mine for more than that. It will also depend a bit on the batteries you use</p><p>According to the user guide, the LED strips require 1A (1000mA) to run (although I don't think it is actually that high) and the Arduino seems to take only 25mA. Since there are about five strips arranged in parallel, the total draw is somewhere near 5025mA. An average AA alkaline battery has a capacity of 1700-3000mAh (according to Wikipedia).</p><p>You could of course do a more detailed calculation by actually measuring the current draw of the components and the capacity of your specific batteries.</p>
<p>Hello again and thanks for your reply!</p><p>Wow, that's a lot of power! I'm pretty sure you can light the entire room with this table ^^. To be honest, I'm surprised that AA batteries can handle 5A peak :D.</p>
<p>i really endjoy it!</p>
<p>Very nice project . Excellent woodworking as well . Thanks for sharing! </p><p>Build_it_Bob</p>
<p>One thing that would make it even more disco would be addition of sound sensor so it can blink with music. Love the final look!</p>
<p>Thank you! I definitely considered it, but the table itself took more of my time than I expected. Since the base is an Arduino, you can easily add sound, light, or proximity sensors to make it interactive.</p>
<p>If it's so difficult to take off the table top how do you change the batteries?</p><p>Love the look of this, by the way.</p>
<p>Thanks! You can undo the t-braces on the underside of the table top and pull out most of the electronics that way. It is also probably possible to pull out the top using suction cups or tape (assuming you don't use any adhesive when you install it), but it is a very tight fit. </p>
So awesome!! Yet so complicated looking :-)
<p>This looks totally awesome! </p>
Nice build! And I like the wood tone you chose; I wouldn't have thought to use natural wood with a disco theme, but it looks awesome!
<p>Groovy lights. Totally digging that table design, too!</p>
<p>Dang! You did such a beautiful job with this project! Thanks so much for sharing this, and including such great documentation.</p>

About This Instructable




Bio: After a fun time making projects for the Instructables design team, I'm now helping to start the robot uprising.
More by Beaconsfield:Raspberry Chocolate "Blood" Sauce Quick-and-dirty Phone Holder Simple Chair Pocket 
Add instructable to: