Enhance a simple rubber hand puppet with MONSTER M4SK eyes and voice changer!
By snapping the MONSTER M4SK in half (safely!) and joining the halves back together with the 9-pin JST SH cable, you can place extra awesome eyes on a rubber hand puppet, such as the dinosaur shown here. And, the PDM microphone and audio output allow us to run voice changer code for extra puppeteering fun!

Parts Used

MONSTER M4SK DIY Electronic Face mask.  Two Screens Display Eyes that blink and dart up and down.
Peep dis! Have you always wanted to have another pair of eyes on the back of your head? Or outfit your costume with big beautiful orbs? The MONSTER M4SK
Out of Stock
Adafruit PDM Microphone Breakout with JST SH Connector
An exotic new microphone has arrived in the Adafruit shop, a PDM MEMS Microphone! PDM is the 'third' kind of microphone you can integrate with electronics,...
In Stock
Angled shot of STEMMA QT / Qwiic JST SH 4-pin Cable.
This 4-wire cable is a little over 100mm / 4" long and fitted with JST-SH female 4-pin connectors on both ends. Compared with the chunkier JST-PH these are 1mm pitch instead of...
Out of Stock
Convex Plastic Lens with Edge
The eyes have it! Add this little lens to make a big expression with our Spooky Eyes demo for microcontrollers or Raspberry Pi. These are plastic lenses, with brilliant clarity and a...
In Stock
You'll want to get two of the lenses
Lithium Ion Polymer Battery 3.7v 420mAh with JST 2-PH connector and short cable
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This...
In Stock
Stereo 3.5mm Plug/Plug Audio Cable
This basic cable comes with two 3.5mm (1/8" headphone jack size) stereo connectors. It's fairly straight forward, you'll commonly need these to connect two audio devices...
In Stock
Two square-ish USB Powered Speakers
Add some extra boom to your audio project with these powered loudspeakers. We sampled half a dozen different models to find ones with a good frequency response, so you'll get...
In Stock
Black Nylon Screw and Stand-off Set with M2.5 Threads, kit box
Totaling 380 pieces, this M2.5 Screw Set is a must-have for your workstation. You'll have enough screws, nuts, and hex standoffs to fuel your maker...
In Stock

Materials & Tools

In addition to the parts above you'll also need:

  • Rubber hand puppet, such as this dinosaur
  • Diagonal cutters
  • Safety glasses/goggles
  • Hobby knife
  • Awl
  • Small scredriver
  • Depending on the puppet you use, you may need different hardware fasteners. I used M2.5 x 16mm socket head screws and nuts for the raptor


You should be familiar with the basic setup of the M4 Eyes project based on the most excellent Adafruit MONSTER M4SK guide Quickstart. Before you proceed with making your own eye pattern texture maps, be sure you've got the M4Eyes.UF2 working properly using the default Hazel eyes graphics.

As terrifying as this may seem, the first thing we're going to do is BREAK the MONSTER M4SK! It's going to be OK, though -- It was designed to be broken! That's what those little perforations on either side of the bridge are there for. We promise!

The MONSTER M4SK will not boot up just one half of the board, so be sure to plug them together with the 9-pin cable! Want a single eye board? Check out the HalloWing M0 or HalloWing M4.
Note, you'll lose the capacitive touch nose booper capability in the process. But, other than that, by reconnecting the two halves of the board with the 9-pin JST-SH cable, everything else will work exactly the same as before.
Wear eye protection when cutting the PCB, as sharp piece can fly off at high velocity.

Cut the Bridge

Using diagonal cutters, snip the perforation starting at one end, then flip the board around and finish the cut.

Then, trim the bridge from the other side as well, using the same procedure.

Plug it In

Next, use the 9-pin JST-SH cable to reconnect the boards.

Note, while each end of the cable is identical, the plugs have polarity and can only be plugged in one way to the board connectors. Don't force them in if they aren't plugging in easily, just flip them around and try again.

Try powering the M4SK and turning it on now and you should see it running just as normal! Here, I've got diagnostic code running, but you should see the eyes that ship on the M4SK.

Battery Power

Using double-stick foam tape, secure the LiPoly battery to the back of the MONSTER M4SK's right eye board and plug it in.

Depending on your plans for the M4SK, you can now add lenses and lens holders, put on some eyeball .UF2 code, maybe customize the eye graphics as shown here.

For the hand puppet, we'll go about it a bit differently, so no need for the lens holders.

This used to be a separate program…it now works together with the eyes! This requires the following:


The PDM microphone connects using a tiny 4-pin cable to the “PDM MIC” port on MONSTER M4SK — it’s near the reset button. You can optionally fashion a pop filter over the mic using a little fabric or foam, it’ll probably sound better.

Connect an audio cable from MONSTER M4SK headphone jack to the aux input on the powered speaker.

The voice changer is off by default! It saps a fair bit of compute cycles (anywhere from about 25 to 50 percent…with a corresponding drop in eye animation frame rates) so you’ll have to turn this on only if you really want it. To do so, you'll add a line to the config.eye JSON file on the root level of your MONSTER M4SK. Use:

"voice" : true

to enable the voice changer. See the link below for an example config file that's been set up with voice changer parameters. Add a trailing comma if it’s not the last line.

There are three buttons along the top edge of the monster’s left eye. Tapping the inner button (the one closest to the nose) raises the pitch by 5%. Tapping the outer button (near the corner) lowers the pitch by 5%. Tapping the middle button resets the pitch to its default.

The default pitch is set with the pitch keyword. This is a floating-point value, where 1.0 is normal (voice is passed straight through, no change), 2.0 will double the frequency (raising the voice by one octave), 0.5 will halve the frequency (lowering by one octave).

pitch can be from 0.4 to 4.0…but the actual usable range where you can still understand things is a bit narrower, perhaps 0.6 to 2.0…you’ll want to experiment a bit to find a setting that achieves the desired effect with your own voice.

Microphone gain (sensitivity) is set with the gain keyword. If installed in a mask and you need to adjust the microphone to compensate for its placement relative to your mouth, use this with a floating-point value where 1.0 is “normal” sensitivity, 0.5 is quieter by half, 2.0 is double the loudness and so forth. There are limits to what can be done here, you may want to experiment a bit with this setting and the volume of an external amplified speaker.

Don’t shout! Speak in a normal to soft voice, let the speaker take care of amplification. This helps the “weird” voice be heard over your own.

Similarly…speak at your normal voice pitch and let the voice changer do its thing. You don’t need to make a funny voice.

Need a Dalek voice effect? With the voice changer enabled as described above, also add "waveform" : "sine" to enable this effect, which applies a 30 Hz sine wave modulation to the pitch-adjusted voice — same as used for the original Dr Who Daleks. You can try other waveforms ("square", "sine", "tri" and "saw" are all supported) and other modulation frequencies ("modulate" : 100 for a 100 Hz modulation wave)…but, to be perfectly honest…this all turned out a bit disappointing, the feature is only left in there because the 30 Hz Dalek modulation was spot-on. With some experimentation with different pitch and modulation settings you might also get a passable “Chicken, fight like a robot!” voice from Berzerk, if anyone even remembers that one.

Example Config.eye File

  // Doom-spiral eyes with voice changer
  "voice"          : true, //Turns on voice changer
  "waveform"       : "sine" , //Modulates voice with sine wave
  "modulate"       : 55 , //Modulation wave freq. in Hz
  "eyeRadius"      : 125,
  "eyelidIndex"    : "0x00", // From table: learn.adafruit.com/assets/61921
  "irisRadius"     : 125,    // Iris = whole eye!
  "pupilMin"       : 0,      // Pupil is always 0 size
  "pupilMax"       : 0,
  "pupilColor"     : [ 255, 255, 169 ], // Shouldn't show, but just in case
  "scleraColor"    : [ 255, 0, 0 ],
  "backColor"      : [ 255, 0, 0 ],
  "irisTexture"    : "doom-spiral/spiral.bmp",
  // The doom-red and doom-spiral eyelid bitmaps don't fully close.
  // This is to give the IMPRESSION of a blink without actually blinking,
  // so human eye behind is hidden better when doing Pepper's ghost trick.
  "upperEyelid"    : "doom-spiral/upper.bmp",
  "lowerEyelid"    : "doom-spiral/lower.bmp",
  "left" : {
    "irisSpin"     : 80    // Rotate iris @ 80 RPM
  "right" : {
    "irisMirror"   : true, // Flip spiral image
    "irisSpin"     : 70    // Slightly different speed for weirdness

Tips for using the Monoprice 5-Watt Guitar Amplifier

I have a love/hate thing with this speaker. On the plus side: it’s pretty inexpensive, is rechargeable, and is slim(ish) and clips to one’s belt or a lanyard, making it handy for costume use.

It’s really designed for guitar use and MP3 playback (from microSD card) and there’s some hoops necessary to get it to pass through audio undistorted…

  • Connect MONSTER M4SK to the AUX phono jack (center of three), not the MIC input.
  • After powering on, wait a moment and then press the “M” button to pass through audio.

You can see in the photo that I’ve labeled mine and highlighted the correct jack and button…I use it infrequently and forget this ritual (also helps when others are borrowing it).

This is not an Adafruit product and we do not provide support. Please check with Monoprice if you encounter trouble.

How you approach this will vary, depending on the particular puppet you use. The basic idea is to remove the existing eyes, add in the MONSTER M4SK eyes, and incorporate the microphone, all while maintaining access to the on/off switch, the three buttons used for voice pitch shifting, and the USB port for charging or changing your code/graphics.

Neck Incision

To begin, I needed to open up the puppet neck in order to access the inside of the puppet -- it was clearly designed for very tiny hands!

I decided to use my raptor as a display bust instead of a hand puppet, so I don't necessarily need to re-join the split later. If you choose to use yours as a puppet, you can fasten the opening later with adhesive backed Velcro.

Please be very careful with cutting implements and hole punching. Young makers should seek help to avoid injury.

Eye Openings

Next, I marked and cut holes for the M4SK lenses/eyes.

Use a hobby knife to remove the existing eyes. Horrifying, I know.

Mounting M4SK Holes

You could decided to glue the lenses internally, but I chose to mount them with screws from the outside, going through the mask and then into the M4SK mounting holes to sandwich it all in place.

I used the acrylic holders as a hole template, but decided not to use the holders themselves in the final build -- Note: In the end, and upside-down orientation worked best for fitting the M4SK to this particular puppet, so I should have marked the holes with the lens holder in that orientation. It worked out in the end because the rubber is very forgiving of poking new holes where you need 'em!

Create the holes using an awl or thin screwdriver.

M4SK Placement

Here you can see how the upside down placement of the M4SK works.

Push the three screws through from the outside, then place the lens into the socket.

Fit the M4SK half in place, sliding the three screws through the mounting holes, and then fasten them with the nuts.

This upside down orientation give us plenty of clearance for plugging in the audio output cable as well as USB for charging and coding!

Microphone Placement

With the PDM mic breakout board plugged into the M4SK, mount the mic board using a screw and nut as shown here.

Your raptor is ready! Turn on the MONSTER M4SK, and plug the 3.5mm jack into an amplifier using a stereo cable. Lean in a bit and speak into the microphone -- your pitch shifted, modulated voice will provide hours of fun!

You can also experiment with different pitch shifts using the up and down buttons on the M4SK, as well as different modulation waveforms and frequencies in the config.eye file.

Enjoy your new dinosaur pal!

This guide was first published on Sep 30, 2019. It was last updated on Sep 30, 2019.