The Lightsaber (Arduino Prop)
Inspired by the upcoming release of Star Wars: the Force Awakens in 2015 I got together with a group of engineering friends to create a custom prop lightsaber.
My friend John was the financier for the project and he designed the handle and chose the other design specifications for the prop. Mark (mechanical engineer) was responsible for 3d printing components and constructing the shell of the handle. I designed, coded, and assembled in internal electronics, lighting, sound, and effects of the lightsaber.
We took our inspiration from Hasbro’s force fx lightsaber series. The saber handle was constructed from galvanized steel piping with 3d printed decorative pieces which were glued to the pipe base. The “blade” was a hollow polycarbonate tube with custom end cap which we purchased from a company in Idaho which creates tubing specifically for this type of prop building. We used an addressable LED lighting strip inside the tube for the blade glow.
Internal electronics I used to run the effects of the prop were a 5V ATmega328 on an Adafruit Pro Trinket breakout board, easy to program, powerful, and small enough to fit in the handle. We had an internal speaker attached to the bottom of the handle for sound effects. Sounds were bit-streamed directly from an SD card, through the microprocessor, to the speaker using one of the chip’s PWM outputs. Because no sound decoding was needed it was very convenient for the microprocessor to bit bang the PCM data from the SD card directly to the speaker, and it allowed us to use high quality sound files at decent bitrates because the audio data was read off the micro SD card directly and not from internal RAM (which was already at its limit). The final sound effects were nice and loud, and sounded way clearer than the force fx lightsabers in my opinion.
The lighting effects were achieved with an addressable RGB LED lighting strip from Adafruit. Adafruit provides really simple libraries for programming their LED strips which made it simple for us to add one of the features we really wanted, that the force fx lightsabers don’t have, the ability to change the blade color. I was able to program a nice list of colors (with the ability to easily add more) into the microprocessor which could be cycled though by holding down the on/off button and entering ‘color change’ mode which allowed the user to cycle through all of the colors we programmed. Adafruit’s libraries also made it really easy to program the startup/turn-off color wipe of the blade, and time it to the sound effects. I also programed in subtle random blade flicker that looked cool and really sold the effect.
The final feature, which unfortunately never fully saw the light of day by the movie’s release, was the built-in motion sensors which were supposed to trigger the “clash” and “hum” sound effects when you moved the blade around. The movement sensors stopped working once they were installed in the handle, and I never went back to figure out why after the movie premiere night.