Introduction: 3D Printed Destiny Ghost Light With Arduino Uno

For a project, I decided to create a night light based on the Ghost from the Destiny video games. I based this off of another Ghost Instructable ( that I made some modifications to. This version of the Ghost is controlled by an Arduino Uno and push button sensor. Shout out to Onyx Ibex and JamesP8 for their awesome Ghost projects.


Let's break this down. For the circuit, you'll need:

An Arduino Uno

A breadboard

A push button

1 10k ohm resistor

1 blue LED

A 9V battery

A 9V battery holder (I used a snap style holder.)

Some wires

Some solder

A soldering iron

For the Ghost itself:

A 3D printer (I used a Creality Ender-3)

PLA filament

Acrylic paint (black, yellow, and orange)

Scotch tape

Super glue

Once you've got all the supplies, it's time to get to work.

Step 1: 3D Printing the Ghost Components

I got the Ghost model off of Thingiverse (

When you go to print, be sure to print off two copies of GhostBody.stl and one copy of GhostCenterOpen.stl. To open these models, I used a free program called Ultimaker Cura (download link here:

I didn't change anything with the Ghost model, and it didn't require any special setting changes to print. I used genericPLA filament, 20% infill, and 0.6mm nozzle size. Be mindful though; this print takes awhile to complete, so don't wait till the last minute to get it started!

Step 2: Painting the Shell

After the Ghost shell is finished printing, start warming up that soldering iron. If you didn't edit the files (like me), then you'll need to melt a hole in the bottom half of the Ghost center. Run your iron along the rectangular indentation until you reach the other side. Widen the hole as needed; I had the LED with me so I could make sure the hole was big enough for it to fit. Be sure to have a wet sponge nearby. PLA melts easily, but it hardens fast, so make sure you don't ruin the tip of your iron!

Once you've melted a good-sized hole, it's time to begin painting in earnest. Paint the four components of the Ghost center black. It dries pretty quickly, so you can do multiple coats without having to wait too long.

For the outer shell, I painted it in the style of the original Ghost shell from Destiny 1, but you're welcome to spice it up a bit. A good bit of advice is to have a wet paper towel or baby wipe nearby in case you mess up your paint.

While your sweet paint job is drying, it's time to focus on the coding and circuitry.

Step 3: Coding Your Push Button LED

In case you haven't done it already, download the Arduino IDE.


The code for the push button LED can be found here.

This code should allow you to turn on an LED with the press of a button, and turn it off again with another press.

Once that's out of the way, it's time to build the circuit.

Step 4: Building the Circuit

The circuit schematic can be found here on Step 2.

Now, this is where I modified the build a bit. Instead of plugging the LED directly into the Arduino, I soldered the LED to two long wires that connect to GND and pin 13. That way you don't have to shove an entire Arduino into the Ghost; you just push the LED through the hole you melted earlier.

This circuit runs on 9V batteries, so you shouldn't have any trouble finding replacements.

Step 5: Assembling the Ghost Center

Now we superglue. Take the cylinder and melted half of the center and glue them together. For me, the 3D printer created some ring patterns on the inside of the melted center, so I glued the cylinder to the second ring.

Give that a minute or two to dry, then place the cylinder half inside of the ball half. Glue the bottom half of the center to the bottom of the ball half.

While that dries, layer some scotch tape on the Ghost's eye. This helps diffuse the light and make it more aesthetically pleasing. To test the tape's light diffusion, I shined my phone's flashlight through the eye.

Once you've taped the eye to your satisfaction, glue the eye to the opening on the ball. If you want a sneak peek of what the finished product is going to look like, poke the LED through the hole in the back of the center and power it on.

Step 6: Gluing the Outer Shell

Now it's time to bring it all together by gluing on the outer shell. Place the glued center in the circle-shaped hole of one of the shell halves and superglue the two shell halves together.

(I placed the Arduino and breadboard in an old earrings box, but feel free to do what you want with the circuit.)

Now you've got your own Ghost companion!

After School Challenge

Participated in the
After School Challenge