Who needs an amplifier when you’ve got a million volts to work with?
Introducing Tesla Hero, an RGB LED adorned Guitar Hero Controller interfaced with a Dual Resonant Solid State Tesla Coil (DRSSTC). That’s right, Guitar Hero on a Tesla Coil. It was only a matter of time.
Tesla Hero comes in many parts. The guitar, the fiber-optic transceiver and the DRSSTC. The original idea came to me several hours before an event for the local Childrens Museum of Panama City. The event was a gala to announce the new science programs and the name change to ‘Science and Discovery Center’. The Science Brothers, my alter ego, (a program designed to inspire elementary students to peruse STEM careers, click for more info) were invited to bring some crazy experiments for the guests. It was easy to bring my DRSSTC, but I wanted to change it up and give the guests a way to interact with the coil. The idea hit me, and a few hours later, I had a breadboard setup running with an Arduino, my PS2X library, and a wireless guitar. I even had some RGB LED strips going via a TLC5940 and library.
The party started and the ‘Million Volt Guitar’ was a hit. The guests loved it and I even made it in the newspaper the next day. (As always, click a photo to enlarge)
Me and my trusty DRSSTC
The setup ran for about an hour before completely burning out. It was obvious the proximity to the DRSSTC and the lack of isolation where to blame. O well, not bad for a few hours prototype.
I realized the idea was still gold. What a way to get kids excited, a video game controller that controls over a million volts of electricity! So I set out designing a system from the ground up. Unfortunately, funding for the science program is stalled, so like most of my contraptions I’m footing the bill personally so cost is a concern. First a way to combat the isolation problem. I had never played with fiber optics before, but it was an obvious choice. I found a very cheap fiber optic link kit and designed a board the would translate the DRSSTC control pulse train from fiber to electric signal. I also added a Duty Trip Protection circuit that acts like a circuit breaker of duty cycle. If the overall duty cycle of the control pulse gets too high, the transceiver will trip out and stop sending pulses to the DRSSTC. This is to protect the coil from burning out in the case the ‘controller’ on the other end of the fiber malfunctions.
The next part was the guitar. I looked at Guitar Hero Controllers for a while before settling on a model that offered both a wired and a wireless interface. This means I’ll be able to use the same guitar for this, and my Color Fire Hero display. (Teaser post here till I get that fully documented.) I opened up the guitar and with my voltmeter in hand reverse engineered the signaling for the PS2 interface. I had a PCB made that includes an ATmega328 and supporting hardware, and some MOSFETs for hi current LED control. When the board arrived I realized I made a terrible mistake on the fiber optic LED driver circuit. I used a circuit meant to be driven by an open collector output. An output pin of an AVR is not open collector, it is a push-pull output. This means should the pin ever be configured as an output and set high, it would destroy the transistor driving the fiber optic LED. O well, the price you pay for rushing. I could have left it that way and switched between output low and input/hi impedance mode when creating the PWM signal, but I was too worried about messing up the code and destroying the transistor so I did a little hot wiring of the PCB board to correct the problem.
Aside from the PCB issues, I also cut up some RGB LED strips I got from eBay for a great price (click for store) and added them to the outside of the guitar’s body. Inside, I added my custom PCB running Arduino firmware, moved the PS2 control wires from the external plug to my board, and added 3 18650 Li-Ion batteries and protection board just like my DIY Li-Ion battery packs. That should give me enough power to rock my way through many shows before recharging.
The programming was rather simple, it reads the guitar in a way similar to the video game; a color ‘note’ button has to be held and the strum bar strummed to generate a given note. The firmware generates 1 of 5 notes from a single octave based on what note is being held. Unfortunately, I can only send monophonic notes to the DRSSTC, so if multiple buttons are being held, only one note gets played. The RGB strips will change color to match what button is being held down or if the controller is idle, will display random colors.
The proper thing to do would be to generate the PWM pulse train in the background using interrupts and timers while reading the controller in the foreground, but I was lazy and quickly implemented everything in the foreground. It works, but does have some responsive lag. Before school starts and I hit the road again, I may take the time to do it properly.
I warn everyone that my musical ability is inversely proportional to my hacking ability so the first video is rough. I am going to have to practice more before going in-front of hundreds of elementary students, but none the less, I think it’s perfect to spark the interest in these kids. Even ‘Mary had a Little Lamb’ sounds better when played via Guitar Hero and a Tesla Coil. I had my good friend Royce give it a little animation magic to make up for my poor performance.
All my designs and source code are available for download below. I’ve already corrected the open collector design mistake, and another problem where I made the lead holes too small for the fiber optic parts. I warn you, the source code is messy and not commented. I’ll get around to doing that someday.
Well, that’s it. I can’t wait to pull this out next time I’m on stage, I have a feeling the kids will love it!
The PCBs were fabricated by DorkBotPDX service.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.