Monday, June 9, 2014

Special Project -- Kaleidoscope Goggles Wrap-Up

Some good news -- my gauges arrived today so I can revisit Experiment 2. I don't want to continue with Experiment 4 until I've gone back and shot some video with these little analog gauges, so I'll try to get that done tonight or tomorrow.

In the meantime, I finished up my Kaleidoscope Goggles... and they are SO COOL! (To a geek, obviously... not sure what the rest of the world will think.) The kids at my basic electronics camp next week should find them very eye-catching. The soldering and programming will be a bit beyond most or all of them I imagine, but my plan is to show them a bunch of electronic gizmos and gadgets to inspire them to learn as much as possible during the week AND to continue learning when the camp is over.

Putting the first NeoPixel ring into the goggles.
If you want to try your hand at this, I give it a 7 on a 1-10 scale, with 10 being somewhat complicated. I was constantly testing the circuit every step of the way -- the Trinket and NeoPixel rings aren't super-expensive, but I really didn't feel like having to order anything extra if I burned something out... so patience is the key here! I'm going to toss in some photos and explain how my assembly differed a bit, but if you tackle this do it however you wish... don't follow my example unless you just like my final solution.

The controller for this little gizmo is the Trinket device. It operates in a similar manner to an Arduino -- you even plug in a mini-USB cable to upload programs to it. I'll tell you right now... I got into trouble getting this thing setup initially, but Adafruit's forums help set me straight. If you follow the instructions verbatim (here), you'll most likely find yourself trying to install something called AVRDude and configuring various files. FORGET IT! When the instructions just tell you to read the Trinket Tutorial, do NOT go down that AVRDude installation and configuration route. Just install the all-in-one package and then move straight to the Arduino IDE installation. I did do the manual configuration to add the Trinket files after I'd installed the Arduino IDE, but you don't even have to do that apparently. Just get the Arduino IDE talking to the Trinket and then upload the Blink sketch (program) and make sure the red LED light blinks on and off continuously. If it does, you're good to go with wiring up the entire thing to test before putting in the goggles.

The solid core wires makes it easy to follow a curve.
As I mentioned in a previous post, I first wired up the entire circuit without the goggles... it was a real pain, but it did assure me that all the components were working before being put into the goggles. Any errors in the goggles would most likely be mine. Skip this part at your own risk.

After ensuring all components worked, I drill two holes in the black plastic goggles (also purchased from Adafruit). I drilled these where your nose would be located if you were actually wearing the goggles. These are NOT to be worn over the eyes, but instead over the eyebrows. They're just for show... do NOT put these LEDs anywhere near your eyeballs.

I don't know what kind of wire the Adafruit team was using, but I chose two colors -- black and green -- at either 20 or 18 gauge solid core, not braided. I did this because I like how solid core wire holds its shape when you bend it. I felt this would be useful when running the wires around the inside curves of the goggles, and I was right! Completely easy to carefully route them around the curves and through the two drilled holes.

Soldering up the second NeoPixel ring.

I stripped the wires that would be soldered to the rings and the Trinket to about 1/16" -- maybe a little longer. A tiny bead of solder for each wire and the rings and the Trinket had all their wires connected and ready for the circuit to be closed. BUT... before I did that, I stripped all the wires -- a 5V and GND from both rings and a 5V and GND from the Trinket... six wires in all! These went into a breadboard and jumper wires helped connect them to their respective 5V or GND. I turned on the power and verified I had animation. Once that was confirmed, it was time to route the wires out of the goggles, behind the elastic band, and to the small 3xAAA battery box.

Hot glue holds rings and Trinket in place.
I chose black and green wires because I felt red would be too noticeable. I also routed the wires coming out of one nose hole and into the other nose hole so they hide behind the bridge of rubber holding the two halves together. You can barely see the black and green wires. Hot glue was used to hold the rings in three point AND two dots of hot glue held the Trinket at a slight angle in the left half of the goggle. Remember -- you're not wearing these over your eyes, so the Trinket isn't going to be seen by you or anyone else. Be careful with the hot glue... try to put it where the mounting holes are for the Trinket if possible to avoid getting it on any of the tiny components.

I used three thin black zip ties to create loops for the six wires (two each from the rings and the Trinket) to feed to the middle of the elastic band and then soldered to the two wires from the battery box that will hang on a string around my neck and hidden from view. I was VERY liberal with shrink tubing. Every 2-3" I'd put on a 1/2" length of black shrink tubing on the two longer wires going down to the battery box.

All finished!
After flipping on the power, the goggles worked. Woo Hoo! The only issue was I didn't care for the random sparks generated for 10 seconds and followed by loops of color for 10 seconds. The cycle went Red Sparks, Red Loops, Green Sparks, Green Loops, Blue Sparks, Blue Loops. I just want Green Loops for now, so I modified the program so it only does green loops. You can download that modified program here -- a comment is included on the line where you set the initial color with the hex code for both red and blue if you want to change the color.

The only thing that is left is to clean the lenses of hot glue and add either some vellum paper over the lenses to soften the LED shine... there's a glass shop near my house that I might pay a visit to see if they can just create me two 50mm frosted glass lenses that can be inserted by themselves to replace the two-layer glass pieces that come in the lenses. (The goggle lenses unscrew from the front, so it's easy to pull out the glass.)

I'm quite happy with the final results as you can see in the video below... any questions, just ask.

Up next... revisiting Experiment 2!    



  1. Hi,

    I wonder why did you go for the Trinket, and not for something like this? “Pro Mini Module Atmega328 5v 16M For Arduino Compatible"

  2. That little device might just work, and at almost $4 plus free shipping, it's impressive. The reason I chose the Trinket was basically because I was already ordering the NeoPixel rings from Adafruit and the instructions were already written for the Trinket. The Trinket cost a bit more, but the instructions made it so easy to finish the project and I was already paying for shipping for the rings and goggles. I like eBay for some things, but only when I can group order together like I did with the two gauges.