Introduction: Fiber Optic Light Sculpture Using Arduino

In this instructable, you will make a fiber optic light sculpture and light it with RGB LEDs. These LEDs are controlled by an Arduino Uno. This project requires Arduino knowledge and some circuit knowledge. 3D printing knowledge may also be needed if you plan on 3D printing the cable frame like I did. Print time aside, this project can be completed in a few hours. If you already have an Arduino board, and some wire, this project will cost about $40.


  • Arduino Uno
  • Side-Glow Fiber Optic Cable
  • Common Cathode RGB LED
  • Wire
  • Breadboard

Future Plans:

I plan on making many updates to this instructable. First off, I would like to make this on a larger scale. The print volume of my printer greatly limited the size of my frame and prevented me from making the design that I wanted in the frame. Another change is to make this bluetooth compatable. I also want to experiment with the Arduino program to make the lights change in different ways. Another update is to use more powerful LEDs to get a brighter light from the sculpture.

Step 1: Create a Frame

I 3D printed a frame for my fiber optic cable, however it could be made out of wood, cardboard, etc. Whichever medium you choose to use, the image shows the shape I chose to make mine. Next I drilled holes in the sides of the frame so that I could string the fiber optic cable through to make a design. The recessed area in the center of my frame is 14 cm x 14 cm. I chose to drill holes every 2 cm on the sides so I could have good spacing. I recommend making your frame much larger than 14 cm x 14 cm as it will help with stringing the fiber optic cable in the next step. I unfortunately was limited by the small print volume of my 3D printer. I also recommend using a dark material so that the light is more prominent. Your finished frame should look something like the images.

Step 2: String the Fiber Optics

Now string your fiber optic cable through the holes that you drilled. If you printed your frame, you may need to punch out some leftover filament from the holes to get the cable through. I made a very simple pattern due to the size of my frame. The cable doesn't bend very well in tight spaces, so the larger your frame, the more complex the pattern can be. The type of pattern I wanted to make initially is in my sketch above. I plan on trying again with a larger frame so that I can use that design. Make sure you leave an equal amount of excess cable attached. These will be connected to the LEDs.

Step 3: Programming the Arduino

I am not well versed in Arduino. For this part of the project, I referenced another instructable linked here. The code I used is the code provided in that instructable. I plan on tinkering with the code to better suit this instructable in the future. Copy and paste the code into your Arduino IDE and upload it to the board and you are ready to make your circuit.

Step 4: Creating the Circuit

The top image is the basic circuit I used. Notice that this circuit uses a resistor. I removed this because the LEDs were too weak. Refer to the images above to create the circuit. Attach the wires to the pins as shown: red in pin 11, green in pin 12, and blue in pin 13. Connect the ground cable directly to the common cathode of the LED. Make sure you leave space for 4 LEDs to be plugged into the breadboard. Next, plug in the 4 LEDs as shown above. Before doing anything else, check to make sure your circuit works, then proceed to the next step.

Step 5: Attach LEDs to Fiber Optic Cable

For now, I have attached the LEDs to the fiber optic cable using electrical tape until I create a more permanent solution. Once you have wrapped them all, reattach them to the breadboard. Now turn out the lights and enjoy!

Step 6: Feedback for Me

As I mentioned in the Intro, I have a lot of plans to improve this instructable as I realize that it is, in a few ways, unfinished. I am very new to all of this, so any feedback you have for me on ways to improve my project or on things that could be done differently, please leave a comment for me below. I could use the help! Questions are also welcome so that I may make an FAQ for this document. Thank you!