Welcome to my Picnic Table project

I might add some buttons for presets, but I have other priorities right now.

This project was partially inspired by my girlfriend's desire for an outdoor table, TC's light projectopens in new tab. and my desire to make cool things, and ability to reject any idea of scope control.

I'd like to thank TC for all of his help with the lights - I literally had no idea what I was doing until it was done. If you have any questions about anything Data Science or really any cool projects I'm sure he'd love to chat. Try contacting him through his Github.opens in new tab. I also need to thank Nick Smith and Kynan Waggoner for loaning me some powertools and my girlfriend Marissa for letting me borrow her garage, and putting up with me.

All of these people are way better than me at everything.

Anyway, the project here was to build a picnic table (for outdoor use and storage) I went ahead and added the led lights to the bottom of the table because I thought it wood (haha) look cool. Honestly, I did a lot of extra work for aesthetics, and it still looks pretty bad. If you would like to replicate this project, the details for the table are here, and for the LEDs and website (also this entire site) can be found in my repo.opens in new tab

The Table

I tried to take pictures as I went, but didn't do a very good job. Contact me with questions if you have any.

I probably over built this and would like to stress that doing this without a table saw, bandsaw, and large miter saw is a huge pain. If you don't have access to those tools (I didn't) I would suggest using L-bracket clamps like theseopens in new tab instead of the psuedo joinery I did. If you would like to suffer and have bad joints, I used a skill saw with a 10" blade. If you can find a thinner one that will let you cut a 4x4 (don't forget about clearing the board throught the up down cycle of the blade), you might be better off. My blade was quite thick.

The first step is to get all of your wood. I made my table quite large (8 feet long), so I'll just go off those measurements. I used full 2x6's for the tops and 4x4's for everything else. Remember that timber dimensions are nominal. A standard rule of thumb is that everything over 2" shrinks by 1/2". So a 2x6 is really a 1.5"x5.5" and a 4x4 is really a 3.5"x3.5". Also, if you're buying lumber, there's a really really good chance the boards are warped, or slightly off in size. People that do this a lot will typically look down the boards while they're buying them at Home Depot. I can't say anything about other lumber yards; it might be bad ettiquite, like rubbing chopsticks together at a fancy Japenese Restraunt. My final dimesnison were:

 8' long x ~34" (6 2x6s) wide x ~31.5" high .
Benches (x2)
 7' long x ~ 11" wide x ~16.5" high (you should maybe make these a few inches taller)

Some WoodSome WoodIf you want your table to be the same size as mine you'll need the following quantities of wood, I'll also have a shopping list at the bottom of this page. If you want to change the sizes, you'll have to figure out your wood needs, although I suspect they won't change much unless you trim your length down to 5ish feet. I used Home Depot's Red Cedar Pressure Treated Woodopens in new tab. for both the tops and bottoms (except in 4x4 for the bottom / base). You shouldn't need pressure treated wood, as we'll end up coating it anyway, but I believe it's best practice to use it.

10 4x4's and 10 2x6's
Make sure you get the best wood you can. You'll want to make sure it's level, has good edges, and is dry (or you can leave it in your girlfriend's garage for 3 weeks, up to you).

Building The Table

Step 1: Cut the boards to length. I added a few inches to the height of the legs, as mine are a little short.

 The most obvious step is to cut all of your 2x6's with a miter saw.

  You want 4 at 7' and 6 at 8'

 You'll also need to cut the 4x4's

Part Name Quantity Length
Legs 4 30"
Lengths 2 93"
Widths 2 33.5"
You will want to change this depending on how much space you have between your boards
Supports 2 26.5"

Part Name Quantity (for 2 benches) Length
Legs 8 12"
Lengths 4 81"
Widths 4 33.5"
You will want to change this depending on how much space you have between your boards
Supports 4 4"

** You do the exact same thing for the table and benches, just with different lengths of everything, the pieces that you cut out will all be the same size. **

Step 2: Make the legs

 You're going to want to make a post on the inside corner on each leg. This way you can connect your width and length boards without screwing into end grain ever. The corner with the post should be the worse corner (e.g. most rounded). These cuts were a huge pain with a skill saw. I ended up starting the cuts with a circular saw so the skill saw had to cut less wood. The post stub thing needs to be 3.5" tall (the width of a 4x4), and 2" thick/wide. This will leave 1.5" for the width and length boards.

Leg with post 1 Leg with post 2 Leg with post 3

Step 3: Make the Widths
These are also slightly complicated, but less so than the legs. you'll need to cut a rectangle out of each end, so the width can lay on top of the leg, and beside the post. You'll want the part that sticks out to be 3.5" long and 1.5" wide. I honestly think the picture describes it much better than I can with wordies. You need to make sure the rectangles you take out are on the same side of the board, and you'll want to leave the two best corners, the side opposite of the rectangle you take out (e.g. the one on the ground in this pic) will be the display side.

Leg with post 1
Step 4: Make the Lengths
These are almost the exact same as the lengths, except the rectange you take out should be 2" long and 1.5" wide. When you put the lengths and widths together,you'll have a little 2" square missing from the joint. They'll look like this (but hopefully flush):
Top down view, without a leg 1 Top down view, without a leg 2

Step 5: Build the Base
This part can be tricky, you need to asseble the whole thing. You want to make sure you get all of your pieces together as tightly as possible, with right angles between everything. I don't have some secret family trick for this, just a speed square. I started by putting the widths onto the legs, then connecting the lengths. It might be smarter to connect the lengths and widths with L-bracesopens in new tab, then out the legs into each. Up to you.

Once assembled, everything should look like this, except not painted:

Table without the top.

(Optional) Step 6: Add L braces I added L-braces to the table, my legs had a little play I didn't like. I don't think it'll make a difference when in the painting process you add these (I put them on after I painted, then painted over them).

Top down view, without a leg 2

Step 7: Paint the Base
I used Rust-Olem Matte Blackopens in new tab paint, since it will help waterproof the bases. I also like matte black things. You should use a nicer quality brush, and definetly need to buy (or have) some Mineral Spiritsopens in new tab around to clean up after yourself, since it's waterproof paint you can't just wash it off.

Step 8: Finish the Tops
I used a sealing outdoor finish, in a semi-gloss. Full Gloss finishes will show scratches more than the less glossy options. I like wood, and how it looks, so I used a transparent finishopens in new tab. Again, you'll want a nice brush and a bucket of Mineral Spirits to put the brush in between coats. I did 3 coats total, sanding between the coats. I also did one coat on the sides and bottom of the boards to help with waterproofing. I let the finish drip down the sides as I applied it to the tops for the extra coats to add some character (not because I was lazy).

Step 9: Add supports
You'll have to figure out your own measurements for these, any warping in your 4x4's will affect the length of the supports we're about to add. You can make these while your finish dries. I added two supports to each bench and the table (so 6 total). I just measured the gap where I wanted to add the support and cut some of the 4x4 drops I had to size. You'll paint these black too. The supports for the table will be on each side of the electronics box, to help add some protection to it. I got some flat bracesopens in new tab to use to attach the supports to the table with. The 6-8 inch ones will let you use 1 brace for each support on the bench.

Step 10: Put the tops on
Just screw all of the 2x6's onto the bases. If you're going to have space between the boards, I would use a spacer (e.g. popsicle sticks) to make sure everything is consistent. We'll put the supports onto the table and benches once we make the electronics box.

Building The Electronis box

Step 1: Get all of the componets
You'll need a lot of things to get this to work. Here's an Amazon shopping listopens in new tab.

If you want to make everything neat you'll need to get a bigger electronics box. Also, I couldn't find strain reliefs for the LED strips that fit well. If you do, please send a link my way.

Step 2: Setup your Raspberry Pi
Get an image of Raspbianopens in new tab onto your SD Card.

Setup SSH on your piopens in new tab.

Configure your Raspberry Pi's wifi. You can do this from a laptop when you are adding the image to the SD cardopens in new tab , or from the Pi (with a keyboard and mouse) once you have booted the piopens in new tab.

Step 3: SSH into the Raspberry Pi
Go ahead and SSH into your raspberry pi

ssh pi@raspberrypi.local
The default user is pi , and the password is raspberry.

Step 4: Install some more things onto the Pi

sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install git
pip install numpy
pip install Flask
pip install pigpio

wget abyz.co.uk/rpi/pigpio/pigpio.zip
unzip pigpio.zip
make install

git clone https://github.com/MasonCaiby/website.git
You really only need one page from the repo above, and can hack away the rest of the website if you so desire.

Step 5: Setup the the electronics
You should follow David Ordnung'sopens in new tab blog post to get the basics setup. I followed his tutorial and would be referring to it to write another one.

Step 6: Move everything into a waterproof electronics box

  1. Cut a hole in the end of the box for the power cord's strain relief to go through. You will then put the strain relief on, cut the power cord close to female side, and thread the cord into the box. Then use the slim wire nuts to reconnect the wires.
    Wire Nuts 1 Wire Nuts 2

  2. Now insert the wires for your pi's GPIO pins through the case's top (if that's how you want them handled). and put the pi in the case.
    GPIO PINS Cover with wires

  3. Cut two holes in either side of the box for the LED strips' strain reliefs to go through. Put the LEDs into the strain reliefs and tighten them down.
  4. Finally wire everything thing up, and shove them in the box. My box was a little small for all of my components, so I ended up with a messy box wow everything is so neat and tidy in there, too bad I forgot to take a picture.

Putting it all together

Now you just need to screw the box onto the table, glue the LED strips on, and plug it in. If you have your pi set up to connect to your router on boot up and SSH enabled, you just need to plug the main power cord in, wait a minute, SSH in, start the pigpio demon
sudo pigpiod 
python app.py
I run my app.py in a tmux instance so I can still access the pi's command line w/o interrupting the website
tmux new -s website
. In the end your table should look like this:
Table no lights light table

Since you can't access the light_controls page anymore, here is a screen shot of the controls page:

Controls Page
The "New Color" box changes with a move of the slider.