The stylish way to blind everyone in the club
As a lifelong fan of Mad Max, I’ve got a soft spot for double rider leather jackets.
I had never had an excuse to own one, until I saw Shih Wei Chieh’s Laser Jacket made for Japanese musician Kazuya Yoshii:
Nothing could be cooler than that. I had always wanted a leather jacket, and I’ve got some experience with lasers, so why not combine the two and make my own?
My plan was to 3D print housings for the red laser diodes, solidly attach them to the leather jacket, build the electronics needed to control the lasers, and power everything with a LiPo battery. Wiring would be hidden in the inner lining of the jacket. I tried to get as much laser coverage as possible: down both arms, across the shoulders and upper back, and the chest. I limited myself to 128 lasers, due to limitations of the microcontroller I used.
A similar project has already been fully documented, which made great reference for my version.
My process was:
The key to this project was sourcing 128 small red laser diodes. Luckily Chinese suppliers produce a standard red laser diode in mass quantities for very cheap ($0.20/ea). I bought 128 of them:
For ease of maintenance I wanted to be able to easily swap out laser diodes without having to cut wires. My preferred connector for these situations is the JST series. In this case, since the lasers are small and numerous I went with the Micro JST PH 1.25:
An Arduino Nano was used as the microcontroller for this project:
Each of the lasers needs a PWM signal to control its brightness. The Arduino Nano only offers 5 PWM outputs, so I needed a way to expand upon this. This was achieved with PCA9685 16-channel PWM drivers:
By grouping 4 laser diodes together (sharing the same brightness amongst them, and keeping them physically close to each other), 32 PWM channels was sufficient to cover all 128 laser diodes. I used 2x PCA9685, one for each side of the jacket.
Each laser diode draws a maximum of 20mA (according to the specifications) at 5V, which means the battery needs to provide 2.56A if every laser is at full brightness. To sustain this, the battery also needs to be high capacity. A LiPo battery made the most sense: they can provide a lot of current for a reasonably long time, and are readily available thanks to the growing popularity of drones and the RC hobby.
The LiPo battery produces 11.1V, but the Arduino and the laser diodes required a stable 5V supply. A BEC (Battery Eliminator Circuit) addressed this:
For safety I used an in-line 3A fuse:
Since this is a one-off project, protoboards worked fine for the circuitry:
The small size of the laser diodes meant M2 screws and nuts were ideal:
And most importantly, I needed a jacket. eBay to the rescue:
(In retrospect, a more expensive jacket would have made sense considering how many hours were sunk into this project…)
Each laser diode is contained in its own housing, with screws and a backing plate to hold it against the jacket:
I printed out enough to make 128:
After soldering and heat-shrinking the JST connectors to each laser diode, I began assembly:
I repeated this a mind-numbing 128 times.
The first step was to mark the jacket with masking tape in all 128 locations. Once I had a good distribution, I poked 3 holes for the screws using one of the housings as a template. Once all the holes were poked, I attached the laser modules:
I repeated this a mind-numbing 128 times, again.
The overall design of the electronics is quite simple. Starting with power, the LiPo battery is hidden in a pocket, along with the inline fuse and an on/off switch:
The power circuit is simple. It takes the 11.1V from the LiPo and splits it off to a 5V Buck regulator for the Arduino Nano, and uses the BEC to power the more-demanding laser diodes:
Each channel of the PWM controller drives a transistor (2N2222) which provides power to the laser diodes. 32 channels in total, across 2 PWM boards:
The Arduino Nano handles the task of sending an I2C signal to the PWM controllers:
Since there is a lot of exposed metal on the circuits and laser housings, everything was wrapped up with kapton tape to provide insulation:
With 128 lasers spread at various distances, I needed a way to keep the wiring from getting tangled. The simplest solution was to create braids to contain the wiring for groups of lasers which are in close proximity to each other:
Clearly this jacket should not be worn at an airport or other security checkpoint.
I was now ready to program the Arduino Nano to control the lasers. The simplest thing would be to have every laser driven at full power, but I took the opportunity to program some animations by controlling the brightness of individual groups of lasers.
There is one lighting effect which gives me the chills each time I see it. Fluorescent preheat flicker:
To recreate this effect, when the suit is turned on the lasers flicker preheat-style before reaching full intensity:
Another lighting effect that works nicely is a sparkling effect, where lasers fade in and out randomly:
With multiple lighting effects available, a joystick was hidden in one of the pockets so the user could cycle between modes and adjust laser brightness:
Another improvement was to add a small microphone to the back of the jacket for beat detection on any music that is playing in a venue.
The lasers could then be programmed to sync their brightness to the beat. TODO: implement
Additional lighting patterns could be programmed, for example a sweeping pattern that flows from one hand, up the arm, across the shoulders, and down the other arm, before repeating in reverse. TODO: implement
Photos:
Videos: