Animated LED Crystal Shadow Box

Introduction: Animated LED Crystal Shadow Box

About: ‚ÄčLocated in Minneapolis, Minnesota in the USA. Designing high quality LED controllers for personal and commercial use. All devices are designed and fabricated in the USA to high standards. With a competent s...

A simple project that uses the lensing effects of a crystal dish(desert plate? not sure) and diffraction grating(like fireworks glasses) to create a rainbow/kaleidoscope/fractal scene animated with addressable LED strip. The frame is from a cheap analog(with hands) clock. The clock mechanism was used for something else and the frame was left over and re-purposed. It was painted with 3 different colors of glitter spray paint. Reflective black, reflective silver, and an iridescent shimmer type. The addressable/smart/pixel LEDs cast 3 beams of light, red, blue, and green. Each are slightly out of alignment with each other and when the light hits the crystal dish it is distorted, warped, split and recast in a different directions, the ridges and texture on the crystal dish are reflected in the altered light output. This makes many textured beams of light(of the different colors) that hits the diffraction grating splitting again. This bouncing and distorting makes the interesting effect seen in this rainbow shadow box.

A NLED Pixel Controller Ion is small enough to fit inside the frame and provides an easy way to create and upload color sequences specific for the project. The LEDs are arranged in 3 groups, but are controlled all in one string. The software NLED Aurora Control allows the user to create custom color sequences that can be uploaded to compatible controllers to run by itself, without a computer connection.

Diffraction grating is what is used in what are sometimes called "fireworks glasses" or other novelty glasses that cause light to be broken up in various ways.

From Wikipedia: "In optics, a diffraction grating is an optical component with a periodic structure, which splits and diffracts light into several beams travelling in different directions. The directions of these beams depend on the spacing of the grating and the wavelength of the light so that the grating acts as the dispersive element"

Wouldn't allow the YouTube video to be embeded, find it at:

Step 1: Tools and Supplies

Electronic Supplies:


  • Crystal Dish, Plate or Bowl, one with good ridges and patterns.
  • Hand Clock with suitable frame
  • Sheet of diffraction grating, big enough for the clock face. Found 8.5" x 11" size online(link below)
  • Spray paint for the frame, choice of color
  • Circle of mirrored acrylic, same diameter as the frame


  • Solder Iron and Solder
  • Diagonal Cutters
  • Hot Glue Gun
  • Misc Screw Drivers
  • Hot Glue Gun
  • Drill and bits

Diffraction Grating Sources:

Step 2: Preparing the Frame


  • The frame was taken apart
  • The diffraction grating was cut to size to match the clock face glass.
  • Adhesive was applied to the edges(only its not clear) of the front glass and the diffraction grating applied.
  • The frame was painted. Layered 2 colored spray paints with glitter, then topped with a clear coat with iridescent glitter.
  • The front glass with the diffraction grating applied was hot glued into the frame

Rear Mirror:

  • A disc of mirrored acrylic was cut to match the size of the frame.
  • The crystal dish was centered and marks were made for the holes
  • Drilled the acrylic(carefully) to match
  • Test fit the crystal dish. Not glued it yet.

Step 3: LED Wiring and Installation

The LEDs selected for this project were LPD8806 48/LEDs per meter. Should have used WS2801 for the higher quality light output. But turned out fine either way.

Outer LEDs:

  • LED strip measured and cut to length
  • Connected some red and black wire for power, and 2 strand ribbon cable(grey) for the data to the IN side of the strip.
  • The inner frame was slanted, so hot glue was used to build it up so the LED strip could lay flat in a ring.

Rear LEDs:

  • Found a container(vitamins) that was a suitable diameter for the center and worked out to being 10 LEDs in diameter.
  • Connected data and power to the IN side of the strip

Center LEDs:

  • After a test the middle area was lacking, so a 2x2 group of pixels was added in the middle. And will shine up through the center container.

Step 4: Power, Button, and Controller


  • The power jack used was a panel mount 2.1mm x 2.5mm that matches the power supply that will be used.
  • A 9/16" hole was drilled and the jack fits in from the inside and bolted from the outside.
  • The jack's leads were bent outwards to make it fit better.
  • Mounted it into the hole.


  • A 9/16" hole was drilled near the power jack, then made square(large enough to fit the button) with a razor
  • A momentary push button was mounted to some scrap perf board
  • Each lead was soldered separately to GND and BUTT(BUTTON) on the PCB
  • The button was hot glued from the backside into the square hole.
  • A vinyl decal was added over the button from the outside to hide it.


The NLED Pixel Controller Ion was chosen as it is really small, so it fits inside the frame. And has the ability for dynamic stand-alone sequences to be uploaded to it from the computer software, NLED Aurora Control. Which will be perfect for this project as once the color sequences are loaded, the device will run them whenever its powered up.

Step 5: Software and Color Sequence Programming

The software NLED Aurora Control is an easy to use, GUI based software application for use with NLED Controllers. Its available for free download from the website.

Controller Setup:

  • Plug in the controller to USB and then Open software
  • Go to the Hardware Tab
  • Select the controller's assigned COM port from the left side
  • The device should identify and information will be filled on the top of the Hardware Tab
  • Go through the available Configuration Settings, such as Pixel Chipset, and the correct RGB Order( example WS2812B is GRB)
  • Go to the Connection Tab, and click Upload Configurations
  • Power cycle the controller, make sure to close or disconnect the controller from the software first, or it will not reconnect.

Software Setup: For this device the LEDs are arranged in 3 groups, each group has a different amount of LEDs in it(28 outer ring, 10 inner ring, 4 center). The software allows the user to use an image of their project and place LED icons on it, to indicate LED positions, this is really helpful for projects such as this when the LEDs need to be controlled in groups

  • Go to the Software Tab
  • Use the User Channel Amount slider or text field and input the desired amount of channels that are needed. Every RGB pixel is 3 channels, so if using standard RGB pixels multiply the pixels you want to use by 3 to get the required number. Ex. 32 pixels = value of 96
  • In the Graphic Layout section(bottom) select from the drop down Image(or see manual and use any of the other options)
  • Click the Load File button next to that drop down and select the image that will be used.(or in this case default was selected, as no image was available or needed, but it will allow the LED icons to be placed)
  • Go to the Graphic Layout tab, it will be blank. Every mouse click it will place a LED icon, in order from 1 to max channels. Right clicking a LED icon will remove it, then the next left click will place it again,.
  • Place all the icons, if you need to clear it and restart, go to the Software Tab and click "Reset LED Icons"

Color Sequences: Full details are found in the NLED Aurora Control manual, and web page. Tutorial videos and more documentation is coming soon.

  • Started with the included save file for Pixel Controller Ions, found in /saves folder
  • Altered the User Channel Amount and set it up as above.
  • Edited the Sequences and created some new ones. Went with various color combinations of slow fades and negative(black) space, found that it created the best effect for this project. Gradient color sequences worked well with a low step value. Made a long Linked Sequence, which allows multiple different color sequences to be chained/linked together, so they can play one after the other after a selected amount of iterations. This will be what the device is left on normally. Test, upload and tweak the color sequences.

Step 6: Finished

After mounting the controller inside the frame, reassembling it, and making a few adjustments its all done.

Overall a rewarding project, was able to utilize a lot of reused materials, only had to buy the diffraction grating and electronics.(Although by using LED strip scraps and a prototype controller means it was reused/free) It worked out how it was envisioned, an easy way to get an overload of colors and sparkles. A custom linked color sequence was created that will play through several of the best color sequences over and over, great for just hanging up on the wall and only having to look at it, never need to adjust any settings.

The button and DC jack could have been done a bit better. And should have used a higher-resolution pixel chipset, since LPD8806 only has 7 bit color, should have used at least a 8-bit type, if not a 12-bit type. Also the USB jack on the controller is inaccessible, there just wasn't any room to work with to keep everything cleanly in the frame, but the color sequences that are loaded will be more than enough for its lifetime.

Thanks for reading please visit our Instructables Profile Page or visit the website at /

Please comment or contact with any questions, comments, feature requests, or product suggestions. Or if you are thinking about a project feel free to contact us with the details and we can gladly assist.

Explore Science Contest

Participated in the
Explore Science Contest

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020
    • Maps Challenge

      Maps Challenge