Instructables.com - Interactive LED Beer Pong Table 2.0 (BPT X5)

advertisement
Interactive LED Beer Pong Table 2.0 (BPT X5)
by Regax on December 17, 2014
Table of Contents
Interactive LED Beer Pong Table 2.0 (BPT X5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Intro: Interactive LED Beer Pong Table 2.0 (BPT X5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Step 1: Intro: Gallery & Downloadable Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Step 2: Preparation: Project Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Step 3: Preparation: Fully Assembled Kit Walkthrough . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Step 4: Preparation: Unassembled Kit Walkthrough . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Step 5: Preparation: PCB Only Kit Walkthrough . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Step 6: Preparation: Skills and Software Required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Step 7: Preparation: Electronic Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Step 8: Preparation: Required Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Step 9: Preparation: Tools Needed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Step 10: Construction: Assembling The Master PCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Step 11: Construction: Assembling The RGB Pods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Step 12: Construction: Assembling the 2x4 IDC Cables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Step 13: Construction: Assembling The LED Rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Step 14: Construction: Building The Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Step 15: Construction: Adding The Supports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Step 16: Construction: Creating The LED Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Step 17: Construction: Pouring The Silicone Into The Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Step 18: Construction: Installing The RGB Pods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Step 19: Construction: How To Crimp Various Connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Step 20: Construction: Building The Ball Washer Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Step 21: Construction: Installing The Ball Washers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Step 22: Construction: Installing The Acrylic Sheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Step 23: Electrical: Installing The Master PCB & Connecting Up The Pods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Step 24: Electrical: Connecting Up The Rest Of The Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Step 25: Electrical: Assembling The RGB Underlighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Step 26: Software: An Introduction to the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Step 27: Programming: How To Program The MCU Wirelessly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Step 28: Software: How the LED Grid is Updated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
Step 29: Software: Controlling the RGB Pods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
Step 30: Software: Controlling the LED Ring Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
Step 31: Software: Using the ADC Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
Step 32: Software: Controlling the Ball Washers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
Step 33: Software: 24-Key Infrared Remote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 34: Software: 16x2 LCD Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
Step 35: Software: UART Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
Step 36: Software: EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
Step 37: Software: VU Meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
Step 38: Software: WS2812B Add-On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
Step 39: Conclusion: References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
Step 40: Conclusion: Project Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Intro: Interactive LED Beer Pong Table 2.0 (BPT X5)
Due to popular demand, I have created a new and improved version of my original Interactive LED Beer Pong Table!
These tables are one-of-a-kind projects that are quite rewarding to create! The original table won the grand prize in the FSL Contest here on Instructables, it won a
second place prize in the Radioshack Sensors Contest and it's appeared on Discovery Channel's Daily Planet show. On top of that, it's been featured on numerous
websites and has over 200000 views on Instructables.
Since I posted the write-up for the first table, I have had many requests to create a new version which would be able to withstand shipping, or at the very least, offer a kit
so that other users could build their own table. This write-up is for the new version of the beer pong table and contains all of the steps to assemble your own, whether you
do it completely from scratch or with a kit from my website, Chexal Technologies.
So strap in and lets get to making the coolest beer pong table that the world has ever seen!
Update
CBC did a short segment of this beer pong table and it's garnered 29Million+ views on Facebook.
Check out the video here: https://www.facebook.com/cbcnews/videos/101532663...
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 1: Intro: Gallery & Downloadable Files
The nice thing about building one of these tables from a kit is that the more difficult parts of the project have been completed (Electronic Design, PCBs made, etc.) but
more importantly, you can fully customize the table to your liking. The photos that I posted above are of the version that I created, but you can completely change the
layout of your table. Add more LEDs to the unused PWM channels, maybe you'll switch out the LED rings for small LED signs/logos, completely omit the LED grid and
just add LED strips, etc etc. There are a lot of extra PWM channels that aren't aren't in use on the master PCB and can be put to use!
If you do plan to swap out certain LED modules (like the LED rings), you must take care not to exceed the maximum ratings of the transistors that are driving those
devices. This is all listed in detail later in the Instructable. For now, just take a moment to come up with a new layout for the wickedest beer pong table this world has ever
seen. Once you're done that, continue through the Instructable and assemble it!
Note
The source code, CAD files, schematics and bill of materials are all included in the downloadable zip file in this step.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. A table with custom made signs for a customer.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 2: Preparation: Project Overview
Version 2.0 of the beer pong table has many added features that the original table never had. On top of that, this Instructable will show how to build a 2'x8' table instead
of the 3'x8' size of the first table (I did this as I wanted to create a table with a smaller footprint. I.e. less space needed for it and cheaper to ship). You will also notice that
the PCBs and wiring is completely encased inside of the table, whereas the other table just had an open bottom.
This new table has 1122 total LEDs on it, it is capable of controlling up to 608 individual channels (96 of which are capable of 16-bit PWM), it only has one master PCB
and the 20 RGB pod PCBs, it can read and write to an SD card, it has a 16x2 LCD display, an IR receiver built into the table so that it can be controlled with a remote, a
breakout connector for VU meter capabilities, a bluetooth module and a couple more features. The breakdown of the features are listed below.
LED Grid
In the center of the table we can create any animation that will fit into a 32x12 pixel grid. We are able to display scrolling text across it, watch a pong animation, display a
sine wave, display the score of the game, etc. There is a huge amount of possibilities! Since we are able to detect when a cup is removed from the table we can make
specific animations that trigger exactly when that happens. We'll get more in-depth with that later. The table actually supports a maximum display size of 32x16, however
I have made it only 32x12 to span further across the table.
20x RGB Pods w/ Infrared Sensors
At each end of the table you will see 10 pods. The 16oz cups that are used for beer pong are placed over top of these pods. Each pod contains 6 RGB LEDs and 1
infrared sensor and we are able to light up the pods with any color that we would like. The infrared sensor will detect whether or not a cup is over top of the pod, so if a
cup is removed we can change the color of the pod, begin an animation on the LED grid, run an animation on the RGB pods, etc.
Air Baths
There is an air bath on each side of the table. The purpose of the air bathes are to blow any debris off of the ping pong balls, thus cleaning them. When a player drops a
ball to their left into the "IN" hole of the air bath, it detects the ball and starts a fan. This fan will move the ball down a pipe, removing debris and blowing it out the "OUT"
hole to the right of the player. The player then grabs the ball and the air bath shuts off. Players can also dunk the ping pong balls in a cup of water before putting them
into the air bath to get a better clean.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
LED Rings
There are a total of 12 LED rings on the beer pong table. The outer edges of the table contain 4 LED rings each and the air baths make up the other 4. Much like the
32x12 LED grid, the LED rings are just used for animations. They can be set to go in accordance with music (VU Meter feature must be turned on), fade in and out, flash
rapidly or any other cool animation that you can think of. Beer cups can be set inside of the LED rings on the railing which provides a cool effect on the upper lip of the
cup. This table can support up to 16 LED rings on the specified PWM channels and the LED rings can be swapped out for many other LED circuits, such as small LED
logos.
VU Meter
A user can add a VU meter module to the master PCB and set up the table to dance to different frequencies in the music around it. One can use the AUX input to feed
the audio directly into the microcontroller or opt to use the built-in microphone to detect audio around it. The VU Meter can be set up to activate any LED lights to any of
the 7 available frequencies that the microcontroller can detect. This is a really neat feature and the animation possibilities with it are endless.
Bluetooth Module
This beer pong table contains a bluetooth module which allows it to communicate wirelessly with PCs or mobile devices. This is still in the alpha stage, but in the future it
will allow the beer pong tables firmware to be updated wirelessly. This is a huge plus as it allows even greater hackability for users. On top of that, we can use it to send
the score of the game or control individual features on the table.
Micro-SD Card
"Why would a beer pong table ever need an SD card", you ask? It's simple. I want users to be able to design animations on their PC with custom built software, save it to
a file, load that file onto an SD card then insert it into the table where they can display their own custom animations! More than anything, this is storage space for custom
user animation files. I plan to make it so that the SD card doesn't need to be pulled out of the table and that files can be copied to it over the bluetooth link from a PC. This
feature is also in an alpha stage.
RGB Underlighting
We have so many lights on top of the table, why not put some on the bottom too! This table has three dedicated 16-bit PWM channels solely for the use of RGB
underlighting. I mean, with all of the other lights in the room, we may as well change the color of the floor too.
16x2 LCD Display
A small 16x2 LCD display has been added to the new table so that we have a quick way of changing table settings, viewing score or accessing menu options.
IR Receiver w/ Remote
Sometimes it is just too much of a hassle to control the table over bluetooth with a PC or mobile device and we want a faster way to do it. Enter the 24 button infrared
remote. Want to display a different animation? Dim the brightness of the RGB pods? No problem, grab the remote and do it instantly. You can also use the 16x2 LCD
display to change menu settings in conjunction with the remote.
EEPROM Memory
The master PCB does contain an EEPROM chip which has not been implemented quite yet (I still have to write the code for it). This chip is used to save any user settings
between power cycles and may hold the button codes for future IR remotes.
Extra PWM Channels
Now if all of the LED features listed above aren't enough and you yearn for more lights, you're in luck. With a small breakout PCB, you can control up to twelve more 16bit PWM channels. That means more fading animations, more LEDs and more excitement! In all reality, you may be hard-pressed to find enough room on the table for all
of the LED features! ;)
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 3: Preparation: Fully Assembled Kit Walkthrough
This kit contains all of the electronic components that the "Unassembled Kit" contains and has them already soldered on the PCBs. The LED grid does not come preassembled seeing as it has to be built into the table itself, but all of the LEDs and wiring for it are included in this kit and can be assembled when the table is built.
All of the PCBs are fully operational and tested before being shipped out and the microcontroller is pre-programmed with the bootloader so that the firmware can be
updated over bluetooth. All of the connectors and wiring harnesses are assembled and have been tested with their respective parts. With this kit you don't need a lot of
technical know-how as it is pretty much plug and play except for the LED grid which has to be soldered together. If you can wield a soldering iron to make the LED grid
and have the skills to build the table, this kit might be a good choice for you.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. A complete Fully Assembled Kit. The package is 8x8x8" and weighs about
6lbs.
Image Notes
1. The main Master PCB. This is v4.1 and differs from v4.01 because it has a
new LCD connector and also a WS2812B breakout connector.
Image Notes
1. 8x Assembled LED Rings
Image Notes
1. 20 Assembled RGB Pods
Image Notes
1. 4x LED Strips. These are formed around the ABS pipe for the "ENTRY" and
"EXIT" holes on each ball washer.
Image Notes
1. 2x Assembled Air Bath Fan Motors
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. 2x Sets of Air Bath Sensor Brackets
Image Notes
1. 2x Air Bath Sensor Modules
Image Notes
1. 1x Set of RGB Underlighting Strips
Image Notes
1. 20x Assembled RGB Pod Cables
Image Notes
1. 1x 12V Power Supply
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. 1x Push-Button Power Switch
Image Notes
1. 1x LCD Display
Image Notes
1. 1x LCD Display Breakout PCB
Image Notes
1. LCD Display Kit for X5
Image Notes
1. 1x Infrared Remote (Customized Remotes Are In Production)
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. 1x Infrared Receiver Module
Image Notes
1. 1x Assembled 50P LED Grid Cable
Image Notes
1. 1x LED Grid 50P Breakout PCB
Image Notes
1. 1x LED Grid Set (Unassembled)
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 4: Preparation: Unassembled Kit Walkthrough
This kit contains all of the parts that are included in the "PCB Only" kit as well as all of the electronic parts and components needed to assemble the PCBs and LED
features. As the name of the kit states, the PCBs and connectors come unassembled and have to be put together by the backer. This kit requires advanced soldering
skills for the various types of SMD components that have to be populated on the PCBs. You will also need a PIC programmer to get the initial bootloader programmed
into the microcontroller, after that initial programming, you can then program over bluetooth.
Each component has to be soldered onto each PCB, meaning that this kit requires good soldering skills and a decent soldering iron. There are some really small SMD
parts that only have 0.28mm between pins, so you need a steady hand. I do provide video instructions later in the Instructable that shows how to solder some of these
small components.
Step 5: Preparation: PCB Only Kit Walkthrough
This kit comes with all of the PCBs that are required to create your own Interactive LED Beer Pong Table. It contains 1x Master PCB, 20x RGB pods, 1x 50-Pin Breakout
Header for the LED grid and 1x LCD Display Breakout PCB which makes it easier to connect up the LCD to the X5 board. It also includes an IR remote along with the
custom air bath motor mounts and sensor brackets.
This is the most advanced kit, as none of the electronic components are included in this kit and they have to be purchased separately. The bill of materials and other
information for this kit can be downloaded from the main zip file in step #1.
Each component has to be soldered onto each PCB, meaning that this kit requires good soldering skills and a decent soldering iron. There are some really small SMD
parts that only have 0.28mm between pins, so you need a steady hand. I do provide video instructions later in the Instructable that shows how to solder some of these
small components.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Everything that is included in the PCB Only Kit.
Image Notes
1. 1x Master PCB
Image Notes
1. 50P Breakout Header for LED Grid
Image Notes
1. 20x RGB Pod PCBs
Image Notes
1. LCD Display PCB Breakout.
This allows us to convert the 1x16 connector into a 2x7 connector which is easier
to make. I haven't found any proper 1x16 wiring harnesses so I just made an
adapter instead. I chose to use 2x7 IDC connectors as they can be made easy.
In case you are wondering, pins #2 & #15 are tied together on this adapter (+5V)
and pins #1 & #16 are tied together (GND). That is why it goes from a 16-pin
connector down to a 14-pin connector (2x7).
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. 1x Infrared Remote
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. 2x Air Bath Motor Mount/Sensor Brackets Sets
Step 6: Preparation: Skills and Software Required
If you look at this project as a whole it may seem very intimidating. The trick is to break each part down into 'mini' projects and integrate them together. You don't build the
whole project, wire everything together and then turn it on hoping that it will all work because chances are that it won't. Instead, we take baby steps and separate the
project into smaller sub-projects, testing the workings of each sub-project before moving on to the next one. By doing it this way you can work out any issues one at a
time as you progress.
If you plan to use a fully assembled kit where you only have to do minimal soldering (LED grid), hook up the RGB pods to the main PCB and if you are using a table that
you purchased from somewhere, you will only need the following skills to be able to build your own table:
Basic soldering skills (soldering a wire to an LED)
Ability to operate power tools (Mostly a drill to secure parts to the table)
Ability to follow basic instructions
If you plan to use a PCB Only kit or a kit where you have to assemble the PCBs/connectors and you're building your own table, you should possess the following skills:
Advanced soldering skills (SMD parts)
Ability to operate power tools (Drill, table saw, mitre saw, jigsaw, etc.)
Ability to program PIC microcontrollers
How to crimp ends and create cables (Molex, RJ45 and IDC connectors)
Ability to follow instructions
Basic understanding of C Programming & digital electronics (not absolutely needed, but will help)
If you order a PCB only or an unassembled kit and are bad at soldering, you may want to get
somebody who is good at it to help you. Some parts only have a 0.28mm space between pins.
Software
All of the software for the beer pong table has been written in C. You will need to download the MPLAB IDE and install it, as well as the C30 or XC16 compiler to go with
it. This project has been set up with the free versions of those compilers and either compiler will work. The XC16 compiler is the newer one of the two and is the one that I
use. The MPLAB IDE can be downloaded here, while the XC16 compiler can be downloaded here. You can see a large portion of Microchips software downloads here.
Step 7: Preparation: Electronic Components
There are 21 PCBs that are required to create this project. Now, 20 of those PCBs are actually single RGB Pods that are placed under the cups (10 on each side). The
other PCB is the main control board and is the brains of the operation. There is also a small 50-pin breakout PCB that is included with each kit. That PCB is used when
creating the LED grid and connects the LED grid to the main PCB (more instructions on that later).
I have added a component list for each of the PCBs, as well as a list for the cables/connectors. The majority of these components can be found on eBay but there are a
select few which may prove more difficult to find. I have added a BOM to the zip file in step #1 which has each component, the required quantity, the price and the vendor
where the component(s) can be purchased.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 8: Preparation: Required Materials
Now we need to acquire the materials that go along with the electronics. Here is a list of the materials needed to complete this project. Where I'm from, stock
measurements on materials are still in imperial units so I do switch back and forth between metric and imperial units in this instructable. When I cut the material for the
table I use imperial units, when I am modifying the table and drilling holes I use metric (as you will see on my CAD drawings).
I bought all of my plywood from Home Depot and had them do the large cuts for me for $1 per cut. Use a combination of a table saw and a mitre saw to cut the rest of the
pieces down to the sizes that you need if you choose to do it yourself. As for the acrylic sheet, just find a local plastics supplier and get a quote from them. My
24"x96"x1/8" acrylic sheet cost me $60, which was $23 cheaper than the Lexan sheet that I put on my original table.
Step 9: Preparation: Tools Needed
We're almost ready to start building! The last thing that we need to do is gather up some tools. If you don't feel comfortable using a table saw, talk to a local carpenter and
have them cut the wooden rail pieces for you. They are really basic cuts so I would imagine that it would be a relatively cheap price. Below is a list of tools that we will use
to construct the table and the PCBs (if you are not building your own table, you will not need the majority of these tools).
Tools
Drill
Jigsaw
Table Saw
Mitre Saw
Hole Saw
Soldering Iron
#2 Robertson Screwdriver
#1 Robertson Screwdriver
Wire Cutters
Wire Strippers
Molex Crimpers
IDC Crimpers
RJ45 Crimpers
Glue Gun
Rotary Tool
Router (Optional)
Those are the tools that I had used to complete this project. You may be able to get away without some of the tools there, but it gives you a rough idea of what kind of
work is involved.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 10: Construction: Assembling The Master PCB
Applies To
PCB Only Kit
Unassembled Kit
Doesn't Apply To
Fully Assembled Kit (This step is already done for you)
Before we begin constructing the physical table, lets get the electronic aspect of this project in order. There are a total of 163 parts that need to be soldered onto the
Master PCB, 661 SMD pads that need to be soldered and 355 through-hole pads. It may seem daunting, but just remember, you only have to do this once! Even if it
takes you three hours to complete, it's a one time deal.
The biggest caveats on this PCB are the small SMD components. In particular, the PIC, the two TLC5955's,the 74LVC2G125DCUR and the twelve 0603 network
resistors. You will need to perform one extra step for the TLC5955's in order to solder the heatsink pads underneath them to the PCBs. The best way to explain how to do
it is with a video, so watch away!
I do have a reflow station on hand and that is what I use, but I wanted to show in the video that it can be done with a heat gun or a hairdryer for those who don't have
reflow stations (It can also be soldered by heating up the thermal vias with a soldering iron. See the last two photos in this step). As for soldering the 64-pin PIC
microcontroller, that's even easier than the TLC5955's. The soldering process of the video below has been sped up 2x but you'll get the idea. Lots of flux, a small
soldering iron tip and thin soldering wire are pretty crucial though.
The schematics, bill of materials and the parts list are all located in the zip file in step #1.
Image Notes
1. The assembled PCB should look something like this. This PCB is v4.0.
Image Notes
1. If you don't have an assembled kit, get ready to assemble your blank Master
PCB.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. v4.01 is the same as v4.0 except for the addition of R29, R30, R31 and R32.
v4.0 didn't have the resistors for the ball washers on the PCB and they had to be
soldered in at the connector. Now they're just installed on the PCB to save time (I
actually forgot to add them on v4.0).
Image Notes
1. Small SMD connections. These were all done with a handheld soldering iron
and flux.
Oh, and the color of the PCB has been changed to blue.
Image Notes
1. The two TLC5955's require an extra step as they have a heatsink pad on the
bottom of the chip that should be soldered to the PCB.
Image Notes
1. There is one other way of soldering the ground plane to the pad under the IC.
Scratch away the silkscreen covering the thermal vias, add flux to them and apply
as much solder as you can. Turn the PCB right-side up, heat the thermal vias on
the bottom of the board with your soldering iron and place the IC over its
respective pads.
When it gets hot enough, it will liquify the solder on the IC pad and you then just
have to ensure that the IC is lined up on its pins correctly. Take the soldering iron
off of the vias to allow the solder to harden.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Once the solder has cooled, make sure that the IC does not move. This way
you know that the bottom pad is soldered to the PCB.
Then proceed to solder the rest of the pins. This chip was soldered in with this
process and it turned out fine.
Step 11: Construction: Assembling The RGB Pods
Applies To
PCB Only Kit
Unassembled Kit
Doesn't Apply To
Fully Assembled Kit (This step is already done for you)
The RGB pods are quite simple to assemble, whether you assemble them with the reflow method or by hand soldering, they aren't difficult. There are twenty of them to
do though, so it may take you an hour or two. The PCBs that I have used in the photos above were the first production run of the new RGB pods, I have since changed
the PCB color of the RGB pods to black which you can see in the last few photos.
Parts List For All 20 Pods
120x - RGB 5050 SMD LEDs
100x - 270? SMD 0805 Resistors
60x - MMBT2907A Transistors
40x - 330 SMD 0805 Resistors
20x - 18k SMD 0805 Resistors
20x - TCRT5000 IR Sensors
20x - IDC 2x4 Shrouded Headers
There are a total of 19 components per RGB pod, 17 of those components being surface mount packages. They are quite simple to assemble whether you use the reflow
method or do each pod by hand. The reflow method is really only necessary if you are assembling a large amount of RGB pods or have access to cheap solder stencils.
After you're done assembling the RGB pods, we'll start on the IDC cables to connect them up to the Master PCB!
Image Notes
1. Getting ready to reflow the RGB pod PCB. These can be populated by hand, I
just use a stencil to save time seeing as I'm making many kits.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. We need to apply some solder paste to the PCB.
Image Notes
1. Ensure that there is solder paste on each of the SMD pads.
Image Notes
1. Ready to start placing components.
Image Notes
1. Time to send these to the "reflow oven" to finish the SMD assembly.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The PCBs in a toaster oven which I have designated as my quick and easy
reflow oven.
Image Notes
1. Finish each pod by soldering on the 2x4 connector and the TCRT5000 sensor.
Image Notes
1. RGB pod solder stencil that I ordered. I can apply solder to one set of 20
pods at a time.
Image Notes
1. Getting ready to do a full batch of RGB pods at once.
Image Notes
1. Applying the solder paste to each PCB.
Image Notes
1. The perfect amount of solder paste applied.
Image Notes
1. Time to reflow the solder. I can only fit ten pods in my toaster oven at one
time.
Step 12: Construction: Assembling the 2x4 IDC Cables
Applies To
PCB Only Kit
Unassembled Kit
Doesn't Apply To
Fully Assembled Kit (This step is already done for you)
Now that we have the PCBs assembled, we need to assemble the cables to connect the RGB pods to the Master PCB. When I designed this kit, I specifically decided to
use 2x4 IDC cables because of the simplicity to crimp the connectors to the cable. With these cables, we can crimp all 8 connections in the connector at once, instead of
doing it one by one for each wire like many other connectors. This saves an enormous amount of time as there are 40 connectors that need to be crimped for all 20 RGB
pods.
The crimping tool that I use for my IDC connectors can be bought here on eBay for around $20. If you don't want to buy the proper tool, one can get away with using a
pair of vice grips or an actual vice itself to crimp the connector to the cable.
Crimping IDC Connectors
1. Get all three parts of the connector. Piece #1 is the main connector with the crimp tabs sticking out of it, piece #2 is the middle part with grooves on the inside to
hold the ribbon cable in place and piece #3 is the strain relief.
2. Sandwich the 8P ribbon cable between piece #1 and piece #2. Take note of which wire is connected to pin #1 on the connector (Pin #1 is denoted by an arrow on
top of the connector).
3. Once the cable is lined up between the two pieces, insert the connector into your crimping tool and apply steady pressure to the connector until the two pieces
snap together.
4. Fold the cable down the back of the connector, pulling it tight.
5. Insert piece #3 into piece #2 and snap them together with your thumb. This will create a strain relief for the connector.
6. Now repeat the exact same process for the connector on the other end of the cable, making sure that pin #1 connects to the same wire on each connector.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Split the 50P ribbon cable every 8 wires. You will end up with 6 full 8P cables
and a leftover cable consisting of 2 wires.
Image Notes
1. To save time, line up all 3 cable lengths and start separating them into 8P
pieces together.
Note: I am actually separating 4 full cable lengths here. You will only have 3.
Image Notes
1. All wires are separated into 8-wire sections. There will be two leftover wires
per each cable length which can be discarded.
Image Notes
1. Ready to put the connectors on.
Image Notes
1. Tools and materials required to crimp the connectors onto the cable. If you
don't have an IDC crimper, don't worry. You can substitute vice grips in place of
it or any other tool that will apply even pressure across the connector.
Image Notes
1. Insert the first two pieces of the connector together with the 8P cable in
between the two pieces.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Make the cable as flush as possible on the underside of the connector.
Image Notes
1. The yellow strand is pin #1 on this connector (there is an arrow on the top of
the connector which designates the side of pin #1).
Image Notes
1. Insert the cable and the connector into your crimping tool.
Image Notes
1. Crimp the two pieces together by applying even pressure across the back of
the connector.
Image Notes
1. Fold the wire down the backside of the connector and get ready to install the
strain relief.
Image Notes
1. Push piece #3 into the back of the connector with your thumb (Do not put it in
the crimping tool, it doesn't need much force). This will act as a strain relief.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. A finished cable. Make sure that pin #1 on each connector is the same color
on each end! Otherwise, you will have a reversed connection that won't work and
you risk damaging the electronics.
Image Notes
1. If you plan to use a vice grip as your crimping tool, just be gentle. It does work
but it doesn't take much force. Make sure that the pressure is applied evenly
across the back of the connector or you may risk cracking it.
Image Notes
1. Crimps like a dream!
Image Notes
1. After being crimped with a vice grip.
Image Notes
1. Install the strain relief.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Here's another way to do it with a mini vice.
Step 13: Construction: Assembling The LED Rings
Applies To
PCB Only Kit
Doesn't Apply To
Unassembled Kit
Fully Assembled Kit (This step is already done for you)
We're going to make the LED rings right now as we need to use them in the next few steps (for the layout of the table). First, cut out a 71mm diameter wooden cutout for
each LED ring that you will be installing on the edge of the table (not counting the ball washers). For this table that number is eight.
Now grab your 24 LED strip and go to the end of it where the wire is sticking out. Remove a small piece of silicone just below the wire and route the wire through that
channel so that it is sticking out the bottom of the strip. Form the LED strip around one of the wooden cut-outs and tighten a zip-tie around it, creating a LED ring.
If you don't like the look of the ring with a zip-tie around it (even though it will be hidden under a diffuser on the finished table), put superglue on each end of the strip and
form it into a ring (use a heatgun or hair-dryer if it gives you trouble forming it. Heating up the silicone allows it to form easier). Once it dries in place, fit it over top of one
of the wooden cutouts and glue the underside of the LED ring to the cutout, ensuring that they are one piece right now. Whichever option you choose to do, repeat it for
the other 7 LED rings.
I sprayed a diffuser over top of each of my LED rings, but that may not be needed as I decided to put a diffuser over top of the whole table anyways. So it's completely
optional.
For the ball washer LED rings, cut off 3 LEDs from the end of each strip. There are 4 LED rings which are used with the ball washers. The LEDs in the LED strips are
wired in threes, if you cut off just one LED then the other two LEDs that are wired in series with it won't work anyways.
Don't add a wood cutout to each ball washer LED ring as they will be fitting around a small piece of ABS pipe used with the ball washer. Just set them to side once you
have them made.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Cut out eight ~71mm circles out of 1/4" wood and drill a 1/8" hole in the center
of each cut-out. The thickness of the wood can vary, it just can't be thicker than
the height of the LED ring. A 2.75" hole saw should work (~70mm), I used my
laser cutter for mine. I realize most people don't have access to a laser cutter,
but you don't need one to cut these out. It was just quicker for me.
Image Notes
1. For each LED ring, get a wooden cut-out, an LED strip and a long zip-tie.
Image Notes
1. We need to route the wire underneath the LED strip so that we can feed into
into the table.
Image Notes
1. Wire routed underneath the LED strip.
Cut out a small chunk of silicone so that we can route the wire underneath the
LED strip.
Image Notes
1. Form the LED strip around the wooden ring.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Add a zip-tie around the LED strip to secure it to the wooden ring.
Image Notes
1. If you want to secure the ring to the cut-out with more than just the zip-tie, you
can run superglue around the bottom of the ring and the cutout. This is
completely optional and doesn't need to be done though.
Image Notes
1. Trim the end of the zip-tie.
Image Notes
1. For the 4 ball washer LED rings, cut the last 3 LEDs off of each strip. Then
glue each end together with superglue and hold it until it dries. The ball washer
LED rings do not need a wooden cutout in the center of the ring as they will fit
around a piece of ABS pipe later in the project. Set them to the side for now.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The LED rings are quite bright as they use clear LEDs, so I sprayed a diffuser
over top of them. We will put a diffuser over top of all of the LED rings on the
table anyways, so this isn't needed.
Image Notes
1. This is the frosting spray that I used to coat my LED rings.
Image Notes
1. Drill and countersink a hole in the center of each wooden cutout if you haven't
already done so. This will be used to secure the ring to the table.
Step 14: Construction: Building The Table
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit
If you are just going to modify a table that you purchased somewhere else, you can skip these instructions. These are just the instructions for how I built my table, one
could actually just buy a plastic table from Wal-Mart and modify that to suit their needs.
I don't have a lot of pictures showing my table build so I will resort to using my Sketchup CAD drawings to better explain how the table goes together. The Sketchup
drawing does not show where each screw hole is, but I'm going to assume that if you're building this table that you can handle that (otherwise just ask and I'll draw up a
quick sketch!). Make sure to drill pilot holes before threading in each screw or you will probably end up cracking the wood! I used a 1/8" drill bit for a pilot hole with #8 1.5"
Robertson screws.
It's a pretty basic table, the overall size of it will come out to 24"x96"x4" without the legs, railing and acrylic sheet. Here is a list of the following parts that are needed:
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Parts (Imperial Measurements)
2x - 24"x96"x1/2" Pieces of plywood
2x - 3"x96"x1/2" Pieces of plywood
5x - 3"x23"x1/2" Pieces of plywood
1x - 72" Hinge
Parts (Metric Measurements)
2x - 609.6mm x 2438.4mm x 12.7mm Pieces of plywood
2x - 76.2mm x 2438.4mm x 12.7mm Pieces of plywood
5x - 76.2mm x 584.2mm x 12.7mm Pieces of plywood
1x - 1828mm Hinge
Following the photos above, attach all 4 sides to the 24"x96" bottom base of the plywood.Secure each piece with multiple screws from the bottom of the table up into
each side piece of the table. Make sure to drill pilot holes or you will crack the side pieces. After drilling the pilot hole and before putting the screw in, use a countersink bit
(or just a large drill bit) and countersink the hole so that the head of the screw is not sticking above the surface of the wood.
Now add the braces. Take the remaining three 3"x23"x1/2" pieces and put three 1" holes into each brace. We will use these holes for routing the cabling. Install these
braces inside of the table at 609.6mm intervals from end to end. Put a strip of weatherproof tape on each piece of wood that makes up the top of the base.
Once you've got the base of the table built, you need to attach the 72" long hinge across the top and bottom of the table. I recommend drilling out the ball washer holes
on the lid prior to installing the hinge but it can be done either way. Measure 12" in from one end of the table, line up the hinge with the lid and base of the table, drill a
pilot hole for each screw and then thread each screw in and secure the hinge. Once the hinge is on, open the lid up to a point just before it is perpendicular to the base,
then secure a strong piece of wire (I used silicone tubing so that it has give) between the base of the table and the lid. This ensures that the table lid won't over extend
and fall to the other side, possibly causing damage.
I plan to swap out the hinge with some cupboard like hinges that will be hidden on the inside of the table and still allow it to open up. This hinge is an eyesore but it gets
the job done for now.
Image Notes
1. Start putting the sides onto the bottom part of the table. They should be flush
to the ends and side of the table.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. This part will be flush up to the end of the table.
Image Notes
1. The inside holes on this part can be drilled anywhere and be any size. They
are just used for running cables from the ends of the table to the master PCB. I
used a 1" spade bit for mine. We need three of these to brace the table.
Image Notes
1. Insert the braces evenly spaced from each other inside of the table. They
don't have to be exactly spaced apart, just enough that it gives the table enough
support.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. After drilling out the ball washer holes, set the top of the table on the base and
check that everything lines up. Don't screw it down or secure it though, we first
have to attach a hinge to it.
Image Notes
1. Drill out the 4 ball washer holes on the acrylic sheet. These are in the exact
same location as the holes on the top lid of the table, however, beware that
these hole sizes are only 50mm (smaller than the others).
Image Notes
1. Weatherproofing tape with adhesive on one side. This will be applied between
the top part of the table and the base of the table, ensuring a seal between the
two layers but still allowing access to the compartments inside of the table since
it only adheres to one side of the table.
Image Notes
1. Apply the weatherproof foam tape to the top of the base of the table.
Image Notes
1. Drill a pilot hole for each screw. I only put in every second screw and
staggered the screws in the top and bottom of the hinge.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Extra screw at the end of the hinge. Now do the bottom part and stagger the
screws from the top ones.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. There's quite a bit of a crown in the top of my wood. Not a big deal, it gets
secured to the table with screws once it's completed.
Image Notes
1. Put weatherproof tape on top of each brace too. This is just so that there isn't
a small dip on the table from the weatherproofing on the outer perimeter of the
table. I added it to the braces after this photo.
Image Notes
1. Securing silicone tubing to the base of the table. This will limit the range of
the lid and won't allow it to overextend. You can substitute silicone tubing for
strong cable but it just won't have any give to it whereas the silicone does.
Image Notes
1. Securing the silicone tubing to the top of the table.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. This picture was taken after the build. But you can see how it won't allow the
lid to flip over to the other side where it could be too heavy and damage the
base where it is screwed into.
Image Notes
1. I now use four braces spaced evenly in the table which provides more rigidity.
Image Notes
1. Four braces instead of three. Either one works, this way just makes the table
stronger.
Step 15: Construction: Adding The Supports
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit
Parts (Imperial Measurements)
2x - 1"x96"x½" Plywood Pieces
2x - 1"x22"x½" Plywood Pieces
4x - 1"x19¾"x½" Plywood Pieces (These have to be angled)
Parts (Metric Measurements)
2x - 25.4mm x 2438.4mm x 12.7mm Plywood Pieces
2x - 25.4mm x 558.8mm x 12.7mm Plywood Pieces
4x - 25.4mm x 492mm x 12.7mm Plywood Pieces (These have to be angled)
In this step we will be adding supports for the acrylic sheet. This ensures that the sheet does not bend or bow on the table. We also have to cut out four notches on each
side rail to accommodate the size of the LED rings. The photos above are pretty much crucial to this step and will explain how to do this much better than I can through
text. Use the CAD drawings above and measure out four LED rings, marking all four spots on one side of the table.
Attach the rail to the table (temporarily) and then take one LED ring and go over top of each location. Trace around the portion of the ring that intersects with the rail with
a pencil. Do this for all four LEDs on the rail and then take the rail over to your drill press. Use an 89mm (3.5") hole saw bit in the drill and line the notches of the rail up
with the bit. Put a piece of scrap wood underneath the rail and clamp the rail to it once the first notch is lined up. Proceed to cut out the notch. Do this for the other three
notches on the rail, taking care to keep the rail supported as it will get weaker with each notch cut out.
To save time on the second rail, take the one you just completed and set it on top of the uncompleted rail. Line them up together, clamp them together and trace each
notch onto unfinished piece. Then repeat the process at the drill press to cut out the rest of the notches on the second piece. Once finished, attach each side rail and end
rail to the table. Install each LED ring, drilling a small hole to fit the connector and wire underneath the lid. Now we just have to finish the supports on the inside of the
table.
Use the CAD drawing above and cut out four pieces for the RGB pod supports. If you are painting your table, now is a good time to paint the supports. Measure in
17.51mm from one egde of the table, put the support in place, then put the mirrored support up against it. Measure the mirrored support to the edge and ensure that it is
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
centered. Secure each support to the table and countersink each hole. I ended up adding these supports when I finished my table which you will see in the photos above.
Image Notes
1. The side rails are what the acrylic sheet will rest on. If you are using LED
rings, you will need to cut out notches to make room for them (otherwise the LED
grid is in the way). Each support/rail is 1/2" thick like the rest of the plywood used
on the table.
Image Notes
1. The measurements after the hole is cut out. Use the next picture to find out
how to cut these out the easy way.
Image Notes
1. I didn't have a 86mm hole saw, so I used a 3.5" (89mm) bit and it worked fine.
Image Notes
1. You will notice that there are notches in the side rail. For now, your side rail
will be a straight piece without notches. We will cut out the notches right away.
Put a piece of scrap plywood underneath the rail, measure 25.4mm (1") out from
the part of the rail that needs to be cut out and mark the location on the scrap
piece, clamp the rail in place, line the drill bit up with your mark and start cutting
away the small section of the rail. Repeat this for the other 7 LED ring locations.
Image Notes
1. The end rails attached on the top.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Each LED rings center location is 52.4mm from the edge. This can be seen
in photo #3 of this step.
Image Notes
1. Measure out each LED rings location and make a mark where it is. This photo
was taken before I added the rails.
Image Notes
1. Attach the rail to the table, then measure out the locations of each LED ring
and make a mark on the table for each location.
Image Notes
1. This picture is just for show. This is where we will attach the LED ring to the
table.
Image Notes
1. Attach the LED ring to the table and press it flush against the side rail. Then
take a pencil and trace around the rail where the notch should be cut out.
Image Notes
1. Remove the LED ring and now we have a general idea of what area we need
to cut out of the rail. Do this for all 4 LED rings on this rail.
Image Notes
1. Set the rail on a scrap piece of wood, then using a 3.5" (89mm) hole saw bit,
line up the notch to be cut out with the bit. Clamp the rail down to the spare
piece of wood then cut out the notch. Repeat the process for the other 3
notches on this rail.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Save time on the 2nd rail by lining up the first one with the cutouts on top of
it. Then just trace each notch and cut them out as before, no need to trace
around each LED ring.
Image Notes
1. Extra support that surrounds the RGB pods. The piece is 25.4mm (1") wide.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Supports cut and ready to be installed. This photo is obviously taken at a
later date as the majority of the table has been completed.
Image Notes
1. Supports ready to be secured to the table. I need to paint them first though.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Both sides secured to the table. Picture taken when table was almost
completed.
Image Notes
1. Install the LED rings and route their wires underneath the lid into the table.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 16: Construction: Creating The LED Grid
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit (This is the only electronic assembly required from this kit as it has to be built into the table)
Note:
I will be updating this step with more information soon. I provide many options to lay out the LED grid but I will cut down on some of the photos and make things more
clear.
EDIT
I have added a 3rd option in regards to wiring up the LED grid. It is similar to option #1 where you have to mount each LED into the tables lid but it also utilizes the
capabilities of a router. Instead of spending a ton of time wire wrapping each LED lead, you can just cut out straight tracks in a grid-like formation and lay copper tape in
each track. The row tracks are cut deeper into the table than the column tracks, allowing us to separate the copper tape from each column/row intersection and prevent
shorting. I found this to be the fastest way for me to create this painstaking LED grid. Use the last of the photos to get a clearer understanding of option #3.
Wiring Up the LED Grid
In my opinion, this is the most tedious part of the table. The 32x12 LED grid consists of 384 LEDs (the circuit can control up to a 32x16 LED grid actually) that can be
individually controlled. It is, arguably, the coolest feature of the table but also the most boring to build.
In this step, I will show three options to build the LED grid. The first option requires drilling a hole into the table for each LED, setting it into the table and gluing it in place.
Then underneath the lid of the table, we have to solder each row and column connection for each LED. We then finish off the grid by connecting the grid to the 50-pin
breakout PCB so that it can be interfaced with the master PCB. This is by far the cheapest way to do in terms of parts, as it costs less than $15 worth of LEDs and wire to
create. However, it will take you a few hours to complete (less time than option #2 though).
The second option is what I chose to use with this particular table. This step is similar to the first option except we create a jig to hold the LED grid instead of actually
attaching the LEDs to the table. We then wire up the whole grid in the jig, attach the connector and then pour liquid silicone around the connections to completely encase
the wiring of the LED grid. This allows us to be able to remove the LED grid from the table or fold up the LED grid so that it has a smaller footprint and can be shipped
easier. This way is more expensive and more difficult as one has to purchase the liquid silicone from a supplier (I found mine on AliExpress), have the required equipment
to degas the silicone and then spend the extra time prepping and pouring the silicone. I used about 3Kg of liquid silicone which comes out to $60 with shipping included.
This option can be done for around $70 and it makes the LED grid portable and shock-resistant.
In this step I will explain how to do the second option but if you choose to use the first option, just copy the following instructions except instead of mounting your LEDs in
a jig, drill out the grid on the lid of your table and superglue or hot-glue the LEDs in place on the lid. Then flip the table over and do the exact same wiring as I explain in
this step. Complete the wiring and connector and then you're done. You obviously will stop short of pouring any silicone.
You need the following pieces to make the jig:
2x - 1116.67x25x12.7mm Pieces of plywood
2x - 163.5x25x12.7mm Pieces of plywood
1x - 400x25x12.7mm Piece of plywood
1x - 1116.67x400x12.7mm Piece of plywood
Pick one corner of the bottom piece of plywood and measure in 41.67mm from each side. Mark the location and then measure straight across from that mark 33.33mm
and make another mark. Keep going at 33.33mm intervals for the rest of the 30 columns. Repeat the same process for the rows and you'll have your grid drawn out. Take
a 5mm drill bit and make a hole for each LED in the jig. Take each 25mm border and arrange them flush along the outer edge of the jig. One end will have a space in the
middle for the 50-pin PCB connector. The jig is now made.
Next, place the first column of LEDs in the jig and take care to ensure that they are all placed in the jig with the same orientation. Bend down each anode lead one each
of the 12 LEDs and then take some solderable enamel coated wire and wrap it around the anode of the first LED two times (a wire wrap tool works great for this). Leave
some slack in between each LED and continue doing this for each LED. Repeat the process for each column and then do the same for the twelve rows (connecting
cathodes on the rows). It is critical that you put a bit of slack in the wire between each LED, otherwise the wires can break if the silicone LED grid is rolled up. With about
a 1/2" of slack wire between each LED it allows the wire to stretch inside of the grid without breaking.
Once the grid is completely wired, we will need to get some wire to hook up the 50-pin breakout PCB to the grid. I used 3-pair phone cable but any wire will do. Solder a
piece of wire to each column and route the wire to the opening on the front of the jig where we will mount the breakout connector. Repeat the same process for the
columns. Once all of the wires are there, connect the grid to the breakout PCB as follows: 1234
PCB -> Signal
1 -> COL0
2 -> COL1
3 -> COL2
....
32 -> COL31
33 -> ROW0
34 -> ROW1
....
43 -> ROW10
44 -> ROW11
Wiring up the grid with the 2x25 LED grid cable
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
The last 6 connections on the breakout PCB are left blank as we are only using a 32x12 LED grid. Next we will assemble the Master PCB so that we can test out the LED
grid. After verifying that all of the LEDs in the grid are working, we will encase it in silicone.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Each pin/line on the connector and its connection on the LED grid.
Image Notes
1. 50P Breakout Header
Image Notes
1. If you are building the LED grid with option #1, you will want to drill each LED
hole like this. Once the LED is resting in the hole, add a dab of super glue to
secure it in place. Try to only go about 2mm deep into the wood when
countersinking, just so that the collar of the LED is flush with the surface. This
photo shows the LED further into the wood than it needs to be.
Image Notes
1. The holes should be countersunk so that the LEDs can be set in place. Note
how the collars of each LED are as close to flush with the table as possible.
Image Notes
1. The hole diameters can vary by 1mm or so, as long as the LEDs can still be
set in place with the leads sticking out the bottom of the table.
Image Notes
1. The 32x12 LED grid is positioned in the direct center of the lid with 33.33mm
between each LED.
Image Notes
1. This is how the table would look when making the the LED grid with option #1.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Now the leads have to be wired up underneath as per the wiring diagram and
instructions in this step.
Image Notes
1. If you plan to use option #2 with the LED grid encased in silicone, you will
have to make a jig for the LED grid. This jig is the exact same size as the LED
grid in option #1.
Image Notes
1. A simple jig set up to allow us to encase the LED grid in silicone. If you are
using option #1, this grid layout will not be in a jig but rather on the lid of the
table.
Image Notes
1. Wrap the enamel coated wire around each LED lead twice.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. One full column wired up. Be sure to leave slack wire between each LED. I
could have left more slack here just to be safe.
Image Notes
1. Half of all of the columns wired up.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. To speed things up, wire up multiple columns then go through and solder
each one afterwards. The less time that you are switching between soldering
and wiring, the faster that you'll get done.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. All columns and rows wired up.
Image Notes
1. It is fine if the enamel coated parts of the wire are touching one another as
that will not create an electrical connection. Be careful of the spots where the
enamel has been melted away by the solder. If there is no enamel on each part
of the wires and they touch then it will short out.
Image Notes
1. Use a magnet to clean up all of the clipped leads from the LEDs.
Image Notes
1. Ready to wire up the connector!
Image Notes
1. Older kits contain a PCB breakout with a connector on it. Refer to the photos
further in this step for the PCB breakout and it's wiring.
Now, kits are shipped out with a pre-made 170cm 2x25 connector that looks like
the one in this photo. This is neater and easier to hook up than the PCB
breakout. Please see the video below for instructions on wiring the grid up with
this connector.
Image Notes
1. 50-Pin breakout PCB to that will allow us to interface the LED grid to the
Master PCB. (Not used anymor in new kits)
You will have to solder 44 wires up to this breakout PCB to be able to connect up
the LED grid to the main PCB.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Strip the ends of the wires that we will be connecting to the 50-pin breakout. I
used wire from 6-conductor phone cable as it was easy to keep track of each
connection by color coding everything. CAT5 would work fine too.
Image Notes
1. Solder a wire to each column in the grid (for a total of 32 wires) and run the
wire to the location of the 50-pin breakout. The wiring format is as follows:
Pin 1 -> COL0
Pin 2 -> COL1
..
Pin 32 -> COL31
Image Notes
1. This is my color pattern for 6 columns at a time. You can do this any way that
you like, just make sure that you keep track of what wire goes to what column.
Image Notes
1. Every 8 columns or so, line up the wires beside each other and put a dab of
hot glue across all of the wires. This will keep everything neat and tidy.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. All of the columns done. Now to do the 12 rows.
Image Notes
1. Connect a wire to each column. Now organize your wires into groups. Seeing
as I had 6 different colors of wire, mine are in groups of 6.
Pin 33 -> ROW0
Pin 34 -> ROW1
...
Pin 44 -> ROW11
Image Notes
1. Take the first 6 columns and trim the length of the wires and strip them.
Image Notes
1. Solder each wire into its location on the breakout PCB.
COL0 -> Pin 1
COL1 -> Pin 2
...
COL30 -> Pin 31
COL31 -> Pin 32
ROW0 -> Pin 33
ROW1 -> Pin 34
...
ROW10 -> Pin 43
ROW11 -> Pin 44
...
ROW15 -> Pin 48
We only go up to ROW11 on this LED grid. We do not implement ROW12 ROW15.
Image Notes
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The last 6 pins are unused in this configuration.
1. Testing out the LED grid to make sure that all of the LEDs work. Before you
pour the silicone, you will want to make sure that everything is working. In the
next step we will assemble the Master PCB.
Image Notes
1. If some of the wires won't stay down, tie them up to one of the columns.
Image Notes
1. Once connected up, test out the LED grid to make sure that all LEDs work.
Image Notes
1. Another option for the LED grid.
Drill out the holes for the LED grid in the center of the table. Be careful of any
wiring underneath the grid.
I made a template to aid in drilling out the table so that I can use it across
multiple tables. If you are only building one table, just measure out the grid on
the actual table top and drill it out that way.
Image Notes
1. It's best to drill out these holes before you install the LED rings and other
parts of the table. Otherwise, make sure that you don't clip any wires while
drilling through.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Get a router and install a 1/4" straight bit into it.
Image Notes
1. You want to make a straight line that clips the outside of each LED hole.
2. I clamped a straight board on the side of the table to use as a straight edge
for my router.
Image Notes
1. Put the row tracks fairly deep. I set mine at about 8mm (5/16") deep.
Image Notes
1. All 12 row tracks have been routed.
Image Notes
1. Line up the straight-edge and begin routing the column tracks. Set these
tracks higher than the row tracks, I set mine at 3mm (1/8") deep.
Image Notes
1. Note how the column tracks aren't as deep as the row tracks.
Image Notes
1. Once all tracks have been routed, start laying the copper tape down in the row
tracks.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. After laying copper tape down in the row tracks, place all 384 LEDs in their
respective holes.
Maintain the same orientation for each LED, as we will have to bend over the
anode and cathode leads under the lid and solder them to the copper tape.
Image Notes
1. All of the row tracks have copper tape lined in the bottom.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The LED anode is closest to the column track, while the LED cathode is
nearest to the row track.
Image Notes
1. Install copper tape in each of the 32 column tracks.
I started routing the column tracks by freehand with my router, which is why they
are not perfectly straight.
Image Notes
1. The tracks and LEDs should look something like this.
Image Notes
1. Finish installing all of the copper tape (I haven't yet in this picture), and then
bend over each LED lead.
The anode connects to the nearest column, the cathode bends over onto the
nearest row.
Image Notes
1. Use the previous instructions to connect up each row and column to the LED
grid.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Solder each lead to its place on the copper tape.
Step 17: Construction: Pouring The Silicone Into The Grid
Applies To
None, unless you choose to create the LED grid this way instead of building it into the table. This is just here for general knowledge.
This step is only applicable to you if you are using option #2 to make your LED grid. I don't recommend this method as it is far more expensive, time consuming and
messier than option #1. In fact, the only reason that I tried it was to see if I would be able to make a portable LED grid that I could ship with the kits.
I eventually decided against making these and selling them for the following reasons:
It is very time consuming
It is expensive to get the raw material shipped here
It is expensive to ship out each finished LED grid (~3Kg)
It is difficult to hide all of the wires in the thin mat of silicone; It looks kind of archaic
As with most products, cost is the limiting factor for this LED grid that is encased in silicone. However, I still wanted to post the process and results in case anybody does
choose to do it this way and just for general knowledge.
The silicone was purchased on AliExpress and is labeled as an RTV Silicone for those who are interested. The photos above explain the process to create your own
silicone LED grid.
Degassing Liquid Silicone
Pouring The Liquid Silicone
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Gather the liquid silicone, a scale, a degassing chamber and a vacuum.
Image Notes
1. Put the empty container for the silicone on the scale and zero it out.
Image Notes
1. Add 2.5Kg - 3Kg of liquid silicone to the container.
Image Notes
1. I wanted to color my silicone to I added some blue tempera paint to it (about
4g of paint to every 100g of silicone).
Image Notes
1. Add the catalyst to the liquid silicone and paint and mix it really good. My
silicone uses a 10:1 silicone to catalyst ratio, so I added about 250g of catalyst
to the silicone. The catalyst will allow the silicone to cure.
Image Notes
1. Put the silicone in the degassing chamber and wait until the majority of the
bubbles from the silicone have been removed (video below).
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Allow the poured silicone a few hours to cure. Note how I blocked up the
silicone around the 50-pin breakout connector.
Image Notes
1. Remove the end panels and prepare to pull up the silicone from the jig. I
should have used a bit more silicone to encase the wires at the connector.
Image Notes
1. Pry up the silicone mat very gently. This is where it's crucial that we left
enough slack in the wires in the LED grid.
Image Notes
1. An aluminum jig would be far better than wood. The surface of the silicone
would be much more polished.
Image Notes
1. Kind of an eye-sore, but it gets hidden under the diffuser on the acrylic
anyways.
Image Notes
1. I didn't leave enough slack in my grid and ended up having 3 breaks.
Some wires are visible under the surface, but it didn't turn out too bad.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Nice and flexible so that it's portable. Now, to re-connect those LEDs with the
broken wires...
Image Notes
1. It is easy to repair the line breaks. Go to the last LED that illuminates and
make an incision into the silicone grid. With tweezers, pull out the end of the wire
that is disconnected from the LED lead and re-solder it back into place.
Image Notes
1. The connection is now fixed!
Image Notes
1. All up and working!
Gently insert the wire back into the silicone and the incision will be barely
visible.
Step 18: Construction: Installing The RGB Pods
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit
In this step we will secure each RGB pod to the table, but first we have to mark the placement of each pod as well as drill out a hole that is large enough to fit the 2x4 IDC
connector through to the bottom of the table. Use the photos in this step and measure out the center location of each RGB pod on the table. Make a small 1 - 2mm pilot
hole at each location so that it will be easier to thread a screw into place to secure the pod once we are finished.
There are two ways that once can use to measure out the location of each 2x4 connector in reference to the center of its respective pod. First, you can just use the CAD
drawings above to measure out the location of each connector hole and then drill them out with a 11/16" (18mm) spade bit, or second, you can use the attached PDF file
and print a pod stencil which contains the exact locations of both the center and connector holes. If you use the template, you must make sure that you set it to print out
at "Actual Size" and don't use the scale to fit option in the Adobe Reader print section. Once you have the template printed out, you line up the center hole on the
template with the pod location on the table and then make a mark where the connector hole should go and the pilot hole should go. Then drill out the connector hole first
followed by the 2mm pilot hole.
Once you have all of the holes drilled out, insert each pod into its location and use #1 1/2" screws to secure them to the table. Now you're ready to connect them up!
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Drill a small 2mm (1/16") pilot hole at each location where the center of each
RGB pod will be placed.
Image Notes
1. We will need to drill out 3/4" holes to insert the 2x4 IDC connectors into the
table. Either measure them out and drill them out, or use the print template
included in this step.
Image Notes
1. IDC connector location in reference to the center of the pod.
Image Notes
1. Showing how the RGB pods are inserted (quite obvious).
Image Notes
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
1. Top view of an RGB pod.
Image Notes
1. Pods will lie flat against the table. There will be 4 solder joints on the bottom of
the board from the TCRT5000 sensor but they are easily pressed into the wood.
Image Notes
1. Underside of the table lid.
Image Notes
1. RGB pod stencil. I cut mine out on a laser cutter to make it more durable but a
printed piece of paper with the template will work fine.
Image Notes
1. Line up the center of the pod with its correct location on the table.
Then create a small indent where the center of the 2x4 connector is located.
Note that the stencil is actually upside down in this photo.
Image Notes
1. We have to drill through here to get the connector of the RGB pod to the
inside of the table.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Use a 3/4" spade bit to create a hole large enough to fit the 2x4 connector in.
Image Notes
1. Be gentle when drilling the larger hole as we do not want to shave off the
wood in between both holes. We will need to have separation here so that the
screw will have enough to grab when securing the pod to the table.
Image Notes
1. Insert the 2x4 connector into the 3/4" hole and adjust the RGB pod so that
the center lines up with the pre-drilled center hole in the lid.
Image Notes
1. Secure the pod to the table. It is best to hand tighten with a screwdriver and
only make it snug as it is more prone to stripping seeing as there is little
separation between the holes.
Image Notes
1. Repeat the same process for the rest of the RGB pods.
File Downloads
Pod_Placement_v2.0.pdf (15 KB)
[NOTE: When saving, if you see .tmp as the file ext, rename it to 'Pod_Placement_v2.0.pdf']
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 19: Construction: How To Crimp Various Connectors
Applies To
PCB Only Kit
Unassembled Kit
Doesn't Apply To
Fully Assembled Kit
In this step, I will show you how to use a crimping tool for the various connectors on the Master PCB. The crimper that I find most useful can be purchased here (Model:
PA-09) for around $40. Although it is more expensive than some other crimpers, I would definitely recommend it as I have used some other cheaper ones and they don't
do as nice of a job when crimping (or crimp as wide of a variety of connectors as this one does). As with most of this Instructable, follow the photos above to get a good
understanding of the process.
If you didn't get a fully assembled kit, you will have to crimp all of the pins for the XH_2.54 connectors on the LED rings. Not a big deal, just follow the instructions above
as the instructions are the same for that type of connector.
Image Notes
1. For this example, we will be crimping KF2510-2 connectors onto the fan
motors for the ball washer assemblies.
Image Notes
1. My trusty crimper.
Image Notes
1. Strip a 3mm section of insulation off of the end of each wire.
Image Notes
1. Insert the center crimp tabs into the crimper. I use the 1.4mm slot for the inside
crimp tabs.
Image Notes
1. Insert the portion of the wire that has been stripped away into the crimp pin.
Image Notes
1. Crimp the pin and it should look something like this. Ensure that the inside tabs
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
are making contact with the bare copper of the wire.
Image Notes
1. Now insert the outside crimp tabs into the crimper and apply pressure to the
tool. I use the 1.6mm slot for the outside tabs.
Image Notes
1. A solid crimp. The outside tabs are crimping the insulation around the wire,
holding it in place. The inside crimps are tight around the copper wire ensuring a
good connection.
Image Notes
1. Repeat the process for every other crimp pin.
Step 20: Construction: Building The Ball Washer Sensors
Applies To
PCB Only Kit
Unassembled Kit
Doesn't Apply To
Fully Assembled Kit
To make two ball washer sensor assemblies for your table, you will need the following:
4x - TCRT5000 IR Sensors
8x - 2-conductor CAT5 Wire Sections (6' - 8' length)
16x - 1" Lengths of heatshrink (2mm diameter)
2x - RJ45 Connectors
First, bend over each lead of the TCRT5000 and trim them. Use the diagram in the photos and connect up each lead on the sensor to its respective wire. You will have to
do this for both the entry and the exit sensor. Once you have wires connected up to each sensor, align the eight CAT5 wires in the correct order and crimp an RJ45
connector on to them. Repeat the same process to make the sensor assembly for the second ball washer.
As you will see with lots of parts in this Instructable, I tend to use CAT5 wire for longer wire runs as it is very common and cheap to purchase. Just strip away the outer
PVC sheath to expose the four pairs of wires inside.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The finished ball washer sensor assemblies.
Image Notes
1. Infrared Transmitter
2. Infrared Receiver.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Bend over each lead. The transmitter is on the left hand side of this photo.
2. Bend over each lead. The transmitter is on the left hand side of this photo.
Image Notes
1. Add heatshrink to each wire and solder them to their respective leads.
Blue/White -> Transmitter Anode
Blue -> Transmitter Cathode
Orange/White -> Receiver Collector
Orange -> Receiver Emitter
Image Notes
1. Put the heatshrink in place and heat it up to cover the solder connections.
Image Notes
1. Repeat the same process for the EXIT sensor.
EXIT Sensor Connections:
Green/White -> Transmitter Anode
Green -> Transmitter Cathode
Brown/White -> Receiver Collector
Brown -> Receiver Emitter
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Use the previous diagram to know which wire goes to what pin in the RJ45
connector.
Image Notes
1. Ready to crimp.
Image Notes
1. Make sure that all of the wires are at the front of the RJ45 connector and then
crimp them.
Image Notes
1. A completed ball washer sensor assembly (one entry sensor and one exit
sensor).
Note:
You don't have to strip off all of the PVC coating from the CAT5 like the sensors
in this picture.
Step 21: Construction: Installing The Ball Washers
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit (Only the installation of the ABS pipe; The wire and connectors are already soldered and crimped on the fan motors)
The ball washers (air baths) are quite easy to install. You need a total of 5 pieces of ABS pipe/couplers, the fan motor and the sensor assembly for each ball washer. I
have made custom laser cut motor mounts and sensor brackets that are included in every kit sold, but if you need to make your own you can use the part template
located in the main zip file or simply modify a few blocks of wood with a drill and a jigsaw (Or just glue the sensor in place where the hole is. Just don't poke it too far into
the pipe where it will obstruct the ball).
The propellers for the ball washers come in a 75mm length which is too big to fit inside of the pipe. Take some snips and cut off the tip on each end of the propeller,
ensuring that it can spin inside of the pipe. If the propeller cannot spin and you activate the ball washer, it will damage the transistor (too much current) that is driving the
motor and may render the ball washer inoperable until that part is replaced on the Master PCB.
Also, the radius of the ABS couplers may be too tight for 40mm ping pong balls, so you might have to grind/sand out the inside of it until you can drop a ball through
without it getting caught in the coupler. If you just use 38mm ping pong balls, they will fall through just fine. I use a Dremel 134 High Speed Cutter in my rotary tool to
shave off the excess plastic in the coupler.
The photos above provide a pretty straightforward demonstration in regards to installing the ball washers. There are 3 things to look out for when assembling the
ballwashers:
1. Make sure that the fan motor inside of the T-coupler can spin freely. If the motor/propeller is pushed too far into the coupler it will hit the side wall and won't spin.
2. If you assembled the connectors for your motor and it's spinning the wrong way, pop the crimp tabs out of the connector and switch the pins. This will reverse the
direction of the motor and solve your problem (make sure to have the propeller installed the right way too).
3. When you install the infrared sensors, it is crucial that they have a clear opening into the coupler. They are optical sensors so if anything is blocking them they
may not detect a ball dropped in the air baths.
And that's it! We're almost ready to plug everything into the Master PCB and test it all out!
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Gather the custom motor mounts and sensor mounts. These are all included in
each kit, however, if you are making this table completely from scratch, you can
just cut out small blocks of wood and put the required size of holes in the blocks
of wood with drill bits.
Image Notes
1. If you have any kit other than a fully assembled kit, you will have to solder
wire leads to each motor and use the prior instructions to crimp on the ends.
Image Notes
1. If you use 38mm pong balls, you won't need to grind out the couplers as the
ball will have enough clearance.
Image Notes
1. Drill a 3/8" hole at the top of each coupler. This is where we will install the
ball washer sensors so that they can detect the ball passing by.
2. Drill a 3/8" hole at the top of each coupler. This is where we will install the
ball washer sensors so that they can detect the ball passing by.
If you are using 40mm balls, you will have to grind out part of the T-coupler
where the ball is put in at the top. Keep grinding and sanding the inside of the
coupler until you can drop a 40mm ball in and it falls through the coupler freely.
Image Notes
1. Line up each sensor bracket over top of each hole that you just drilled and
secure them to the couplers with a ziptie. Make sure that no part of the coupler is
obstructing the view of the IR sensor that we will be installing in the drilled out
holes.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Backside view.
Image Notes
1. Once you have them properly aligned, add hot glue around each sensor
bracket to ensure that they can't slip out of place.
Image Notes
1. Slide each motor through their respective mounts ensuring that their faces
only protrude out from the mount by about 3mm (1/8").
The propellers come in 75mm lengths, so trim them down so that they can spin
freely inside of the ABS pipe.
Image Notes
1. The required parts for one ball washer assembly.
Image Notes
1. Add a 13" straight 1/2" ABS pipe to the couplers.
Image Notes
1. Insert the motor mount into the end of the T-coupler. Press it in firmly until the
mount is flush with the outer edge of the coupler.
Take your hand and try to move the propeller inside of the coupler. You should
be able to move it freely with your hand. If you have the propeller to far foward in
the coupler, it will bind against the coupler and won't be able to spin.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Insert each sensor into its respective sensor bracket. The T-coupler is the
"ENTRY" sensor and the 90degree couple will have the "EXIT" sensor.
Image Notes
1. Add hot glue to the sensor in the assembly to secure it to the coupler.
Image Notes
1. It's a good idea to label which ball washer is which. This one is on the master
side of the table (Pods 1 - 10).
Image Notes
1. Both completed ball washers.
Image Notes
1. Insert the ball washer assembly onto the underside of the table. The entry
point should be on the left when the top of the table lid is facing up.
Note: The sensors haven't been installed in this photo yet. Just ignore that.
Image Notes
1. Add shims to adjust the how much of the coupler protrudes above the top of
the table. I used a block of wood and silicone, but you can use anything that will
work.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. df
2. df
3. The coupler for the entry point. A smaller piece of 1/2" pipe that is 30mm in
length has to be added so that the pipe is flush with the acrylic sheet that we
will install.
Image Notes
1. A completed ball washer assembly. Route the wires to the center compartment
where the Master PCB is located.
Image Notes
1. For the ball washer LED rings (you need 4 total), cut off 3 LEDs from the end
of each 24-LED strip, making them 21-LED strips.
Image Notes
1. Insert a small section of 1/2" pipe into the entry and exit couplers. You want
the pipe to be flush with the top of the acrylic sheet that we will be installing.
Cut off the last 3 LEDs on a 24 LED strip, form it around the pipe and keep it
together by putting a zip-tie around it. The LED ring should be below the acrylic
sheet.
Image Notes
1. 30mm length of pipe for the BW entry with a 21-LED strip formed around it.
2. 30mm length of pipe for the BW exit with a 21-LED strip formed around it.
Image Notes
1. The ball washer entry and exit points should be flush with the top of the
table.
You may change this later in the Instructable if you decide to use silicone
mounds.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. If you use a longer 90° coupler on the BW assembly, you will not have to grind
out the exit coupler. 40mm balls will travel through these completely
unobstructed.
If you use the short 90° elbow (the one in this step), you will have to grind it out a
bit to ft 40mm balls through it.
Step 22: Construction: Installing The Acrylic Sheet
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit
If you don't already have the ball washer holes drilled out int the 1/8" acrylic sheet, do it now. Beware that the holes in the acrylic sheet are only 50mm in diameter
whereas the holes on the table are 58mm (due to the lip of the couplers). I have tested 3 sheets of varying translucency, one being clear, one being slightly frosted and
the last one being heavily diffused. Each sheet worked fine, with my favorite being the most diffused one as it provides a really cool effect on the table. The more diffused
the sheet, the more prone it is to false detections because more of the IR light reflects back into the sensors. That being said, out of all 3 sheets that I used, none were
causing any false detections on the table.
Next, align the acrylic sheet over top of the table lid and ensure that it is flush to the table on all 4 sides. Then measure 12.7mm (1/2") in from each end and that's where
you will place your screws. Seeing as the rail underneath is 25.4mm (1"), we want to put each screw into the middle of each rail.
On my table, I installed eleven #8 3/4" Robertson screws along the perimeter of the sheet (see photos above). To secure the table to the base, we use five 2.5" screws
around the end and front perimeters of the acrylic sheet. Don't add the 2.5" screws yet until you have all of the electronics installed inside of the base. Just secure the
acrylic sheet to the lid of the table for now as we need access to the inside of the table.
As for the ball washer entry and exit points, there are two options. The quickest option is to leave the ABS pipe in the entry and exit holes flush with the acrylic sheet. Just
add silicone inside of the gap between the pipe and the acrylic sheet to waterproof it and it's done.
The second option is to get a small shallow funnel, hot glue a short piece of 1-1/2" ABS pipe directly into the center of it and pour silicone into the mold (or squeeze it
from a caulking gun, whichever). You then increase the length of the ABS pipe for the entry and exit couplers so that it sticks up above the acrylic sheet and you can
insert the cured silicone mound over top of the extended pieces of pipe. Make sure to waterproof the tiny gap between the ABS pipe and the acrylic sheet too. You can
also 3D print a mold if you have access to a 3D printer. There are photos of both options.
Now we're ready to start hooking everything up!
Image Notes
1. The table will look like this without the acrylic sheet and diffuser.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. It's not a bad idea to add some extra supports around the LED grid.
Image Notes
1. If you haven't already prepped the acrylic sheet, do it now by drilling out the
ball washer holes.
Image Notes
1. Secure the acrylic to the table with a few screws at regular intervals.
Make sure to drill pilot holes and countersink them. I used a total of 16 screws
to secure the sheet to the table.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. There are 11 smaller screws used to secure the sheet to the railing. The whole
backside of the acrylic sheet above the hinge is composed of small screws.
2. There are five 2" screws used to secure the front of the lid and the two ends to
the base of the table.
Image Notes
1. 2.5" Screws. These will go through the railings and lid and keep the table
closed. These will screw into the base of the table.
If you need to access the inside of the base at a later date, you will have to
take the 2.5" screws out in order to open the lid.
2. The small screws can be 1/2" or 3/4" screws. They are only used to secure
the acrylic sheet to the lid of the table.
Image Notes
1. At every location in the lid where there is a 2.5" screw installed, you will have
to add a small piece of wood on the inside base of the table where the screw
can sink into.
This allows the lid to be secured tightly to the base.
Image Notes
1. On this particular table, I used my Kreg Jig Set and have all of the screws on
the inside of the table.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Countersunk hole.
Image Notes
1. In this photo, I have a clear acrylic sheet with a white protective backing. I
wanted the sheet to be diffused for the most part but decided to keep the pods
bare. I no longer do this as it isn't consistent (sometimes the acrylic comes with a
brown paper backing) and instead I opt to use a frosted acrylic sheet.
If you want to do it like it is in some of the photos, take a straight edge (I used a
square) and remove the protective backing covering the RGB pods. Flip the
sheet around to cut out a triangle around the RGB pods. Then flip the sheet back
around so that the protective coating is underneath the acrylic.
Once again, it is easier to just get a frosted sheet and use that instead. I just left
this here for general knowledge and to explain how the diffusing aspect of this
sheet was created.
Image Notes
1. How it looks without a diffuser over top of the RGB pods.
Image Notes
1. An alternative to leaving the protective layer on the acrylic sheet to diffuse light
is to use a frosted acrylic sheet.
Image Notes
1. If you want even more diffusion, you can use an acrylic that is usually used
in LED signs.
The sensors are still able to see through the frosted sheet and have been
programmed to discard false detections.
This stuff reflects a lot of IR light back at the RGB pods, but it still works fine
seeing as the PIC has been programmed to discard rapid false detections.
This particular photo shows a table that I was making for a customer when the
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
bearing came off my flush-trim router bit, resulting in a nick in the acrylic sheet.
Image Notes
1. I am making silicone mounds for this table. If you don't want to do this, just
make sure that this pipe is flush with the top of the acrylic and then silicone
around it so that beer can't get between the acrylic and the lid.
Image Notes
1. To make a simple silicone mound mold, get a shallow funnel and glue a
short piece of 1/2" ABS pipe directly into the center of it.
Image Notes
1. Cut out some lettering from a soft material with a scalpel (I used a rubber
sheet).
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. I used RTV liquid silicone for my mounds, but you can use silicone from a
tube too and just press it into place.
Glue it in to the inside of the funnel so that the silicone will mold around it.
Allow it enough time to cure. It's a good idea to coat the inside of the mold with
dish soap or PAM.
You only need to do this if you want the mounds to be labeled as IN and OUT.
Image Notes
1. Pull the molds out and flip them around. Now they are ready to be inserted
over top of the ball washer entry and exit points.
Image Notes
1. Because I am using silicone mounds, I need to have the pipe stick out of the
acrylic and have it flush with the top of the silicone mound (not installed yet).
Otherwise, the pipe would be flush with the acrylic sheet and I would just fill the
gap with silicone and be done.
Image Notes
1. Both points have silicone between the acrylic and the pipe, making it
water/beer resistant.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Insert the silicone mounds over top of the entry and exit points and your
done!
Image Notes
1. After making a couple of tables, I decided to cheat and use my 3D printer to
make some molds ;)
The first 8 items are plastic molds from my Pegasus Touch (two of which got
clipped off because I had them to close to the back of the build plate) and the
back 4 items are actual silicone cones that were created with the molds.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The molds curing after being filled with silicone.
Image Notes
1. A few completed silicone molds. The one in the back left corner was an earlier
test mold that I never ended up using because it was too tall.
File Downloads
BW_Cone_IN.stl (189 KB)
[NOTE: When saving, if you see .tmp as the file ext, rename it to 'BW_Cone_IN.stl']
BW_Cone_OUT.stl (267 KB)
[NOTE: When saving, if you see .tmp as the file ext, rename it to 'BW_Cone_OUT.stl']
Step 23: Electrical: Installing The Master PCB & Connecting Up The Pods
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit
The first thing that we will connect up to the Master PCB, even before the power, is the infrared receiver. I have set up the BPT X5 table to use a bootloader (Bully
Bootloader) so that code can be programmed into the microcontroller wirelessly from a PC with a bluetooth connection. The only catch is that the IR receiver is the
hardware that activates the bootloader or tells it to go to the main code.
If you don't have the infrared receiver plugged into the PCB, you don't know if the microcontroller will read a low or a high signal on startup. If it reads a high signal, it will
go into the main code. A low signal, it will go into the bootloader and continuously loop until code is loaded into it or the PCB is reset. Once the receiver is plugged into
the board, it will only read a low if somebody is pointing the remote at it and pressing a button in the first second that the table boots up (which is how you activate the
bootloader mode). The IR receiver connects up to the 3-pin connector on the PCB (JP3).
I ran the power supply (PSU) line up one of the folding legs and into the table (making sure that the leg could still fold). I then sealed up the entry point with some silicone
and routed the rest of the cable to the same compartment with the Master PCB in it and secured it to the base of the table so that it wasn't able to shake free. Place the
Master PCB as close to the center of the support as possible. There are 3 holes in the PCB that you can place screws into in order to secure it to the table. Make sure
that the screws are snug, but not so tight that it cracks the PCB.
After that doing as I stated above, you just have to follow the "RGB Pods" legend on the PCB and connect up the pods to their respective connectors. The 3rd photo
shows the layout of the RGB pods on the table.
Image Notes
1. This chart represents the connector location for each RGB pod.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. How the pods are arranged on the table.
Note: The pods are still at the ends of the table, they have just been brought
together in the center here so that we can see the text.
Image Notes
1. The 2x4 IDC cables ready to be installed. It is a good idea to label which
cable connects to which pod.
Image Notes
1. Go and compare this wiring to the first version of the beer pong table. It's a
world of difference ;)
Image Notes
1. Install the Master PCB near the center of the table.
2. All of the lines for the LED rings run to the center of the lid then down to the
Master PCB.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Keep everything tied up nice and tight together.
Image Notes
1. I ran the electrical line down one leg on the table, making sure that it was still
able to fold. I then sealed up the entry point with silicone.
Image Notes
1. The power supply can be installed anywhere that it will fit. So pretty much
anywhere as long it's not underneath the ball washers. I had enough line to put
the PSU in one of the center compartments.
Image Notes
1. Wherever you decide to put it, secure it well so that it can't come loose and
damage the Master PCB in transport.
Step 24: Electrical: Connecting Up The Rest Of The Parts
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit
It's clear sailing now! Congratulations on getting as far as you have gotten. Let's finish connecting up the remaining parts of the table and then we can finally get to the
software side of things and testing it out!
This is a pretty basic step here. Make sure that you have routed all of the cables for the LED rings, RGB pods, etc. underneath the lid and into the base of the table.
Connect up each LED ring to its respective spot on the Master PCB, plug the bluetooth module into JP2 (it may already be soldered in for you), plug the IR receiver into
JP4 and connect up the wiring harness for the LCD display to CON3.
Next, cut out a small section on the front side of the table for the 16x2 LCD display and drill a 3/8" hole beside the display for the IR receiver. Connect up the LED grid
with the 50P wiring harness and you're ready to go!
As for the ON/OFF switch used in the kit, I drilled out a hole on the bottom of the table near the LCD display and mounted it there so it was out of sight. To turn it on, just
walk up to the LCD display, reach underneath it and press the button to turn the table on or off.
Image Notes
1. The center rings go from #1 - #8 and the ball washer LED rings use LEDx
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
channels 9 - 12.
LED13 - LED16 are four unused 16-bit PWM channels that can be used for
other LEDs/parts.
Image Notes
1. Connect each LED ring on the table to its respective connector.
Image Notes
1. Measure out the location for the LCD display and the IR receiver.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Use a jigsaw to cut out the square for the LCD display and a 3/8" drill bit to
make the IR receiver hole.
Image Notes
1. Screw the LCD display into place from the inside of the base.
Glue the IR Receiver into place.
Image Notes
1. Drill out the holes for the RGB LED strip (underlighting) and the hole for the
AC wire that will connect into the 12V power supply.
There are holes on each end for the RGB underlighting but only one hole for the
AC cord and that is on the master side of the table (really, you can put it
wherever you would like).
Image Notes
1. RGB underlighting holes on the secondary side of the table.
Image Notes
1. The hole on the front-left is for the push button switch to turn the table on and
off.
The hole on the front-right is the AUX port for the VU meter.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The hole for the switch has to have an inset in order to get the nut around the
switch and be able to secure it to the underside of the table.
This image is from the inside of the frame. The underside of the table should
only have a 12.7mm (1/2") hole visible.
Image Notes
1. The switch installed in the table. You can see the nut in the 25mm inset, this
allows the switch to be secured tight against the bottom of the table.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 25: Electrical: Assembling The RGB Underlighting
Applies To
PCB Only Kit
Unassembled Kit
Fully Assembled Kit (This step is already done for you)
Follow the photos in this step to assemble the RGB LED underlighting.
The RGB underlighting assembly no longer ships soldered together. Many customers who purchased the fully assembled kit have told me that the RGB underlighting
parts were faulty upon arrival or needed solder touch-ups to work properly. I looked into this and found out that this was happening because the whole assembly was
being folded together to fit in the kit before being shipped out and then unfolded and fitted to the table by the customer. The soldered connections and T-Shape
connectors can't handle this and were breaking. Now, all of the parts are shipped together (with pre-made connectors) and the 24 solder joints should only be completed
when it is ready to be installed in the table.
Image Notes
1. Two sets of 4-pin cable for the RGB underlighting.
Image Notes
1. Two sets of 30LEDs/m RGB LED strips (50cm sections).
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Prepare to solder the 4-pin connector to the T-Shape connector.
Image Notes
1. The connector soldered on. Note that this follows the pin connections from
the earlier photo.
Image Notes
1. Now we need to solder up the LED strips. Notice how the T-Shape connector
has a different layout from the LED strip (the G and R channels are flipped).
We will solder in the 4-pin wire accordingly.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Add heatshrink to cover up the open solder joints.
Image Notes
1. With the 4-pin wire, it is easiest to designate each color to its own channel.
You will have to re-adjust the red and green lines to connect them up to the
proper PCB pads.
+12V -> White
R -> Red
G -> Green
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. On this end, everything will solder straight in to their respective channels.
B -> Blue
Image Notes
1. Add heatshrink to each connection point.
Image Notes
1. A nice completed cable.
Image Notes
1. The underlighting in action.
This was an early photo and shows the RGB underlighting behind the folding
legs. The location of the underlighting is now in between the two sections on
each of the folding legs. The legs just sit above the LED strips (there is enough
clearance). Just something to note so you don't get confused from this picture
once you install your underlighting.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Perform the same steps on the other side.
Step 26: Software: An Introduction to the Software
Note:
This is all for general knowledge. You do not need to know or understand any of this to get a beer pong table working. You simply can use the standard code from the zip
file in step #1. Fully assembled kits come pre-programmed and are ready to operate out of the box. They are programmed with the latest firmware at the time of shipment
(they are fully tested before shipping).
Now that we have finished all of the construction, we can begin learning how everything works! This is where it gets really fun as there are so many animations and
effects that one can make with this table. Before we move on to making our own animations, it is beneficial to learn how data is sent amongst the different chips, how the
interrupt routines have been set up, certain time constraints, etc.
There is a fair share of source code to sift through, whether its code for controlling the RGB pods, running animations on the grid or controlling the ball washers. In every
C file I have ordered all of the functions alphabetically so that one can find the piece of code that they need quicker. I could have split the code up into smaller files but I
chose to keep the feature controls and the main animations grouped together, most of which are contained in the LED_Control.h and LED_Graphics.c files.
As stated in earlier steps, all of the source code and documentation files are located in the downloadable zip file in step #1. Now, it's time to step through each function of
the table one by one, completely understanding one feature before moving on to the next. It is the same thing that we just did in the last 35 steps with construction, only
this time we are doing it with software.
To keep the length of this Instructable shorter, I will only be touching on the core software features for this beer pong table. If you wish to learn about the interrupt time
delays or how the IR sensors on the pods work, please refer back to step #48, step #54, step #55 and step #56 in the previous Instructable.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 27: Programming: How To Program The MCU Wirelessly
If you have a PCB only kit or an unassembled kit, you will have to connect up a programmer to the ICSP pins designated by JP3 to initially program the bootloader into
the MCU. Follow the instructions to upload the bootloader hex file into MPLAB and program it into the PIC (If you have purchased a Fully Assembled Kit, this has already
been done for you and you can skip to "Programming the MCU with a Bluetooth Connection").
Programming the Bootloader into the MCU (Fully Assembled Kits can skip this part)
1. Open up the zip file from step #1 and navigate to the "Bootloader->MPLAB Bootloader Project" folder. Open up "Bootloader.mcw".
2. In the open project, click on "Programmer->Select Programmer" on the toolbar and select the programmer that you will be using to program the
PIC24EP256MC206. I have it set to the PICKit 3 by default.
3. Select "File->Import..." on the toolbar and navigate to this projects folder and import the file "BTLDR&Program_v2.02.hex". This will program the bootloader into
the PIC as well as the most recent BPT X5 software.
4. Connect up your programmer to the ICSP pins, turn the Master PCB on and program the bootloader data into the MCU.
5. You can now program the Master PCB with a PC that has a bluetooth connection.
Programming the MCU with a Bluetooth Connection
1. Plug the PSU into the 2.1mm jack on the Master PCB. Before you turn it on, point the remote at the IR receiver and hold any button down, then switch the Master
PCB on. The HC-06 bluetooth module may begin blinking but the RGB pods or any other features shouldn't turn on. This means that we are in bootloader mode.
2. Navigate to the PC Settings on your computer, or whatever application you use to control bluetooth pairing and pair the PC to the HC-06 module (It might be
renamed to BPT_X5). The default password for pairing is "1234" without the quotation marks.
3.
4.
5.
6.
7.
8.
9.
10.
I use a great piece of software called "Bluesoleil" that only costs $30 for a full license. I originally was using the default windows metro app (Windows 8.1) but I
hate using metro apps seeing as they take up the full screen so I switched to Bluesoleil to handle the bluetooth functions on my PC. Any bluetooth manager
should work though, including the default manager included with Windows.
Once you pair your PC to the module, a Bluetooth Serial Port COM driver will be installed on your PC (Windows installs this automatically). Take note of the COM
port number.
With the main zip file extracted, navigate to the "Bootloader" folder and open up "winbootldr.exe".
Right under the main window of the application, there will be a drop-down menu which contains the amount of COM ports/drivers on your computer. Click on the
one that is paired with your bluetooth module.
The drop-down to the right of your COM port contains the baudrate at which we will be transferring data at. Select a speed of "115200" bps.
Check the box that says "OpenCom" and give it a couple of seconds to connect to the Master PCB. The LED on the bluetooth module should light up and stop
blinking (or on some versions, it may just change the blinking pattern).
Select the "HexFile" button and navigate to wherever you have the hex file stored that you want to program into the MCU. For this example, it is located in the
"Source Code v2.02" folder in the main zip file.
Hit the program button and you should see the application start programming addresses starting from 0x1000. It usually takes around 20 seconds to program the
MCU and verify its contents.
Once programmed, the Master PCB will restart itself and the newly programmed code should start running.
Troubleshooting
If you get an error from the PIC24 Bully Bootloader application that says:
" Reading Target Device ID
Exception during serial port read: The operation has timed out. Unable to connect to device, giving up."
This means one of two things. Either there is no connection being made between your PC and the bluetooth module on the Master PCB or you are failing to put the
Master PCB into bootloader mode. Double check that you are paired with the bluetooth module properly and that you have the "OpenCom" checkbox activated.
Here is a video detailing how to use the bootloader with the X5 Master PCB. Normally the bluetooth modules red LED will go completely solid when it has a stable
connection, but you will see in the video that it still blinks. This is because I was using an HC-05 bluetooth module at the time of the video and not an HC-06 module. The
HC-06 modules go completely solid when they have made a connection and it is the HC-06 modules that are in the BOM.
You can also reset the MCU by navigating to the settings on the LCD and then clicking on "Update Firmware?". The LCD will then perform a countdown indicating when it
will reset. Once it hits the end of the countdown, just hold one of the buttons on the remote, point it at the IR receiver and the Master PCB will restart in bootloader mode.
The infrared remote control button functions are detailed in the next step.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. Search for bluetooth devices.
Image Notes
1. Find the device name. Most programs will automatically find this.
Image Notes
1. The default password is 1234.
Image Notes
1. Pair your PC to the bluetooth module. Make sure that you have the power to
the Master PCB turned on as well as the bluetooth module plugged in.
Image Notes
1. Once paired, find the option to connect to the virtual serial port.
Windows 8.1 will do this automatically.
Image Notes
1. Take note of which COM port that you are connecting to.
If you use the default windows 8.1 metro-app for bluetooth, you will have to find
the COM port by trial and error or use the instructions provided at
http://windows.microsoft.com/en-ca/windows/choose-com-portbluetooth#1TC=windows-7 to locate the outgoing COM port.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. If you are using the PC Settings metro-app to connect up to the bluetooth
module, it will look similar to this.
Image Notes
1. I'm fully paired and connected to the bluetooth module.
Image Notes
1. Open up the Bully Bootloader application which will transfer the hex file to
the X5.
2. Navigate to the folder which contains the hex file that you want to program
into the Master PCB.
Image Notes
1. Select the virtual COM port that the bluetooth module is connected to. Mine is
on COM3 but yours may be different.
Select a baudrate of 115200 and then click on OpenCom.
It may take a second or two to connect, but if you can see the bluetooth module
on the PCB, it will stop blinking its red LED when it has a stable connection.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. After you click Program, you should see the software start programming
multiple memory addresses.
Image Notes
1. It took about 10 seconds to program the PIC and another 10 seconds to verify
that the data written into the PIC is correct.
Step 28: Software: How the LED Grid is Updated
On this version of the Interactive LED Beer Pong Table, the MCU now controls the display and refresh rate of the LED grid. By doing it this way and not using dedicated
drivers, I save space on the main PCB, cut the amount of wiring for LED grid by 40% and also make the LED grid much simpler to wire up.
The trade-off is that we need to use more resources on the microcontroller to maintain a constant refresh rate on the grid or else we will get flickering across the display.
Seeing as this MCU has an execution speed that it is 75% faster than the previous MCU, this doesn't cause an issue. On top of that, we now use a different chip to
control the RGB pods which refreshes itself, meaning that it frees up more resources on the MCU.
The MCU does use a few serial-parallel logic chips to compensate for the larger number of outputs needed to drive a LED grid with a maximum size of 32x16 pixels. To
reduce the total number of outputs needed, we use a technique called 'multiplexing' to control a maximum of 512 LEDs with only 48 outputs.
Listed below are some of the functions that are used to control the LED grid. After calling any of these functions, if we want to update the grid and enable the newly
selected pixels, we need to call UPDATE_FRAME() which will then send the new grid data to the shift registers. This prevents flickering on the LED grid because it won't
allow the grid to update while the MCU is in the middle of modifying the LED grid data.
void LED_Pixel(UINT8 px, UINT8 py, UINT8 state)
This function takes an (x,y) coordinate and modifies the bit that the pixel represents. If 'state' is equal to 1, the LED that the pixel represents will be turned on, if state is
equal to 0, the LED will be turned off. In photo #3 we modify the LED grid data to turn on 3 pixels on the grid. If we were to use this function to turn on these specific
pixels we would write:
LED_Pixel(1,2,ON);
LED_Pixel(31,4,ON);
LED_Pixel(0,11,ON);
UPDATE_FRAME();
All of the pixels are then updated at the same time that we call UPDATE_FRAME(). We are assuming that the LED grid is already blank with all of the LEDs off. If not,
you would have to clear the old LED grid data from the grid, then write these pixels
void Fill_Grid(void)
This function will set every bit in the LED data array to 1. If the grid is updated after calling this then all of the LED pixels will turn on.
Fill_Grid(); //Turn all pixels on
UPDATE_FRAME();
void Clear_Grid(void)
This function will clear every bit in the LED data array to 0. If the grid is updated after calling this then all of the LED pixels will turn off. This function is useful when we
want to draw a new frame on the LED grid, we can reset all of the grid_row[x] bits and start modifying the data knowing that each bit has been reset to 0 (OFF) and we
have a blank grid.
Clear_Grid(); //Turn all pixels off
UPDATE_FRAME();
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
void Draw_Circle(UINT8 px, UINT8 py, UINT8 radius)
This function will modify the LED data and create a circle around the center point of (px,py). The 3rd parameter will set the radius of the circle. Photo #5 shows an
example for the following code:
Draw_Circle(16,6,3);
UPDATE_FRAME();
void Draw_Rect(UINT8 px, UINT8 py, UINT8 sx, UINT8 sy)
This function is used to draw a rectangle starting at point (px,py). The size of the rectangle is specified in pixels by sx and sy. Photo #4 shows an example of how the
rectangle is drawn (a square can also be created with this function).
Draw_Rect(5,2,8,6);
UPDATE_FRAME();
void Invert_Grid(void)
This function will simply invert each of the LED data bits. If you run this function right before you run UPDATE_FRAME(), it will display the exact opposite of what it was
going to display before running this function. (i.e. the LEDs that were on will be off and the LEDs that were off will be on).
//Other code setting LED bits here
Invert_Grid();
UPDATE_FRAME();
That is just a few of the standard functions used to modify the LED grid. Now lets check out the RGB pods!
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 29: Software: Controlling the RGB Pods
The RGB pods, LED rings, motor drivers, underlighting and the extra PWM outputs are all controlled by the two TLC5955 16-bit PWM driver chips. Each chip is capable
of providing up to 48 separate PWM channels, giving us a total of 96 channels to use.
The first 60 channels are used for the 20 RGB pods and each pod uses 3 channels for its red, green and blue colors. After those channels, I have dedicated the next 16
channels to the LED ring connectors, followed by the 4 motor channels, IR transmitter channel, 12 extra PWM drivers and the last 3 channels make up the red, green and
blue channels for the underlighting.
Instead of having to control each RED, GREEN and BLUE channel separately for the RGB pods, I have created a couple of functions that will handle the low-level stuff
for us and modify all three channels at once. They are as follows:
void RGB_Pod(UINT8 pod, UINT16 red, UINT16 green, UINT16 blue)
This function will take the parameter 'pod' and set the corresponding red, green and blue values to the respective channels of that pod. There is no fading in this function,
it will simply change the pod to whichever color you wish.
//Change pod #5's color to RED
RGB_Pod(5,65535,0,0);
void Pod_Set_Color(UINT8 pod, RGB pod_color)
This function is the exact same as RGB_Pod(p,r,g,b), only it uses an RGB struct to set the color of the pod. This is nice if you quickly want to to set the pod to one of the
default 10 colors.
//Change pod #5's color to RED
Pod_Set_Color(5,COLOR[RED]);
void Fade_Pod(UINT8 pod, RGB NEW, UINT16 delay);
This function is by far my favorite as it allows the user to fade in and out of colors. This provides a nice smooth transition from the color that it is currently set at to the new
color that you want it to be faded to. The speed of the transition is controlled by adjusting 'delay'.
//Fade the pod to blue from whatever color that it is currently set at
Fade_To(5,COLOR[BLUE],10);
Now if you look into the code for the RGB pods, you may notice that there is actually 21 pods in the RGB_Pod(p,r,g,b) routine. The 21st pod isn't actually a pod, it is just
the RGB underlighting for the bottom of the table and will set the color of the underlighting in the same way that you would set the color of the RGB pod. You can either
set the underlighting color with any of the above functions, or else the following one:
void RGB_Underlighting(RGB underlight)
This function will set the color of the underlighting to the colors that are defined in the RGB struct. One can create their own RGB struct or simply use one of the 10
default colors. An example is below.
//Set the underlighting color to PINK
RGB_Underlighting(COLOR[PINK]);
If you choose to use a default color (defined in Globals.h), you only have to add 'COLOR[x]' to the function where the RGB struct variable should be placed. 'x' should be
one of the default colors listed below.
10 Default Colors (11 Colors if you count BLACK (Off) as a color)
BLACK
RED
GREEN
BLUE
CYAN
MAGENTA
YELLOW
PINK
ORANGE
VIOLET
WHITE
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 30: Software: Controlling the LED Ring Channels
There are sixteen channels on the X5 board that can be used to control LED rings, LED signs, etc. Each channel supports 16-bit PWM and can handle up to 500mA of
current. I recommend keeping the current level less than 300mA as it may start to heat up at its maximum rating.
For the table in this Instructable, I only used 12 out of the 16 available channels and they make up the LED rings on the beer pong table. They are updated in the same
fashion that the RGB pods are, except for we only need to modify one channel for each LED ring, as opposed to three channels for each RGB pod. Listed below are
some of the functions to update the LED rings:
void Update_Ring(UINT8 ring, UINT16 duty_cycle)
The first parameter 'ring' will take an input value of 1 - 16 and determine which OUTx pin on the TLC5955 that we are controlling. The second parameter, 'duty_cycle', will
set the PWM value between 0 - 65535 for that output. This function is used to control the rail LED rings as well as the ball washer LED rings. To turn on LED ring #8 with
a PWM value of 3230, we would write:
//Turn on LED ring #8 with a duty cycle of 3230
Update_Ring(8,3230);
void Fade_Ring(UINT8 LED, float new, UINT16 delay)
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
This function uses the exact same format to fade the LED rings that Fade_Pod() uses to fade the RGB pods. Once the user calls this fade function, the interrupt routine
will automatically update the LED ring one more fade step per interrupt until the ring has completely faded to the brightness level specified. Here is an example of fading
an LED ring to its max brightness over the course of 80ms:
//Begin fading LED Ring #3
Fade_Ring(3, 65535, 80);
There is also another function that can be used to adjust any channel on either of the TLC5955's manually. The function 'Update_Channel(a,b)' can be used to change
the duty cycle on any of the 96 PWM channels. An example is below.
void Update_Channel(UINT16 channel, UINT16 duty_cycle)
The parameter 'channel' will contain a value from 0 - 95, which will be one of the 96 total channels. The 2nd parameter sets the duty cycle of the PWM channel. This
function would be used to control the twelve extra PWM outputs, the IR transmitter output or any other channel for that matter. For this example, lets set the
EXTRA_PWM7 channel to have a duty cycle of 55322.
//EXTRA_PWM7 is on channel 87. Set a duty cycle of 55322
Update_Channel(87,55322);
Instead of just using the channel number and typing in 87 as the first parameter, one should use the code definitions for the channels. For the example above, we could
replace the integer '87' with 'EXTRA_PWM7' as that is already defined as channel 87 in my code. The code definitions are listed in 'LED_Control.h'.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 31: Software: Using the ADC Module
The X5 PCB uses 4 analog inputs on the PIC microcontroller. The first three inputs connect to the three 74HC4051 outputs and the 4th input is connected to the VU
Meter 'IN' line. Each 74HC4051 multiplexer handles 8 inputs, giving us a total of 24 analog inputs. All of these analog inputs are used for the 20 sensors on the RGB pods
and the 4 sensors for the ball washer entry and exit holes. The connections are as follows:
Pod #1 - Pod #8 sensors -> AN0
Pod #9 - Pod #16 sensors -> AN1
Pod #17 - Pod #20 Sensors -> AN2
Four Ball Washer Sensors -> AN2
VU Meter 'IN' Line -> AN3
Just ignore the VU meter line as we are only going to concentrate on the IR sensors in this step. Normally, we would need to read each analog input one at a time for a
total of 24 times to get each sensors analog reading. Seeing that we are using the PIC24EP256MC206, we can read the first 4 analog inputs (AN0 - AN3) all at once
which saves us quite a bit of time! So instead of having to read each input on each 74HC4051 one at a time, we only have to read each input on all three 74HC4051's at
once (did that make sense?).
Along with reading the 3 analog inputs connected to the 74HC4051's, we will also get a reading from AN3 which is connected to the VU meter 'IN' line. We can either use
this value later in the code or just simply discard it. The IR sensors are polled in the main loop and updated periodically. The sensor readings are packed into a 32-bit
integer where a '1' means that a detection has been made and a '0' means that no object has been detected by the IR sensor. This is how the IR sensors are updated in
the main code:
Example Code
//Save the IR sensor readings data and pack them into a DWORD
IR_sensors = Update_All_Sensors();
If you want to get a better understanding of how these multiplexers work, refer to steps #54 - #56 in the original Instructable. The wiring is set up a little differently for this
version of the beer pong table but it still has a good amount of info that I didn't address here in regards to controlling the 74HC4051.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. This simple voltage divider acts as a level converter. It brings the maximum 5V
level from each 74HC4051 down to a maximum of 3.3V which is what the PIC is
operating at.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. The truth table detailing how to connect each input to the 'Z' output.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 32: Software: Controlling the Ball Washers
Each ball washer assembly consists of a fan, two IR sensors (entry & exit) and two LED rings. There are four connections that must be made to the PCB to complete the
ball washer. The connections and their respective locations are in the diagram in photo #1 of this step.
The ball washer IR sensors are connected to the 3rd 74HC4051 multiplexer, meaning that every time we poll through all of the RGB pod sensors we actually get the
readings for the ball washer sensors too. We have to mask off the RGB pod sensor bits and move the ball washer sensor bits to bit locations #0 - #3.
Example Code
//Save the IR sensor readings data and pack them into a DWORD
IR_sensors = Update_All_Sensors();
//Shift the last 4 IR sensor bits (BW sensor bits) to the bit locations #0 - #3
bw_bits = (IR_sensors >> 20);
//If ball washers are enabled, check to see if a ball has been dropped into either BW
if (ball_washers == ON)
Ball_Washers_Detect(bw_bits);
The ball washers also have a fail-safe built into them in case something goes wrong. For example, if somebody drops a ball into the ball washer and doesn't grab it from
the other side, it will fall back down into the ball washer when it shuts off. This sets a flag in the system and will disable the ball washer until somebody resets the flag.
This ensures that the ball washer doesn't run indefinitely if somebody doesn't grab the ball out of it or if it gets jammed up with more then one ball in it. The way to reset
the ball washer after it times out is to put your fingers into the entry and exit hole of the ball washer tripping each IR sensor.
Video Demonstration
The ball washer motors are controlled by the FAN1 and FAN2 channels on the X5 PCB and are rated for a maximum of 500mA. Again, I would recommend using a motor
that draws much less current than that to keep the heat of the transistors down. The motors that are in the BOM are the ones I used and work perfect for this application.
If you would like to add a water pump to your ball washers, no problem! You can use the PUMP1 and PUMP2 channels on the X5 board to accommodate this.
Step 33: Software: 24-Key Infrared Remote
The 24-Key infrared remote is used to adjust the modes, settings and operation of the interactive LED beer pong table. Currently, I am just using a stock remote and I
have mapped certain buttons to perform certain functions. In time, I would like to purchase some of these remotes with custom skins that have icons which pertain to the
functionality of the selected button. For now, users just have to use the chart above which has a diagram that shows what button is mapped to which operation.
The IR remote controls the LCD display on the beer pong table which allows users to see what settings and modes are available to be changed. As development
continues, more options and features will be added to the menus but for the time being, the menu tree is pictured in the last photo of this step.
This remote uses the NEC protocol to communicate with the IR receiver. Each command from the remote is received by the MCU, packed into a 32-bit integer and then
compared against the default codes for the buttons on this remote. Be aware that they are many identical versions of these remotes floating around, but the codes
mapped to each button might be switched around.
Here is an Instructable which describes how these type of remotes function. As everything is open source with this project, the code can be changed to work with most
remotes.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Image Notes
1. I am looking into getting custom made remotes with the proper icons for the
button functions. This is just an example skin.
Image Notes
1. This is the current 24-key infrared remote that is being used for the BPT
X5.
Image Notes
1. The stock controller has a skin that looks like this. The diagram describes which
buttons perform what actions..
Image Notes
1. I plan to eventually get custom skins made for the IR remotes.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 34: Software: 16x2 LCD Display
The 16x2 LCD display is used in conjunction with the 24-key infrared remote. The display is used to allow the players to adjust certain settings on the beer pong table. I
have added 7 default menus that range from setting the brightness of the table to disabling the ball washers. The UP (A1) and down (A2) arrow keys will cycle through
the main menus, ENTER (C1) will enter a menu and CANCEL (C2) will revert back to the default menu which I have called the screensaver. The LEFT (B1) and RIGHT
(B2) arrow keys are used to adjust values, such as the ones in the brightness menus.
The 16x2 LCD display uses the very common HD44780 controller which has a large amount of example code floating around the net. I have written some basic routines
(LCD_Setup.c) to control the operation of the LCD display and they are as follows:
void LCD_Init(void)
This function is used at the start of the code and initializes the operation of the LCD display. The LCD settings are defined inside of the function in LCD_Setup.c.
void LCD_CMD(UINT8 cmd)
This function will take a command parameter and send it to the LCD display. The command definitions are listed in LCD_Setup.h.
LCD_Cursor_Pos(UINT8 x, UINT8 y)
This will set the cursor at the specified address of P(x,y). Being a 16x2 LCD display, the visible range of 'x' on the screen is 0 - 15 and the visible range of the y parameter
on the LCD is 0 - 1.
LCD_Text(UINT8 x, UINT8 y, char text[32])
This function will write text to the screen at the location of P(x,y). The text is limited to 32 characters and must contain a NULL operator '\0' which indicates the end of a
string.
There are a couple of other functions for the LCD display but the majority that I use in the table are listed above. Take a look at photo #2 which shows the hierarchy of the
menus.
Image Notes
1. The menu layout is subject to change as I add many more options to it.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 35: Software: UART Menu
The UART menu allows a user to test out certain features of the table wirelessly from a PC. Seeing as it uses the same bluetooth module that we use to program the
table with the bootloader, you will connect up to it the same way (Step #23 if you missed it).
Once you've paired up to the bluetooth module, open up a terminal program such as TeraTerm. Go to 'File->New Connection' and select the current COM port that your
bluetooth module is using to communicate with the X5. Then go to 'Setup->Serial Port' and select a baudrate of 115200.
Type "BT" without the quotes and hit enter. You should receive an acknowledge from the Master PCB. This proves that you have a working link.
Now send any of the commands that are listed in photo #1 to the Master PCB. A good place to start is to type "BT+MENU" to get a list of the various commands that you
can use to turn on/off specific features. If you don't understand how to use the commands with variables (n & x), just type in "BT+HELP" to find specific info for each
variable command.
You can actually do all of this over a mobile phone too, although it is somewhat cumbersome. Download a bluetooth terminal program on your phone (I use BlueTerm)
and pair it to the Master PCB and set the proper baudrate settings. Now you can send commands to it from your phone just as you would on your PC.
This feature isn't super useful and it's more of a proof-of-concept at the moment. I plan to learn mobile programming (or find someone who already knows it) and design
an easy to use app for this project. The UART menu just shows that all of the hardware is already in place for when the time comes to design an app.
Note:
If you plan to test out certain parts through the UART menu, make sure to run the "BT+STANDBY" command first to halt the normal operation of the beer pong table.
Otherwise, if you modify a part, like a pixel on the LED grid, it may be changed in a few milliseconds on the next grid refresh. By putting everything into standby, it halts all
animation operations. To resume normal operation, just send the command "BT+ACTIVE".
Image Notes
1. By sending the command BT+MENU to the beer pong table, you will receive the
UART menu which lists various commands.
Image Notes
1. Use the help commands to find out how each command works.
Image Notes
1. Everytime that the BPT is reset, it will always send out the IR sensor calibration
values.
I didn't have any RGB pods connected up to the Master PCB here which is why all
of the Light[x] values are 0.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 36: Software: EEPROM
The EEPROM memory is used to store various settings and data and is the 25LC256 EEPROM IC from Microchip. This particular EEPROM chip separates data banks
into 64 byte pages and can store up to 32768 bytes of data (256 Kbits). I am still programming this part of the project and it is still in an alpha stage, meaning certain
features of it are up and running but there is still a fair bit more to do. I still have to implement the file structure and allow users to store table settings, which I will get time
to do within the next two weeks.
When writing to this EEPROM chip you can only write 64 byte blocks at a time before you need to re-send the write command. My EEPROM driver file already takes care
of the page boundaries so that the user doesn't have to spend time dealing with them. I have simplified things as much as possible and made it so that the user only
needs two commands to control the EEPROM. They are as follows:
void EEPROM_Read(UINT16 addr, UINT8 *buf, UINT16 len)
This function will take a specified address and read each successive byte up until it reaches the value of 'len'. Each byte is stored in the pointer-array '*buf'. If we wanted
to read 12 bytes starting at the address of 0x40, we would write:
//Read each data byte stored from 0x40 to 0x4B and store them in the pointer-array buf_variable
EEPROM_Read(0x40,buf_variable,12);
UINT8 EEPROM_Write(UINT16 addr, UINT8 *buf, UINT16 len)
This function will write the specified amount of data in a buffer to the specified address and any consecutive locations that follow it. The amount of data in bytes that is to
be written is defined by the variable 'len'. If the operation is successful it will return a 0. Otherwise, it will return a non-zero integer which pertains to a specific error code.
If we wanted to write three bytes of data to the addresses of 0x80, 0x81 and 0x82, we would write:
//For examples sake, we will just assign random data to write to the EEPROM
data[0] = 124;
data[1] = 99;
data[2] = 232;
//Write the 3 bytes in the variables of data[0..2] to locations 0x80, 0x81 and 0x82
EEPROM_Write(0x80,data,3);
It is very simple to utilize the EEPROM on the X5 board. One thing to keep in mind is that the EEPROM shares the same SPI bus as the SD card and the TLC5955's
(RGB Pod controllers & LED rings). Therefore, any interrupts that use the SPI2 bus when an EEPROM function is called are temporarily disabled until the EEPROM
operation has completed.
Image Notes
1. The very basic EEPROM structure. The majority of the settings are stored in the
first 64 bytes (Page 0) of the EEPROM.
Image Notes
1. The data structure of the Header entry in the EEPROM.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 37: Software: VU Meter
The X5 board has a 5-pin connector (JP5) which allows the beer pong table to detect frequencies around it. The VU module that has been created for the X5 has been
designed around the MSGEQ7 graphic equalizer display filter. This allows the X5 to detect seven different frequencies quite well. One can plug a 3.5mm auxiliary cable
into the module to get the best sound detection or simply use the built-in electret microphone to detect the audio around it.
The only downside to using the electret mic is that the music needs to be quite loud for it to be able to pick it up. As time goes on, I will upgrade the electret mic part of the
circuit, but I know from experience that they usually pick up bass and low frequencies best.
Either way, one can modify the code to suit their needs and can choose which of the seven frequencies that they want the features on the table to react too. There is
working code for the VU meter, however, it is still a work-in-progress. There are a few simple VU animations right now but over time I will add more and clean up the code
in the existing ones.
VU Meter Demonstration
Image Notes
1. VU Meter Parts.
Image Notes
1. The schematic layout for the VU Meter module attachment.
Image Notes
1. The VU Meter module connects to the X5 on the connector designated as JP5.
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Step 38: Software: WS2812B Add-On
This is in a testing phase and is not fully developed. Seeing as the monochrome LED grid is such a pain to wire up, I started exploring more options for the LED grid. A
plausible alternative is the WS2812B RGB LED strips which can be chained together and individually controller by using a 1-wire protocol. This would mean no wiring up
columns, rows or having to use the 50P breakout header.
Each 32 LED row will connect into the row below it with the 3 main connections, +5V, DATA and GND. Seems to good to be true, right? It's definitely true, but there is a
slight downside to these LED strips. The 1-wire protocol used operates at a high frequency and doesn't leave much room for error. On top of that, the LED strips are
relatively expensive and need a high current power supply to provide enough amperage to all of the LEDs.
I will continue to update this add-on in the coming days, but you can see a video of it in action below.
Step 39: Conclusion: References
Here are the links to the datasheets for the major components in the beer pong table circuit as well as some links for other documentation. There is plenty of information
and projects available when searching Google for each of these components. If you are having trouble understanding a component, cross reference my code with the
code of other projects to get a better understanding.
PIC24EP256MC206 Datasheet
TLC5955 Datasheet
LM2596-5.0 Datasheet
HC-06 Bluetooth Module
74HC595 Datasheet
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
74HC4051 Datasheet
BPT X5 Website
Step 40: Conclusion: Project Review
That's it for this Instructable! I will continually be developing this project, so check back now and again as I will keep everything updated. I will be adding a step for the
micro-SD card feature, mobile/PC apps and anything else that enhances the table.
Overall, I am very happy that I was able to condense the crazy amount of wiring in v1.0 into the kit that it is now. Don't get me wrong, there is still a fair share of wires with
this kit, but it's still way nicer than the original! If you choose to create an Interactive LED Beer Pong Table, be sure to click the 'I Made It' button and post a photo in the
comments!
Thanks for checking out this Instructable and feel free to comment or PM me if you have any questions. Cheers!
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Advertisements
http://www.instructables.com/id/Interactive-LED-Beer-Pong-Table-20/
Download