Introduction: LED Fiber Optic Jellyfish Lamp : Nexus Jellyfish

About: Chemical engineering student at the University of South Florida

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

This is the instructable for the Nexus Jellyfish. This instructable will teach you how to make this cool project, and will guide you through the many mistakes to avoid. The Jelly came about from the MakeCourse project, but the inspiration came from the Octopus Tablet ( This 3D print showed how 3D printing can do some really bizarre and fantastic shapes, and I wanted to test it out. I came about a lot of beautiful jellyfish images, and I loved the tentacles they are, simple, flowing and beautiful. So I used fiber optics in movement to transfer the light, and to maintain the long flowing nature of the jellyfish.

Between the fiber optics, and the bizarre shape of the jellyfish, I hoped to create something aesthetically pleasing, and this is what came out of it:

Step 1: Step 1 : Hardware: Circuit Schematic

Frtizing Diagram

This diagram will have two different power rails, one running 5V and another running 12V. We have two different power rails because the motor needs a larger voltage to generate the torque needed to spin the fiber optics. The 5V power rail will run the other smaller devices, such as the IR sensor, the RGB LED and the control system for the motor. Be very careful when running these two voltages! If there is a mix up, and the 5V power rails is momentarily connected to the 12V power source your RGB LED will shine with the beauty of 10,000 suns, but your IR sensor will burn out, and you’ll have to run to RadioShack to buy another one (like $ 4.99). The higher voltage source will also decide how quickly the DC Motor will run, for example, the motor will run at 6V but for the speed that we want, I suggest 12V. Finally be sure to use 220 ohm resistors to maximize the light of the RGB LED, we want it to shine as bright as possible (without burning it out).

Step 2: Step 2 : 3D Models and Materials

All of the 3D models have been uploaded in AutoCAD Inventor files so that if you'd like to make modification you're free to do so.

  1. Arudino UNO ; $22.00
  2. Small Breadboard and jumper wires; $5.99
  3. Fiber Optics
    1. May be taken from small lamp (what was used in this instructable); $19.99
    2. Or you can buy the fiber optic separately; $9.23
  4. Fishing Wire; $4.70
  5. Small DC Motor; $2.61
  6. 12V Wall adapter; $6.99
  7. 220 Ohm Resistors; $4.17
  8. IR Sensor and Remote; $6.99
  9. MOFSET 40V Transistor; $7.33
  10. RGB LED; $3.09
  11. Epoxy; $6.97

  12. Screw Eye Rings
  13. Small Rubber Bands; $3.73
  14. Dremmel
    1. Dremmel Bits
  15. Small Plastic Box

Step 3: Step 3 : Arduino Sketch

Check out the Arduino sketch, I commented it a ridiculous amount. It should explain all of the parts of the code, and it will even help explain which Arduino pins connect to which equipment pins. If there isn’t something that you understand, please feel free to contact me.

This is the Arduino Sketch, in order to use it, you must have the IRremote.h library, the files which have been uploaded are the IRremote.h files. In order for the sketch to work, you must download all of the files, put them into a folder "IRremote.h" and place them within your Arduino library.

You should copy and paste this code into your Arduino:

* Sketch modified by Enjoying Electronics: Code based off of:

* IRremote

* Version 0.1 July, 2009

* Copyright 2009 Ken Shirriff

* For details, see

* My Information (If something goes wrong, feel free to contact me)

* Roberto Infante

* Student at The University of South Florida

* Chemical Engineering Department

* MakeCourse: Nexus Jellyfish

* This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

*Sketch is going to use the IR Sensor as a control system, once the correct input signal has been received *it will activate the LED RGB to cycle between blue and magenta, this will occur while the dc motor runs. *

*There will be two power rails, one with 5V running through it, and another with 12V going through it

*The 5V will power the IR sensor, the LED light, and will be the control mechanism for the transistor

* *The 12V power rail will be run through the transistor, and power the DC motor.

*It should be noted that the voltage which runs through this power rail will determine how quickly the *DC motor will run * * Lets get started:

The power control to the DC motor is attached to Arduino as so: Base of transistor to pin 2 on Arduino


*******************CODE BEGINS HERE********************

*This will include the library to control, and decode the IR sensor*/


/* The IR sensor's pins are attached to Arduino as so: Pin 1 to Vout (pin 9 on Arduino) Pin 2 to GND Pin 3 to Vcc (+5v power rail) */

int IRpin = 9; IRrecv irrecv(IRpin); decode_results results;

/* The RGB LED pins are attached to Arduino as so: Pin red to pin 3 on Arduino (PMW) Pin blue to pin 5 on Arduino (PMW) Pin green to pin 6 on Arduino (PMW) */ int redPin = 3; int bluePin = 6; int greenPin = 5;

int redVal; int greenVal; int blueVal;

/********************************Void Setup**************************************/

void setup() { //Set up the control system for the motor pinMode(2, OUTPUT);

//These will be the initial values of the RGB

LED redVal = 255; greenVal = 255; blueVal = 255; update();

//This begins the receiver and makes it show up on the serial monitor

Serial.begin(9600); irrecv.enableIRIn();


/*************************Void Update*****************************************/

void update() {

//This will tell the LED to shift colors by turning on blue slowly, then red to make

//magenta, and then turning red off to make blue, and finally turning it all off

analogWrite(redPin, redVal);

analogWrite(greenPin, greenVal);

analogWrite(bluePin, blueVal); }

void color_morph(int* value, int get_brighter) { //this is the code for the color changing

for (int i = 0; i < 255; i++)


if (get_brighter){





} update();

delay(5); //This will set the speed of the LED color changing

} }

/*********************************Main Loop*************************************/

void loop()

//This code will decode whatever the ir remote sends, and show the value onto the serial print monitor


if (irrecv.decode(&results))


Serial.println(results.value, DEC); // Print the Serial 'results.value'

irrecv.resume(); // Receive the next value


/*************************This is the good stuff**************************

/This will turn off the motor during normal activity

digitalWrite(2, HIGH);

/* Now if the top right button is pushed (without holding it down), then this loop statement will activate

* If any other button is pushed then the loop will stop */

if (results.value == 16769565) // this is where you put in your IR remote button #


//this loop will be the one used to activate the LED/Motor

digitalWrite(2, LOW); //LED

// start out at black (all off)

color_morph(&blueVal, 1); //turn on blue

color_morph(&redVal, 1); // turn on to red to make magenta

color_morph(&redVal, 0); //turn of red

color_morph(&blueVal, 0); // transition to black (all off)

//Keep reading the IR sensor during the loop, as the color changes

if (irrecv.decode(&results))


Serial.println(results.value, DEC); // Print the Serial 'results.value'

irrecv.resume(); // Receive the next value




Step 4: Step 4a : Box

  1. We are going to drill a small hole through the box top to run the wires through. This hole should be about ¾”.
  2. We are going to drill a smaller hole through the top right box to run the IR sensor. This hole should be about ½”.
  3. On one of the longer sides of the box we are going to drill the largest hole through the bottom right of the box to run the power wire through. This hole should be about 1”.
  4. We are going to glue the small breadboard onto the bottom of the inside of the box, and screw in the screw eye ring into the middle of the box. The screw eye ring will support the shell, fiber optics, and the motor.

Step 5: Step 4b: Shell

  1. We are going to use small screws to seal the two halves together
  2. The problem that arises is that the two pieces do not match up perfectly due to imperfections in the 3D printing process.
  3. We will then use a small amount of fishing line to tie up the two ends of the jelly fish; I suggest the noose as the best knot to seal them.
  4. To be able to run the wires from the LED and motor through the shell we are going to drill through the top of the shell.

Step 6: Step 4c: RGB LED

  1. We are going to need the LED to be in the middle of the shell, and it should be there even when it is upside down, so we will connect the leads of the RGB LED to jumper (male to female) wires, and then epoxy the connection to the shell head.
  2. Then we are going to be running those jumper wires through the top of the shell.
  3. Test it! Check to see if it works! It’s better to know that something is broken early in the process.

Step 7: Step 4d: Fiber Optic

  1. There are two very important parts that will need to be added to the fiber optics. The first is the gear which will turn the entire thing and the second will be a spacer. It is very important to tie up the end of the fiber optic with a small rubber band in order to not damage any of the individual strands.
  2. The way in which the motor will turn the fiber optics will be through a small rubber band and by gears with smooth edges. So I’ve designed a small ring to go over the fiber optic which we need to epoxy to hold it in place.
  3. Then I ran into a problem, the coefficient of friction of PLA against PLA (we also placed a gear on the motor shaft), so I created a spacer to separate the PLA, PLA interaction and only have PLA against the outer walls of the metal motor.

Step 8: Step 4e: Cage and Fiber Optic

  1. It is important that the tails of the fiber optics are kept together by the rubber bands
  2. Pull the bottom of the fiber optics through the middle hole in the cage.

Step 9: Step 4f: Cage, Fiber Optic and Motor

  1. Solder jumper wires to the motor leads, do this before attaching the motor to the cage otherwise you’ll end up melting half of the cage and having to reprint the cage like I did.
  2. The motor will need a cover for the shaft in order for the rubber band to get a hold of; so I’ve designed a tight fitting cover.
    1. The way which this cover is put on is by heating up the shaft of the motor (make sure your motor doesn’t use plastic gears), and pushing the shaft into the tight fitting, melting the plastic. Then we pull it out, fill the hole with epoxy and push the shaft back into the part.
  3. We will also need to attach the motor to the cage. The motor has to be attached very carefully to the cage, because the two gears have to match up and have the same dimension.
    1. Electrical tape was initially used to attach the motor, and the motor was finally attached using epoxy.

Step 10: Step 4g: Cage, Fiber Optic, Motor and Shell

  1. Be very careful in these next steps, if the solder comes off of the motor, you will either be forced to solder through the plastic gaps (and you’ll accidentally melt the plastic like I did) or redo previous steps.
  2. Next we are going to have to carefully run the wires for the DC motor through the small shell hole which we have already made.
  3. Now we will be fitting the cage into the shell. On the top, around the edges, two small notches have been created, which should fit into two small protrusions on the outside of the center of the shell. It should fit and twist in to secure.

Step 11: Step 4h: Arduino and Wiring

  1. Load the Arduino with the code provided.
  2. Now we can epoxy the Arduino into the bottom of the box
    1. Make sure to place it opposite to the side which has the 1” hole, so that the power cord has room to connect.
  3. Now we are going to do the wiring, follow the Fritzing Diagram in previous sections. It should be noted that the wires from the breadboard to the LED and Motor should be as long as possible, to be able to pull through the shell.

Step 12: Step 4i: IR Sensor

  1. The IR sensor will have to have its pins bent, and taped (or epoxied) to the top of the box, as the actual sensor will poke out of the ½” which we created.

Step 13: Step 4j: Power

  1. Everything is almost put together, check that your wiring is connected correctly (so that when we connect the power source, it doesn’t fry any of the components).

Step 14: Step 4k: Putting It All Together

  1. Everything should be close to be finished. Test all of the parts, and make sure everything works before closing the box. Re-opening the box, and messing with the wires is a hassle to be avoided.
  2. When everything works, and everything looks well, look again.
  3. Finally seal the box, hang it up and enjoy!
Tech Contest

Participated in the
Tech Contest

Make It Glow! Contest

Participated in the
Make It Glow! Contest