Introduction: LED Infinity Matrix - Bluetooth Controlled

About: My sister and I like to make things! And even more than making things, we like to share our creations! We want to create beautiful and compelling content that really helps people to get what they need!

You've probably seen infinity mirrors before. But have you ever seen a bluetooth controlled Infinity Matrix?

The goal with our Infinity Matrix was to be able to draw in light, almost like an Infinity Etch A Sketch. We wanted to control each LED inside the matrix with a tap or a swipe on our phone.

This Instructable will teach you how to make an infinity mirror, that can not only change color, but also be programed to do whatever you want.

It turned out WAY better than we thought it would. Reading about doesn't do it justice, even watching the youtube video doesn't do it justice! You seriously just have to stand in front of it for a solid half hour drawing shapes with really REALLY loud music!

The source code for the IOS App and Arduino Sketch are included in this Instructable. We will be updating the software as we develop this project further. New features are in the works like, saving an LED drawing and playing it back later, or making it "rain", or making the matrix react to music!

If you like what we are doing subscribe on youtube, follow us here on Instructables, Vote for us for the contest and let us know in the comments below what features we should add to the APP!

Materials

Wood (Pine)
• 2 @ 0.75" x 3.5" x 23.5" **
• 2 @ 0.75" x 3.5" x 22"
• 4 @ 0.75" x 1" x 22"
• 4 @ 0.75" x 1" x 20.5"

Glass (1/8" single pane)
• 1 @ 22" x 22"

Polycarbonate (Lexan) OR Acrylic 1/4" thick
• 1 @ 22" by 22"
• 4 @ 1" by 20"

Adhesives
• Wood Glue: 1 bottle
• Clear Silicone: 1 tube
• Plastic Epoxy: 1 tube

Paint
• Primer
• Black High Gloss

Fasteners
• 1" Screws: 25

Electronics
• Arduino Bluno
• 50 piece 12 mm diffused digital RGB LED strand (WS2811 chip)
• 5 Volt, 8 Amp AC to DC power inverter
• 5.5 mm female barrel plug
• Laptop with Arduino Sketch Installed
• Micro USB to USB 2.0/3.0 for programming
• Iphone for our Application
• Or Android Device (if you have your own app)


Tools
• Clamps
• Drill/Drill press
• 15/32" drill bit
• Paint brush
• Sander
• Corner Clamp (Optional)
• Nail Gun (Optional)


** These are actual dimensions of the wood. When you buy them, the printed dimensions are 1" x 4" NOT 0.75" x 3.5". If the actual thickness of the boards is different from 3.5", then the dimensions given in this tutorial will not fit together.

Step 1: Constructing the Frame

Quick Step 1:
1. Apply wood glue to the end grain of one of the 0.75" x 4" x 22" boards
2. Butt the 0.75" x 3.5" x 22" board against the 0.75" x 3.5" x 23.5" and clamp
3. Using a nail gun (or drill/screw), attach the two pieces
4. Repeat steps 1 - 3 until the 0.75" x 3.5" x 23.5" x 23.5" frame is constructed


Quick Step 1 Pointers:

Gluing end grain to surface grain is generally pretty weak, so in constructing the frame, it is important to use both glue and screws or nails. If you are using screws, you will need to pre-drill so as not to split the wood. We used a nail gun because it was much faster and cleaner.

Make sure you construct a square frame! I found a squaring clamp and it does wonders for creating 90 degree corners. If you make a rhombus instead of a square then the glass wont fit inside the frame.

When constructing the frame it is important to note which side will be facing out. You want the boards on that side to be completely flush with each other and free of major deformations.

Step 2: Adding the Mirror Ledge

Quick Step 2:

  1. Mark 0.125" down from the front and on the inside of frame all the way around
  2. Apply wood glue to the flat 1" side of the 0.75" x 1" x 22" board and clamp it just under the line drawn in step 1 against the longer side of the frame (0.75" x 3.5" x 23.5").
  3. Repeat step 2 for the second 0.75" x 1" x 22" board, parallel to that done in step 2
  4. Apply wood glue to the flat 1" side of the 0.75" x 1" x 20.5" and clamp it just under the line drawn in step 1 and against the shorter side of the frame (0.75" x 3.5" x 22")
  5. Repeat step 4 for the second 0.75" x 1" x 20.5" board, parallel to that done in step 4.

Quick Step 2 Pointers:

Here we are creating the ledge that the front two-way mirror will rest on. The ledge will be 0.75" wide and run the length of the inside of the frame. The ledge must the thickness of the glass below the front of the frame so that the two-way mirror will sit flush with the front of the frame. In our case, the thickness of the two-way mirror is 0.125" thick.

Essentially all you are doing in this step is gluing the thin 0.75" x 1" x 22" and 0.75" x 1" x 20.5" boards to the inside of the frame.

Step 3: Painting the Frame

Quick Step 3:

  1. Fill in any gaps with wood filler
  2. Lightly Sand down the frame with 120 grit paper
  3. Wipe down the frame
  4. Prime the frame with primer
  5. Apply several coats of the high gloss black paint

Quick Step 3 Pointers:

If your frame isn't quite square, no worries, just slap some wood filler into the gaps. Let that dry then give it a light sand.

If you don't have high gloss paint, you can also finish the paint job with a sealer that'll make is shine like polyurethane.

Step 4: Fixing the Two-way Mirror in Place

Quick Step 4:

  1. Clean the two-way mirror
  2. Wipe down the frame
  3. Apply a line of clear silicone along the 0.75" thick ledge
  4. Lay the two-way mirror reflective side DOWN in the frame
  5. Press the edges of the mirror down
  6. Fill in any gaps between the two-way mirror and the frame with silicone
  7. Wipe away any excess silicone

Quick Step 4 Pointers:

MAKE SURE the mirror is CLEAN! This will ensure good visibility and good contact with the silicone. When you are cleaning off the glass, be careful not to tear the tinting film.

When you are pressing the two-way mirror into the silicone be careful not to crack it. You want to see the Silicone squish out and become transparent. Filling in around the edges of the mirror will protect fingers from the rough cuts.

Step 5: Drilling Matrix Pattern in the Lexan

Quick Step 5:

1. Mark 49 holes starting 2.75" in from two sides and each separated by 2.5" center to center.
2. Use a square and measure off each side to ensure uniform distance
3. Use a 0.46875" (15/32") drill bit to drill out each hole
4. Using a straight razor, clean up the surface and edges of the Lexan.


Quick Step 5 Pointers:

The distance from hole to hole is a matter of choice. We wanted the LED's spread out as far as possible so went with the length of wire between each LED 2.5". It is important that you mark your LED holes equidistant from each other on all side so it looks uniform. Any deviation will be accentuated by the infinity mirrors.

Lexan is really easy to drill through but tends to get hot and melt a little. I got better results by using a higher RPM and pulsing the drill while applying pressure. A drill press is definitely the best way to do this.

Step 6: Applying the Reflective Tint to the Lexan

Quick Step 6:

  1. Cut a strip of reflective film larger than the piece of Lexan you are going to cover
  2. Use your teeth to separate a corner of the film from its cover by grinding your teeth together
  3. Spray slightly soapy water on a flat surface and lay the tint (mirror side down)
  4. Peel off the protective cover to expose the adhesive side
  5. Spray the adhesive side down with the soapy water
  6. lift up the film and lay it on the Lexan
  7. Use a plastic squeegee to press the film against the Lexan
  8. Allow the film to sit for several days to evaporate all the water off

Quick Step 6 Pointers:

If at all possible, get this done by a professional! I tried laying the film down over the lexan with the 49 holes in it and it was nearly impossible to get right! That being said, the stray small pieces are a lot easier!

Step 7: Installing the LED Strand in the Lexan

Quick Step 7:

  1. Flip the Lexan upside down
  2. Starting with the first LED in top corner, insert the bulbs from right to left, top to bottom
  3. Since there are 50 LEDs and only 49 holes, you will have an extra LED at the end, don't worry about it because it will never be illuminated by the APP

Quick Step 7 Pointers:

If you drilled the holes exactly to the size of the LED Pixels, you can simply insert them into the holes and friction will hold them in place. If your holes are a little bigger, just use some epoxy to hold it in place! You want the bulb to be just above the surface of the mirror so that it can get a full reflection.

Step 8: Installing the Lexan Into the Frame

Quick Step 8:

  1. Flip the frame upside down
  2. Clean the inside of the two-way mirror thoroughly
  3. Holding the LED Lexan grid upside down, slide it into the frame
  4. Center the LED Grid
  5. Using the 0.75" x 1" boards secure the Lexan in place

Quick Step 8 Pointers:

Make double sure that the inside of the Infinity mirror is really clean before installing the LED grid. Any dust particles on the inside of the mirror will become visible when you turn it on. Also take care to center the LED Matrix so the reflection in the X and Y directions are symmetric.

I used some weather stripping on the underside of the boards to hold the Lexan firmly in place

Step 9: Wiring the Arduino Bluno and Power Supply

Quick Step 9:

  1. Orient the Arduino Bluno in the corner next to the first LED
  2. Screw it in place to the frame
  3. Take the Data line wire (white) from the LED and plug it into Data Pin 6
  4. Take Ground from (Blue) the power supply and plug it into the Ground pin on the Arduino
  5. Connect the positive (red) LED wire to the positive terminal of the 5.5 mm Female barrel connector
  6. Connect the negative (blue) LED wire to the negative terminal of the 5.5 mm Female barrel connector

Quick Step 9 Pointers:

If you use the exact LED strand that I am using, the wiring will be as above. However, you should double check the wiring diagram of your specific LED strand. Also note that the ground of the data line has to be tied to the ground of the 5v power supply which is also tied to the ground of the Arduino as shown in the wiring diagram.

Also note if you are using the LED strand listed in the description, it comes with a 2 pin JST connector on the LED data and ground lines at the start and end of the strand. You want to connect the female side of the JST (the start of the strand) to data pin 6. The male JST connector is so you can daisy chain several strands together. If you plug it in backwards, nothing will happen.

Step 10: Flashing the Arduino Bluno

  1. Install Arduino Sketch. Download here.
  2. Click here and find the “Download ZIP” on the top right. Download and unzip the folder.
    1. Note: Both the IOS and Arduino code will be downloaded in the same ZIP.
  3. Inside the arduino folder find and open "Bluetooth-LED-Control.ino" in Arduino Sketch.
  4. Compile the code by clicking the check mark.
    1. If there are no errors plug in your Arduino Bluno to your laptop and push this code by pressing the right arrow button.
  5. When the lights stop flashing on the Arduino the upload will be finished.


Double Checking

At this point everything should be ready to go for installing and connecting the IOS app to the arduino.

If you would like to make sure that you connected the LEDs correctly, you can add rainbowCycle(10); to the void loop() portion of the code. This should make all the LEDs light up as soon as you are done flashing the board.

//Code Example:

void loop(){

rainbowCycle(10); //insert here to check

uint8_t pixel[6] = {6, 10, 220, 30, 35, 20};

//wait until 5 bytes in buffer if(Serial.available() >= 6) {

rainbowCycle(10);

.......more code....

}

Step 11: Installing the Our IOS Application

  1. Install Xcode. Download here
  2. Open the folder you downloaded with the arduino code. Github Repo here
  3. Double Click the Led-Grid.xcodeproj file and the project will open in Xcode.
    1. At this point your should see something like the first screenshot above.
    2. Put your Apple ID in the "Bundle Identifier" this will fix the signing error from Xcode
  4. Plug in your Iphone and select "your-iphone-name" from the drop down menu next to the play button.
  5. Click play and "fix issue" if Xcode gives you a pop up.
  6. The app should launch on your phone and automatically connect to the Bluno. You will know you are connected when the red bluetooth image turns to blue.
  7. At this point you should be connected and ready to make your Infinity matrix glow!

Notes:

The layout of the IOS app is optimized for an Iphone 6 if you are using a different phone, the layout might require some tweaking.

Step 12: Step 12: for Android Users

Our App is written for the Iphone but but the Arduino code will work with any Bluetooth LE capable device.

If you would like to connect your Android device, check out the many instructables on how to connect Android to Arduino. Like this one

OR

If you don't want to connect an external device to the matrix you can hardcode really cool designs directly in Arduino Sketch. The Included AdaFruit library has all sorts of cool animations that come ready to go out of the box.

Step 13: Getting Creative

And You're Done!!

Like I said in the introduction, a description of how cool this thing is, just isn't enough. You really just have to make it and share it!!!

Make It Glow! Contest

Participated in the
Make It Glow! Contest

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest

Homemade Gifts Contest 2015

Participated in the
Homemade Gifts Contest 2015