Create a growling, barking Fizzgig puppet with a moving mouth and LCD animated eyes. He's fierce and fancy, with sound effects and movement, and he's surprisingly easy to build. The Monster M4sk board does all the work.

Installing software is as easy as copying and pasting a few files. Then, plug in a servo, speaker, and hook up a trigger button, and you'll be growling at passers-by and protecting all the Gelflings in no time.

This is a great build to do with kids since most of the work is in building the craft-foam mouth and getting his hair just right. Set him up to guard your Halloween candy bowl, or wear him like a stole. Everyone needs their own animatronic Fizzgig.


1 x Monster M4sk
Adafruit Monster M4sk
1 x Acrylic Lens Holders
Clear Acrylics and Hardware Kit
1 x JST 9-Pin Cable
Connector Cable (Optional) for Separating the Eyes
2 x Lens
Convex Plastic Lens
1 x Servo
Micro Servo with 3-pin JST Connector
1 x 3-PIn Connector
Connector for the trigger button
1 x Button
Tactile Switch Button
1 x Breadboard
Half-sized Breadboard (if you don't want to solder the button)
1 x Battery
If you want him mobile! Otherwise plug in with a USB cable.

Also Needed

  • Inexpensive long haired wig -- I used this Heavy Metal Rocker one
  • Brown, red and white craft foam
  • A scrap of cardboard
  • Hot glue Gun
  • Krazy glue
  • Small speaker with a mini-jack connector
  • Small screwdriver

If you want to get fancy with your button, you'll also need a soldering iron and some heat shrink.

The speaker can be found online - any small speaker with a mini jack connector should work. Here is a lot more info about the kind of speakers that work well with the Monster M4sk.

The Monster M4sk comes installed with CircuitPython and eyes already loaded. We'll add the Fizzgig eyes and code. Start by downloading the two code packages below.

The file contains all the sound and image files you'll need, and FIZZGIG.UF2 contains all the fancy animatronics code.

Plug your Monster M4sk into your computer via the USB port. Please use a known-good USB cable with data + power wires.

A new flash drive will appear titled CIRCUITPY.

Unzip into a folder called fizzgig and copy it to the CIRCUITPY drive.

Next, take a look at the contents of CIRCUITPY. You should see the fizzgig folder you just copied over. Open that folder and look for config.eye

Delete the version of config.eye that's pre-loaded at the root of CIRCUITPY. Drag the config.eye from the fizzgig folder to the root, replacing the original file.

Press the reset button on the back of the Monster M4sk and take a look at the eyes. Did they turn yellow and fizzgig-like? Success!  Now let's add the code for the mouth.

Double-click the reset button on the bottom of the Monster M4sk. Your CIRCUITPY drive will change to read MONSTERM4SKBOOT.

Drag FIZZGIG.UF2 onto this drive. Once it's done copying, the Monster M4sk will reboot and the drive will change back to CIRCUITPY

That's it, all the code is installed. If you want more info about how this all works behind the scenes, or want to make your own customized behaviors, check out the Monster M4sk guide for all the details (especially the “Building Eyes from Source Code” page).

The wiring is very simple -- no soldering required (unless you want to get fancy with your button). Everything plugs right into the Monster M4sk as follows:

  • Battery: 2 pin JST port
  • Servo: D3
  • Momentary Switch: D2 (outer wires ONLY, clip the middle red wire)
  • Speaker: Mini Jack 

You can also power this project via the USB port, if you want a stationary installation that can plug into the wall.

Plug your speaker into the mini jack port at the top of the Monster M4sk (next to the USB port).

Plug your battery in to the 2-pin JST port on the right side.

Plug your servo into the 3-pin JST port below the battery port.

Finally, plug the JST connector with the male headers into port D2 on the left side of the Monster M4sk. Cut off the red (middle) wire -- this wire is not needed and can short out and damage your Monster M4sk if it contacts the other wires. 

The remaining black and white wires will connect to the legs on your trigger button.

You can leave the trigger button in the breadboard, or you can solder the wires from the connector directly onto the legs for a slicker implementation. It might be fun to place the button under Fizzgig's nose so he barks when you boop him on the nose. For my wearable installation, I extended the button's wires and hid it under my fur stole so I can trigger it with my thumb. 

It would also be fun to hook up a large arcade button or the like, for maximum interactive fun.

Testing / Troubleshooting

Once you have all the components hooked up, power the board on and press the button. You should hear a barking sound and the servo will move. If this happens, hooray! You're ready to install everything into your puppet. 

If the board doesn't power up when you plug it in, make sure the on/off switch is in the "on" position. It's tiny and easy to miss!

If the servo moves continuously, you may have your button hooked up incorrectly. Be sure you're connected to two separate legs, and not connected "across" the button accidentally.

If the eyes look yellow and Fizzgig-like, but the button / servo doesn't seem to work at all, check to be sure you've got FIZZGIG.UF2 correctly installed on the board. Check the Software page and make sure you've followed all the steps.

Now it's time for the fun part: building Fizzgig's head and mouth, and bringing him to life.

Optional: Separate the Eyes

If you want to, you can cut the two eyes apart along the cut lines and connect them with an extension cable.

This will give you more control over how far apart the eyes go, and give you the option to set them a little off-kilter, for a bit more "character". However, after building my Fizzgig, I realized it would have worked just fine to leave them connected. You have this option, though, so if it works with your project, you can space the eyes however you'd like.

Attach the Lenses

Peel the backing off the lens holders and carefully screw the lenses in place over each eye. The lenses will refract the images and make them appear three dimensional.

Mouth and Nose

Cut a piece of brown craft foam and sketch out Fizzgig's mouth as shown. Leave enough at the top to create a backing for the eyes, and fold the mouth far enough down that it closes easily without bumping into the eyes. Be sure to leave a little space for the nose.

For the nose, I found an inexpensive rubber nose at the local popup Halloween store. You may be able to find these at a costume store or dollar store, or you could make a nose out of sculpey or something similar. Trim it so you have just the tip of the nose.

Once you're happy with the layout and size of the mouth, cut a fresh piece of craft foam for the final version. I added a tongue and uvula cut from red craft foam, and drew in the mouth and throat with a sharpie. Then I cut dozens of tiny irregular teeth from white craft foam. It might be fun to make these from polymer clay as well, for 3-dimensional realism.

Use Krazy glue to glue all the teeth in place. Fizzgig has extra teeth inside his mouth, around his throat, as well. I wouldn't want to be bitten by him!

I used a little watered-down acrylic paint to add some shading between the teeth and along the edge of the tongue.

I also glued a piece of cardboard backing to the upper half of the craft foam (above the fold for the mouth). This added stiffness and stability so his face wouldn't collapse in on itself.


For Fizzgig's hair, I got a cheap wig from the Halloween store. There were so many terrible wigs to choose from! I settled on "Heavy Metal Rocker". Get a long one, you'll be trimming it down.

Trim the wig at the back, cutting off the longest section so you're left with a roundish shaped hairdo.

Fold the mouth closed and use hot glue to glue the cut-off sections of the wig along Fizzgig's under-chin. I found it easiest to draw a bead of glue along the back of the gum-line, then press the hair sections carefully into the glue. You want the beard to dangle downwards, so secure it just along the "lip" edge and let the rest dangle free.

Once you've got enough beard hair, trim along the lip line.  Be sure the mouth closes nicely, then add the nose just above the closed mouth. Glue it down with some hot glue.

Use hot glue to carefully glue the Monster M4sk eyes to the foam backing. I found it worked to just dab some glue right on the top of the JST connectors on each side, that's sufficient to hold it. Hot glue sure does love sticking to craft foam.

If you need to reposition anything, use 99% alcohol. 99% alcohol is the antidote for hot glue -- it completely dissolves its sticking ability and allows you to peel the glue cleanly away.

Now, grab the main part of the wig. Find the very crown, where the hair parts. We'll place this right between Fizzgig's eyes, so all the hair sweeps back from his forehead.

Cut holes in the wig's inner netting for the eyes to poke through.

Carefully glue the wig down around the lenses using hot glue. Be careful not to get glue everywhere; it does really love sticking to the wig hair! Again, 99% alcohol is your friend if you end up with a furry, gluey mess.

Plug your servo into port D3 on the Monster M4sk. We'll use the one-sided servo horn, and place the servo flat along the back of the mouth so that the motion of the servo horn will open and close the mouth.

Press the horn in place but don't screw it permanently onto the servo just yet -- we'll adjust the placement of the horn for optimal mouth movement first.

Your servo placement will depend on your design and sizing. The idea is to attach the servo firmly to the back of the face, with the swivel placed right at the open/close fold line.

As you're looking at the back of the face, you'll want to place the servo on the left side of the cardboard backing, with the servo horn close to the bottom. Test and be sure the motion is correct before gluing down -- if you put the servo on the right side instead, it will reverse the motion of the mouth (closing when it should open).

I glued a small piece of craft foam to the underside of the "chin" beneath the furry beard. Then I added three pieces of thicker craft foam as a spacer, so that when the servo horn is extended, the mouth is fully closed. Here is a side view with the mouth closed:

The servo horn is (generously) glued to the craft foam spacers. It swivels up and to the left, which opens the mouth on the right side. 

Once all this is in place and the glue is fully dry, turn Fizzgig on and press the button. This is a good time to pop the servo horn off and adjust its placement on the head of the servo, if needed. Once you're happy with the motion, screw the servo horn down tightly with the short screw that comes with the servo (not the longer screw, that may damage the servo).

Trigger Button

Cut the red (middle) wire off your 3-pin JST connector. The two remaining wires (black and white) will connect to either side of your trigger button. You can leave these in a solderless breadboard, or cut the connector's male pins off and solder directly to the button's legs. 

I added a long wire extension between my button and my JST connector. This gives me the option to trigger the bark "secretly" from a bit of a distance. Another option would be to place the trigger button on the head or underneath the nose, so he barks when you "boop" him.


Plug your speaker in via the mini jack port on the top of the MonsterM4sk. A small speaker should be able to hide inside Fizzgig's head, or you can add a longer extension cable for more control over where to put the speaker.


Since he's built on a wig, he's perfectly suited to sit on top of something round and head-sized for display. A pumpkin would work perfectly, or a foam wig head works great too. Your speaker can be hidden behind your display. I made a little paw print out of craft foam to put over the trigger button. 

I made a wearable version by safety-pinning Fizzgig onto the back of a sheepskin stole. I threaded the button underneath the front of the stole so I can trigger it on unsuspecting followers.

This guide was first published on Oct 23, 2019. It was last updated on Oct 23, 2019.