November 2012

Notes from My Halloween Electronic Mask Build

I was inspired by Phil Burgess' great electronic mask project and knew I had to build one of my own.  The project is detailed in a combination of Adafruit tutorials on Animating Multiple LED Backpacks and the Wave Shield Voice Changer.  I thought I'd relate my experiences in building and using the mask.  Overall, it was a lot of fun.  I accompanied my daughter to a few houses on Halloween night -- visibility wasn't so good at night so I followed closely behind.  Visibility is much better in a well-lighted environment like our house.  I answered the door for trick-or-treaters for about an hour with the mask and got some awesome reactions and comments.  I've included a couple videos below.
 So onto the details of the build.  I started with a Male Blank No Face Mask that I bought on Amazon.  I used two of Adafruit's 1.2" blue 8x8 LED Matrices for the eyes and a set of three 1.2" red 8x8 LED Matrices for the mouth.  As in the tutorial, I hot glued the 3 mouth matrices together in a strip.  The pressure of the outer mask tended to break the bonds and I ended up re-gluing one of the mouth matrices a couple of times.  At first I hotglued the matrices to the mask but I found that wire worked much better.  I used a drill to make a couple small holes above and below the eye matrix mounting locations and above and below the sides of the mouth.  I threaded hookup wire through the mounting holes on the LED boards and twisted it together inside the mask -- taping over the wire on the inside with masking tape.  This really helped the matrices to stay in place.  I thought about combining the 4 wires to the mouth but then ultimately decided it would be less tricky to follow the tutorial and run individual ribbon cables to each of the mouth matrices.  I followed the addressing of the matrices used in the tutorial but ultimately had to modify the software because the address pads on the displays had a couple of the pads flipped.  Initially, I didn't protect the addressing pads with hot glue as Phil had and eventually ran into the same problem he had where the moisture in my breath shorted the pads.  So I wiped them off and put hot glue over the address pads and all was well.  Sometimes the mask would slip down my head underneath the outer black morph mask.  So I stapled a strip of webbing to the top of the mask so i could pull the webbing downward on the back of my head to raise the mask.  It turned out that the webbing actually prevented the mask from falling in the first place so the problem was solved.  The wire lengths in the tutorial turned out pretty well but I should probably have made them slightly longer since I'm fairly tall and I was wearing the electronics as a belt pack.  I didn't plan ahead enough on the microphone and ended up splicing in a longer piece of wire to get additional length for that.  I ultimately placed the microphone in the bottom of the mask using a staple to secure the cable.  I should have put some plastic wrap over the microphone to protect it from breath moisture as well.  Ultimately, as the microphone got wet, the voice change effect diminished and the animated mouth tended to be more open by default.  I'll make that adjustment next time I wear it.
For audio, I used a rechargeable amplified speaker I had on hand.  I've since acquired a cheaper non-bluetooth speaker which should work well also.  Ideally I could have built an amplifier onto the shield so I would only have one battery to recharge.
I used an Arduino Uno with a Wave Shield on the second level and a custom Proto Shield on top.  The Proto Shield used a terminal block to bring in regulated 5 volt power to the stack.  I included a potentiometer for adjusting voice pitch.  I allowed room to add an angle header to support a keypad but haven't installed that yet.
For power I used a rechargeable 6-cell NIMH pack (in this case a high-capacity 5 AH pack) fed through a Pololu step-down regulator.  I use this same set up for other projects like powering the Raspberry Pi with strands of LED ribbon as in the LightScythe project.  This amount of power is overkill for this project -- I estimate it would power the mask for about 10 hours between recharges.  The mask draws about 460mA on startup and averages pretty close to 400mA to a bit more when the mouth is lit up when you're talking.  So overall, it's less than 500mA.  I was having trouble with thermal shutdown on the regulator if the regulator was kept in the belt back so I looped it outside the belt pack to give it more ventilation and it worked continuously with no issues.  When using a regulated set up like this, I can feed 5V straight to the LED matrices and also to the Arduino without a problem.  If you don't use regulation in the supply like this -- don't try to feed the Arduino 5V line directly as it bypasses the onboard regulator.
Putting on the mask itself is a little challenging.  I used a morph mask I bought on Amazon (making sure it shipped from a local firm with stock on hand since I needed it quickly).  My procedure was to put the belt pack on first with the Arduino stack in the inner pocket and the battery in the outer pocket.  As mentioned, the regulator was looped outside the pack for cooling.  The rechargeable speaker was attached and the pockets in the belt pack were left open.  I then put the mask itself on.  Then I carefully put the morph mask on making sure to cover the displays with my hand as I stretched the mask over my face so the matrices wouldn't snag on the morph mask.  Once that was done, I donned a black turtleneck to cover the wires and the belt pack.