Introduction: Music Reactive Fiber Optic Star Ceiling Installation

Want a piece of the galaxy at your home? Find it out how it's made below!

For years it was my dream project and finally It's finished. It took quite some time to complete, but the end result was so satisfying that I‘m sure it was worth it.

A little bit about the project. I went full DIY with this, which allowed me to have full creative freedom. The result - northern sky constellations in scale, individual control of star clusters with IR remote (brightness and color), reactivity to music, fully controllable cove lighting, and most importantly - possibility to upgrade pretty much anything in this project.
To achieve it all I chose Arduino as a platform for the project since I have some knowledge of programming. For music reactivity MSQ7EQ chip did the trick, there are a lot of resources online for it. For communication, NRF24L01 is used a lot and I had a few spares, so I used them. For controlling a large number of LEDs PCA9685 servo controller works great. If you prefer a cheaper and easier version of this project you can look for star ceiling kits on amazon, but if you decide to go full DIY with this project, just like me, then these skills are required:
· Some knowledge in Arduino programming;
· Circuit design and soldering skills;
· How to work with AC.

Many of you asked for the price of the project, It‘s hard for me to give a number since I had a lot of materials for it and it depends a lot of how much you decide to do it yourself, size of the project, etc, but I‘m guessing depending on these factors it could be as low as a couple of hundred or as high as a 1000$. While working every other weekend it took me rougover a year to finish this project.

Step 1: Planning

First, a decision should be made if one wants to make the electronic part himself or buy a kit. Some knowledge in Arduino and basic electronics is required to make the circuits, also there’s a higher chance of something going wrong. You can find a lot of kit options in amazon by searching “Fiber Optic Star Ceiling Kit” or anywhere else, there are a lot of options. But if someone wants full creative freedom and control of the project, then full DIY is a way to go.

Now that decision is made on electronics, you should think about ceiling structure, star map size and number of stars. I went with typical hanging gypsum ceiling because of reasons mentioned before. Since in my case it was hard to install fiber optics (low ceiling) I decided to go with relatively low number of stars ~1200, but end result is still amazing, no regrets here.

Now about choosing the star pattern. I live in northern hemisphere, so I chose part of the sky that is actually visible here. There are a lot of apps to get the picture of constellations, I used Celestia as in famous “Star-Map” instructable. Of course pattern doesn’t have to be realistic and in scale, feel free to have full creative freedom here, you can find a lot of amazing ideas online for patterns.

Stars marked with different color circles are for differentiating clusters of stars with somewhat similar brightness. I did not put much effort into this part, so it's not super accurate..

Step 2: Materials

Now that everything is planned, materials can be ordered.

In this part I will not list materials needed for the ceiling itself, since it depends on system used and other factors. I used ceiling system by Knauf. Same goes for tools, because most of the tools you will need to install the ceiling. For installation of stars and electronics, not that much is needed, see list below. A lot of the parts I bought in local electronics shops and rest in AliExpress, since it’s so much cheaper there and quality is fine in most cases.

Parts for stars and electronics:

· Power supply for LED strips depends on length, there are some really good resources online specifically for choosing LED strip power supply. In my case I had 12V / 30A / 350W switching power supply for maybe 15 meters of strip. Strips were 14.4W/m, so I had a lot for reserve.
· Power supply for 3W LED diodes. Again, it depends on how many LEDs are used, but in my case power supply was 5V / 7A / 35W for 15 LEDs and Arduino itself. If you decide to go with 5mm standard RGB LEDs than this power supply can be significantly less powerful and circuit will be much simpler, but stars less bright.
· Common Anode 3W RGB LEDs with heatsink (or your typical 5mm LEDs if less brightness is acceptable). Single LED is for controlling one cluster of stars, so quantity depends on how many stars you want to control separately.
· 12V RGB LED Strips.
· Fiber optics. Fishing line doesn’t work. How much you need depends on number of stars / size of the ceiling / where the circuit is. I used few different thickness fibers for greater effect.
· PCA9685 boards. With single board 5 RGB LED diodes can be controlled.
· 2x Arduino Uno/Mega.
· 2x NRF24L01.
· USB cable for powering Arduino.
· IRL540N logic mosfets, quantity depends on how many LED strips are used. 1 pc is for single color of single LED strip. Keep in mind that strip length limit is ~5 meters, if you need more, you will need separate strips. Also there are workarounds for connecting long strips, feel to ask or google if needed.
· 2N2222 transistors (or other NPNs). Separate transistor is needed each 3W LED color. In my case 15x3.· Resistors: 2W 10R/2W 6R8/2W 6R8 for R G B of each 3W LED respectively. 5-10k for pull down, can be 0.25W.
· 10 uF capacitors for NRF24L01 decoupling.
· Some kind of aluminium plate for 3W LED fixing and cooling.
· PCBs for the circuits.
· Breadboard for testing.
· Some random screws, plywood, duct tape and other stuff you would find in your typical workshop.
· A lot of wires in different thicknesses. For PWM signal simple breadboard wires can be used, not much amps flow trough these wires, but for LED strips thickness should be calculated depending on distance from LED strip to the circuit, same for 3W LEDs.

Parts for the remote-control box and spectrum analyser:

· 1x MSGEQ7;
· Resistors: 1x 470 Ω / 1x 180k Ω / 1x 33k Ω.
· Capacitors:1x 33 pF / 1x 0.01 µF / 1x 0.1 µF .
· Thermal paste for CPUs.
· IR remote control and receiver diode.
· A lot of breadboard wires or any thin wires you have.
· Small PCB. I used PROTO SHIELD.
· Small case for Arduino UNO and the circuit. I used a small laser cut box.
· There are other parts that are shared with main circuit. Quantity is included in the main circuit list.

Tools for star installation and creating circuit:

· Clear glue that does not dissolve optic fibers. I used basic paper glue.
· Soldering equipment.
· Multimeter is useful to have for this project.
· Screwdriver.
· Pliers.
· Awl or something similar (I used steel wire) for poking holes in a ceiling. Should be same thickness as fiber optic.

Step 3: Installation of the Ceiling

I won’t go into detail in this step, there a ton of material on how to install hanging ceiling and I am not an expert on this topic. The approach I chose is more complicated than a panel with stars approach that many people choose. But in doing in this way, we have quality hanging ceiling that in daylight looks totally normal, no panels, no nothing.

For electronics I have decided to add maintenance hatch in not so visible part of the gypsum ceiling.

Applying filler and priming is done in this step, but painting is done when fibers are installed.

Step 4: Installation of Fiber Optics

This part took more than expected... After a lot of improvisations, we have settled that in our case the best way to wire fiber optics is with a fishing pole and a fishing line loop, see my masterpiece sketches for an explanation. Now that I look at this idea it looks ridiculous, but who doesn’t like some challenge.

Few notes:

· I recommend to glue fibers in their holes, so they stay in place for sure. The glue should be clear and not react with the fiber material. I used basic paper glue.

· Drilling is not needed. Holes in the gypsum the ceiling can be simply poked with an awl or anything similar, just make sure to match the diameter of optic fiber.

· For finding exact positions of specific stars on a ceiling I used old school measuring tape.. that it. Wasn’t 100% precise, but quite close. The ceiling was too large to print star map in scale.

Step 5: Ceiling Finish: Painting

We have painted over optic fibers, so they are not visible when not in use. Done this way it looks like you typical hanging ceiling. We painted in two layers and the brightness of fibers are almost the same.

Step 6: Making Test Circuit

The circuit itself is not that complicated and worked for me right off the bat, but it is always good to test it before installing and there is a lot of soldering in this one, so there’s a risk right there. Also, it is smart to have a test a version of the circuit for future updates, since I’m sure nobody wants to short circuit something that took days to install into the ceiling.

For test version I mean one or two PCA9685 boards, NRF24L01, and power supplies connected to Arduino. It all can be on breadboards. The same applies to IR remote circuit, just add stuff to the breadboard, see if it works. Also, I would suggest soldering a few 3W LEDs for testing.

Step 7: Arduino Code

For libraries and other useful links look at “Useful information” section. For code explanation look at the comments in the code.

To create this code I used a lot of resources, some of them are listed in “Useful information” section, but since I finished this project more than a year ago, by the time I decided to write instructable, I could not find all of the resources and some of the links I saved, sadly didn’t work anymore. So if anyone needs any help with the code let me know in the comments, I’ll do my best.

In code you'll find a rather complicated function for LED blinking. To make it look more pleasant I used a tutorial for breathing led: https://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/
Human eyes don't perceive light in a linear manner, so if you use linear increase in LED brightness it doesn't look very natural.

Step 8: Wiring and LED Strips

Now it’s time for final wiring! If everything is tested and working it should not be very hard, just a lot of soldering of identical parts. For fixing the circuit I used plywood in size of the maintenance hatch, so if there’s a need, I can easily remove the whole circuit from the ceiling. I put the fibers in small plastic plumbing tubes, roughly in size of 3W LEDs, then drilled the same size holes in plywood and inserted these tubes into the plywood. By doing this I can easily remove fibers from the LEDs when needed, see attached pictures.

As for LED strips, I suggest sticking them on aluminum profiles for cooling, because these strips do get quite hot.

Step 9: Troubleshooting and Fine Tuning

You have tested the circuit, but now that it’s installed, it’s not working.. or something doesn’t work as it should. It’s probably your soldering since if it worked in the test circuit, there is no reason it doesn’t work now with few exceptions. I hope it’s not the case for you, but I will share one particular problem I had just as an example.

When I was dimming LED strips to the lowest value, the strips would stop working or started flickering. After loooong research and troubleshooting, I found out that problem was slow switching IRL540 and solutions was simple reduce PWM frequency of PCA boards to 50hz. It mostly solved the problem, now only at bottom values I can see flickering or problems, but It doesn’t matter since I am not using such low values. This problem came back to me when I decided to film the ceiling since with such low frequency you can see flickering in cameras, it’s just like filming tv. To solve this problem, I made a small breadboard circuit with 2N2222 transistors instead of IRL540, just to make the shoot. With these transistors, the problem was solved and since I was filming in relatively low PWM values, 2N2222s could handle the power. If someone has the same problem, feel free to adapt Totem – Pole circuit, it should help with this problem.

Now that hopefully everything is in its place and working, we can fine tune star brightness, reactivity to music, star fading modes anything else.

Step 10: Useful Information and Links

To write the code and to create the circuit I used a lot of resources, most of them are listed here, but since I finished this project some time ago, by the time I decided to share it, I could not find all of the resources and some of the links I saved, sadly didn’t work anymore. So if anyone needs any help with the code or project itself in general, let me know in the comments, I’ll do my best.

MSGEQ7

https://www.sparkfun.com/datasheets/Components/Gen...

https://www.baldengineer.com/msgeq7-simple-spectru...

https://rheingoldheavy.com/msgeq7-arduino-tutorial...

https://www.instructables.com/id/How-to-build-your...

Nrf24L01

http://arduinoinfo.mywikis.net/wiki/Nrf24L01-2.4GH...

PCA9685

https://learn.adafruit.com/16-channel-pwm-servo-dr...

https://github.com/adafruit/Adafruit-PWM-Servo-Dri...

IR remote

https://github.com/z3t0/Arduino-IRremote

Step 11: Upgrades

It would be cool to create an app to control the ceiling, maybe using OpenHAB on Raspberry PI, since PCA9685 can be easily controlled through RPi.

If OpenHab or an alternative is used it's possible to connect the ceiling to a smart home system.

Arduino Contest 2020

First Prize in the
Arduino Contest 2020