Introduction: Color Changing Crystal Staff for Cosplay

I made this color-changing crystal staff for my cosplay at C2E2 2017.

Step 1: Create the Faux wood staff

Build the staff out of 1/2 inch PVC about 4.5 feet long.

Ruffed up the surface using a coarse sandpaper and a rasp. Stain the staff a walnut brown using Rust-oleum fast drying wood stain.

Step 2: Create the color changing crystal

Use an arduino nano, three resistors, and two RGB LEDs to make a random color generator.

Attach the LEDs so they shine into a quartz crystal and attach to one end of the staff.

Step 3: Add power source

Attach the + power cable to a stack of rechargeable AA batteries using a rare earth magnet.

Attach 8 batteries together using rare earth magnets between them.

Attach the - power cable to the end of the stack of AA batteries using a final rare earth magnet.

Seal the end using a rubber stopper.

The staff continues to work for many hours.

Step 1: Create Faux Wood Staff

Create the faux wood staff using the technique:

Instead of using Artisian oil, you can use Rust-oleum wood stain, dark Walnut

Step 2: Create Color Changing Crystal

Add an Arduino Nano, three 220 ohm resistors, and two RGB LEDs as shown in the figure.

Upload the following code:

int red = 11; //this sets the red led pin
int green = 10; //this sets the green led pin
int blue = 9; //this sets the blue led pin

int redNow;
int blueNow;
int greenNow;
int redNew;
int blueNew;
int greenNew;

void setup()
{ //this sets the output pins
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);
  redNow = random(255);
  blueNow = random(255);
  greenNow = random(255);
  redNew = redNow;
  blueNew = blueNow;
  greenNew = greenNow;

#define fade(x,y) if (x>y) x--; else if (x<y) x++;

void loop()
  analogWrite(blue, blueNow);
  analogWrite(red, redNow);
  analogWrite(green, greenNow);
  redNew = random(255);
  blueNew = random(255);
  greenNew = random(255);
  // fade to new colors
  while ((redNow != redNew) ||
    (blueNow != blueNew) ||
    (greenNow != greenNew))
    analogWrite(blue, blueNow);
    analogWrite(red, redNow);
    analogWrite(green, greenNow);

Insert the NANO into the staff and hot-glue the LEDs to a quartz crystal (and the crystal tot he staff) and add decorative twine.

Here are a few places to purchase the quartz crystal:

Be sure to attach long wires to the power leads since we will power the device using batteries in the next step.

The staff will change colors randomly once power is applied. The imperfections of the crystal allow colorful shafts of light to shine through. Some of the random colors are shown.

Step 3: Add Power Source

To power the Arduino and Crystal, use 8 rechargeable batteries connected to the + and - pins shown in the previous Step.

Attach a length of fishing line to the '+' wire so you can pull the stack of battery back out of the staff when you need to recharge the batteries.

Connect the '+' Positive wire to the first battery by using the rare earth magnet to connect the wire to the Positive end of the battery.

Add a rare earth magnet to connect and hold each subsequent battery in place as you press the 'battery train' into the staff.

Connect the '-' Negative wire to the bottom of the last battery also using a rare earth magnet.

You should see the crystal light up.

Press the batteries into the staff and secure the bottom using a rubber stopper. Be sure to allow a small length of the fishing wire to protrude so you can remove the batteries when needed.

This set up worked well for me at C2E2 2017 and powers the staff for at least 24 hours straight.

Best Wishes.