Spirit Box
Materials:
Arduino mega
Addressable LED pixel strand WS2812B, 50 LEDs, 5 inch spacing
Adafruit 16mm illuminated blue momentary button
Multicolor wire ribbon connector kit (male to female, male to male, female to female)
5v power supply
Wire connectors
330 Ohm Resistor
2' x 4' x 1/4" Birch veneer plywood
Scrap wood to rip for blocking inside box
Hinges
Wood glue
Wood stain
Polyurethane
Solder
Tools:
Laser cutter
Table saw
Drill
5/16", 5/8", 1/16" drill bits
Soldering Iron
Pliers
Wire stripper
Phillips head screw driver
Framing square
Speed square
USB cable
Computer
Arduino IDE
Graphic design software
Cut the wood into 2 13" x 18" pieces, 2 3" x 18" pieces, and 2 3" x 13" pieces.
Make a 45 degree miter cut on all edges of one 13" x 18" board and all 3" edges of the 3" x 13" and 3" x 18" boards.
Cut blocking to add strength to the interior frame of the box:
4 pieces of 1/2" x 1/2" x 3", 2 pieces of 1/2" x 1/2" x 16", and 2 pieces of 1/2" x 1/2" x 10".
Assemble box (excluding the top) by gluing the edges. Use a framing square and speed square to make sure everything stays at a 90 degree angle.
Use your favorite graphic design program to create a board design. Include appropriately sized circles for guides to make the light and button holes.
Take the top of the box and laser cut the design
Drill holes in place of the laser cut circles (8 mm holes in my case).
Drill a hole in the back of the box for the Arduino power supply.
Stain the top, sides, and the bottom of the box.
Attach the top of the box to the rest of the box with the hinges
Connect the data wire (green in my case) of the LEDs to a PWM port on the Arduino (port 7).
Connect the power wire (red in my case) of the LEDs to the 5v power port on the Arduino.
Connect the ground wire (blue in my case) of the LEDs to ground on the Arduino.
Put masking tape on the back of each lite and number the lights starting at 0 (from the side that connects to the Arduino). This will be used to identify the index number of the light for use in the controlling software.
The button has 4 pins. Power and ground for the button, and a power and ground for the LED. The LED pins are marked with a + and -.
LED pins from button:
Solder a red wire to the + pin of the button and connect it to a PWM port in the Arduino (port 13).
Solder a black wire to - pin of the button and connect it to a 330 Ohm resistor. Connect the other end of the resistor to a black wire and connect it to ground on the Arduino.
Button pins:
Solder a white wire to either of the button pins and connect it to a PWM port on the Arduino (port 8).
Solder a blue wire to the other button pin and connect it to ground on the Arduino.
Attach the LEDs to the under side of the board lid. One LED for each and every hole.
Use masking tape to hold the lights in place. The order of the lights does not matter. The software can refer to the correct light by referring to the index previously written to the back of each light.
Attach the LED button to the box lid (in the center of my board).
Hook Arduino up to computer and write software to light up lights on the board when the button is pressed.
Upload software to Arduino, test, debug, and enjoy.