Light-Up Disco Table

by Beaconsfield in Circuits > Arduino

138827 Views, 1718 Favorites, 0 Comments

Light-Up Disco Table

discoTable.jpg
discoTable1.jpg
discoTable2.jpg

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.

Materials:

Table Design

cap1.JPG
cap2.JPG
cap3.JPG

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).

Make the Top and Base Frames

IMG_7229.jpg
IMG_7251.jpg
IMG_7332.jpg
IMG_7567.jpg
IMG_7337.jpg
IMG_7577.jpg
IMG_7340.jpg
IMG_7341.jpg
IMG_7518.jpg
IMG_7520.jpg
IMG_7532.jpg
IMG_7543.jpg
IMG_7544.jpg
IMG_7553.jpg
IMG_7557.jpg
IMG_7561.jpg
IMG_7582.jpg
IMG_7573.jpg
IMG_7587.jpg
IMG_7599.jpg
IMG_7603.jpg
IMG_7609.jpg

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.

Cut and Attach the Inner Frame

IMG_7628.jpg
IMG_7632.jpg
IMG_7643.jpg
IMG_7649.jpg
IMG_7838.jpg
IMG_7840.jpg
IMG_7889.jpg
IMG_7653.jpg
IMG_7650.jpg

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.

Make the Electronics Tray

IMG_7613.jpg
IMG_7659.jpg
IMG_7666.jpg
IMG_7669.jpg
IMG_7826.jpg
IMG_7831.jpg
IMG_7897.jpg
IMG_7876.jpg
IMG_7879.jpg

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.

Make the Legs

IMG_7956.jpg
IMG_8015.jpg
IMG_8029.jpg
IMG_8038.jpg
IMG_8090.jpg
IMG_8081.jpg
IMG_8087.jpg
IMG_8098.jpg
IMG_8109.jpg
IMG_8102.jpg
IMG_8106.jpg
IMG_8112.jpg
IMG_8119.jpg
IMG_8126.jpg
IMG_8123.jpg
IMG_8129.jpg
IMG_8134.jpg
IMG_8135.jpg
IMG_8139.jpg
IMG_8141.jpg
IMG_8144.jpg
IMG_8148.jpg
IMG_8149.jpg
IMG_8158.jpg

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.

Finish the Base

IMG_8210.jpg
IMG_8216.jpg
IMG_8219.jpg
IMG_8228.jpg
IMG_8229.jpg
IMG_8234.jpg
IMG_8244.jpg
IMG_8248.jpg
IMG_8253.jpg

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.

Rout the Edges

IMG_8167.jpg
IMG_8180.jpg
IMG_8199.jpg

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.

Sand and Fill the Parts

IMG_8273.jpg
IMG_8255.jpg
IMG_8262.jpg
IMG_8268.jpg
IMG_8277.jpg
IMG_8342.jpg
IMG_8345.jpg
IMG_8363.jpg

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.

Seal the Parts

IMG_8412.jpg
IMG_8414.jpg
IMG_8420.jpg

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.

Attach the Electronics Shelf

IMG_8284.jpg
IMG_8292.jpg
IMG_8299.jpg
IMG_8461.jpg
IMG_8463.jpg
IMG_8466.jpg
IMG_8471.jpg
IMG_8474.jpg

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.

Attach the Legs

IMG_8485.jpg
IMG_8493.jpg
IMG_8502.jpg
IMG_8514.jpg
IMG_8517.jpg

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.

Attach the Base

IMG_8519.jpg
IMG_8522.jpg
IMG_8524.jpg
IMG_8528.jpg

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.

Solder the LED Strips

IMG_7970.jpg
IMG_8047.jpg
IMG_8049.jpg
IMG_8058.jpg
IMG_7985.jpg
IMG_8005.jpg
IMG_8010.jpg
IMG_8418.jpg
IMG_7993.jpg
IMG_7997.jpg
IMG_8074.jpg

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.

Make Cables

IMG_8445.jpg
IMG_8602.jpg

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.

Make the Circuit Board

board_layout-01.jpg
button_schem.jpg
IMG_8377.jpg
IMG_8380.jpg
IMG_7967.JPG
IMG_8390.jpg
IMG_8395.jpg
IMG_8396.jpg
IMG_8401.jpg
IMG_8408.jpg

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.

Solder Leads

IMG_8186.jpg
IMG_8191.jpg

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

Arduino Code

arduino_logo.jpg

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

Cut and Sandblast the Acrylic

IMG_8309.jpg
IMG_8426.jpg
IMG_8315.jpg
IMG_8439.jpg
IMG_8318.jpg
IMG_8320.jpg

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.

Add LED Strips to Legs

IMG_8536.jpg
IMG_8540.jpg
IMG_8545.jpg

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.

Attach Acrylic to Legs

IMG_8549.jpg
IMG_8553.jpg

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.

Add the Electronics to the Top

IMG_8565.jpg
IMG_8566.jpg
IMG_8571.jpg

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.

Cut the Dividers

IMG_8586.jpg
IMG_8590.jpg

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.

Add the Dividers

IMG_8595.jpg
IMG_8788.jpg
IMG_8790.jpg
IMG_8796.jpg
IMG_8799.jpg
IMG_8800.jpg
IMG_8803.jpg

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

Wire the Electronics

IMG_8769.jpg
IMG_8772.jpg

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.

Test!

IMG_8783.jpg

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

Add the Acrylic Top

IMG_8806.jpg
IMG_8809.jpg
IMG_8811.jpg

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

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.