Introduction

Your looks will turn them all to stone, and your snakes will writhe in delight and delicious decadence.  The glow from your serpentine hair will only be eclipsed by the toothsome grin you wear as you fill your statue garden with wonders wrought from your deadly gaze.

This is not a step-by-step guide, rather an overview of how I used Crickit and Circuit Playground to create this costume.  The Crickit is so easy to use that it's a great first foray into the world of animatronics and servos.  

I used MakeCode's drag-and-drop editor to create the code that runs the servos and the lights, so it's easy to learn and customize even if you're not a coder.

Materials

1 x Circuit Playground Express
Circuit Playground Express
1 x Crickit
Crickit for Circuit Playground Express adds robotics, lighting, and amplified sound to your projects!
2 x Micro Servo
Micro Servo
1 x Battery Holder
3x AA Battery holder with 2.1mm plug
1 x Batteries
AA Batteries (non-rechargeable)
1 x On/Off Switch
Tactile On/Off switch with leads

You Will Also Need

  • 3mm Side-glow light pipe -- I find this sold as "glowing shoelaces" on Amazon.  
  • Mini Tubular Crin in various colors - I got 15 yards each of light green, dark green and black
  • 16-18 gauge steel wire & wire cutters / pliers -- this is about coat hanger size
  • Hot glue gun
  • 5mm EVA craft foam
  • Contact cement
  • Wigs, jewels, and other decor
  • Drill 
  • 3d printer (or you can order the printed part online)

Monoprice Inventor II 3D Printer with Touchscreen and WiFi

PRODUCT ID: 3897
The Monoprice Inventor II 3D Printer Touchscreen with WiFi is a perfect entry-level 3D printer with small footprint and reliable performance. It comes equipped with...
$650.00
IN STOCK

Wiring Diagram

Connections

The Circuit Playground is screwed onto the Crickit using the included standoffs and screws. See this guide for assembly and more about Crickit.

The two servos plug into servo ports 1 and 2. The black wire faces the round Circuit Playground Express, the lightest color wire faces out.

If you want to add an on/off switch, solder it inline with the power wire going to the battery case.  Plug the battery holder into the Crickit's power port.

3D Printing

I used Tinkercad to create a 3d printed case that holds the light pipe and the servos in place above the Circuit Playground and Crickit.  

This case has space for 4 micro servos to attach around the edges, but we'll only be using 2 for this project.  The AA batteries are just not sufficient to run 4 servos (I sure tried!), but for projects that plug in or use a larger power source, the spaces are available.

It also has optional buttons that extend through the case, if you want to use Circuit Playground's onboard buttons to control your project.  For this project, I'm not using the buttons so I just left them out.

The holes for the light pipe are for 2.5mm - 3mm light pipe.  Be sure to edit the project to change the size of the holes if your light pipe is a different diameter.  If they a-l-m-o-s-t fit, you can use an awl to widen the holes a bit after it's printed.

I printed in green PLA.  If you print upside-down (with the top of the case on the print bed) then you don't need supports.  It may not look as pretty when it's done, but for my project I can't see the top of the case anyway since it's covered in snakes n'things.

If you don't have a 3d printer

Look online for 3D printing services like Shapeways.com.  You can often send the model to one of these services and they'll mail you back a perfect print.

Electronics Assembly

Note: Some of my images will show 3-4 servos.  I discovered through trial and error that the AA batteries will really only support a load of 2 servos.  If you're going to plug your project into the wall, or use a larger power supply you'll be fine with 4 servos, but with the AA battery pack you'll want to stick to just 2.

Use the included standoffs and screws to attach the Circuit Playground to the Crickit.  Plug the servos in to servo ports 1 and 2.  

Use copious amounts of hot glue or contact cement to securely glue the servos into two of the servo slots on the 3d printed case.  I ended up using the two that are more in the center of the case.

Time for some wire management!  Hot glue the wires firmly around the inside edge of the case, making sure the USB / power port is clear and the light pipe holes are not blocked.

Nestle the whole assembly into the case.  You may need to bend out some of the legs just a bit. 

 

If it's not fitting, you can "cheat" a bit with a heat gun to soften the plastic until it fits perfectly.

Add some more glue along the top edge of the servos.  You really don't want them shaking themselves loose from the mount.

Find the long straight servo horns.  Use a power drill to widen one of the holes on either side so that your 16 gauge wire fits snugly through.

If you want to add an on/off switch, solder it in line with the + wire coming from the battery case.  You can figure out which is the + wire by following it into the case -- it's the one that goes to the same pad the + side of the battery touches.

Headdress Assembly

Decide how long you'd like your snakes.  Cut a piece of crin, a piece of light pipe and a piece of wire.  The wire should be slightly shorter than the other two pieces.

 

Tuck the ends of the crin inside itself so it won't ravel.  Slip the light pipe and the wire through the crin.  

Thread one end of the wire through the hole you drilled in your servo horn and crimp it tight.  It's a good idea to add some epoxy to this connection (not shown).

 

Bend the other end of the wire into a tight loop so it's less likely to stick out through the crin.

On the end of the light pipe opposite the servo, make a snake head out of hot glue.  It helps to do this on top of wax paper so the glue doesn't stick.  Add some gems for eyes.  This takes a little finesse, but it's easy to trim the goober snake heads off and try again.

 

Glue the end of the crin to the snake head while the glue is still tacky.

Try out your fit by pressing the servo horn onto the servo and pushing the light pipe into one of the holes.  Be sure the light pipe is long enough that your servo can turn freely.

Foam Head Mount

Here's a printable pattern for a skull cap.  I used 1/8" craft foam to create the cap, which has a mount on the top for the electronics.

Cut two of everything except the circle band (you just need one of those).  Trace the pattern onto 1/8" craft foam and cut the pieces out. 

 

Glue them together using contact cement.  The last piece goes in a circle around the crown of your head -- the electronics will sit on this, so we're just creating a flat surface for it.

Make sure it fits your head, and adjust if it doesn't.  You want it to fit pretty snugly.  

 

Once it fits, glue the electronics onto the top circle band with the power port facing back. 

 

Glue your battery case below it on the back of the skull cap.

I used an inexpensive dred lock wig to cover the skull cap and electronics.  I got a cheap wig that didn't have a lot of structure inside, which meant there were plenty of gaps in the wig cap to feed the servos through.  You can also cut slits in the wig cap if needed.

Screw the servo horns and snakes on above the wig.  Thread the light pipe coming from the snakes through the wig cap into the holes in the 3d printed case so they light up. 

 

Plug your battery in and give it a test run. 

Code with MakeCode

MakeCode is a drag-and-drop code editor that makes it easy for anyone to make the Circuit Playground Express and Crickit do things, without having to delve too deeply into code.  

I've included my completed project for folks who like to skip to the end and work backwards.

If you want to build it yourself and add your own custom options, start by going to MakeCode.com and choose the Circuit Playground Express.  Then choose New Project.

Go to Advanced -> Extensions and choose the Crickit extension.  It will install more blocks into your MakeCode window so you can program your Crickit.

Adding the Lights

Choose the LIGHTS block and select set brightness.  Drag it into your forever loop, and set the brightness to whatever you want.  I want my snakes to be screaming bright so I chose 255.

Then, add some color. I started by set all pixels to green.  Then I set pixel 7 to red, since I wanted one red snake.

I also wanted some variation in the green snakes -- I had light and dark green colored snakes, so I wanted a light green and dark green glow.  MakeCode only offers one green in its drag-and-drop editor, but luckily it's pretty easy to change in the Javascript code.  

Find the hexidecimal code for the color you want.  I have a desktop widget that lets me do this quickly, or you can search online for "hex code finder" and there are plenty of tools to help.

Back in your MakeCode project, drag an instance of set pixel color into the forever loop for each pixel you want to change.

Then, pop over to the Javascript tab at the top of the page.  Change each pixel's hex code to match the color you want.

When you click back over to the Blocks tab, you'll see the new colors appear on the Circuit Playground image on the left.  Hooray!

Adding the Motion

Crickit has four slots for servos, but for a costume project with a portable battery, it works best with just one or two.  Servos take a lot of power, and while you may be tempted to use all four, the performance of your project will definitely suffer.   Two servos is enough to add lots of motion.  I put two snakes on each servo and so have four moving snakes on my headdress.

Click on the Crickit block and drag two instances of crickit set servo (1) angle to (90) onto your workspace inside the forever loop.  

The simplest way to get the servos to move is to give them a value (0-180), then pause, then give them another value.  Try adding the blocks shown in this image. 

 

Download it to your project and see what happens.  The servos move through their full rotation, pause one second, then move back again.

This works, but doesn't give us the slippery slithery motion we want from our snakes.  It's fast and jerky instead.. useful for cat ear motion or the like, but for snakes we want to slow it down a bit.  To do this, we'll use a for loop and some variables.

 

We already have a pre-made variable called index (if there is not one, use Make a Variable and call it index). 

 

Let's also add a variable called rightsnakes and one called leftsnakes.  We'll also add one called index2.

Drag two instances of set leftsnakes to 0 into your forever loop up at the top.  Change one to rightsnakes and change the rightsnakes integer to 180.  Now the two servos will start at opposite ends of their rotation so they can move in opposition to each other.

 

Also add a set index to 0 and set index2 to 0.  This will make sure these variables reset at the end of each loop.

Now, we will add a for loop.  This will enable us to move the servo just a little bit, over and over, with little pauses in between each step.  This will effectively slow down the servo's motion to give us a more slithery feel.

Drag a for loop (in the LOOPS bin) into your forever loop after the color stuff.  Change the default "4" to "180", so the loop repeats 180 times.

 

Then, place your servo commands inside the loop.  Add a change instance of 1 for leftsnakes and -1 for rightsnakes.  Remember, leftsnakes was set to 0 so we want to count up, and rightsnakes was set to 180 so we'll want to count down.

 

Change the pause from 1000ms to 40ms -- we want just a fraction of a second pause between each degree the servo turns.  

Download this and give it a try.  Success!  The servos move slowly from one end of their rotation to the other end.  Each time the for loop is played (180 times total) the servos will move one degree. 

You can adjust the speed by changing the pause amount.  Try different numbers, or maybe try adding a random number for variable speed snakes.

Now we need to add some code so they swing back the other way in a continuous back-and-forth.

We'll use our index2 variable, and set it up the same way as the last for loop, except we'll switch leftsnakes to -1 (so it counts down) and rightsnakes to 1 (so it counts up).

Click Download and load the code onto your computer then from there onto your Circuit Playground Express.  Test and see if you like it!

Note: make extra sure the servos can spin unobstructed.  It's easy to get them tangled up in hair, crin, and light pipe.  The easier they can swivel the more successful your project will be.

Finishing

Once all your moving snakes are added, you can add non-moving lighted snakes using the other 6 light-pipe holes.  It's helpful to sew the tubular crin to the wig so it stays in place and the light pipe doesn't pull free.

Add more non-lighted crin, rubber snakes, fishing lure worms or other details to fill out the headdress.  You can sew the snakes down in a pattern or let them swing free.  

To keep it on my head, I used contact cement to glue a few wig clips into the inside of the headdress.  

My hair is blonde, so the dred lock wig didn't fully cover it.  I ended up adding a second green and black wig underneath the headdress and clipping the headdress to that wig, then clipping that wig to my head.  This actually worked really well!  The headdress stays balanced as long as I'm fairly careful with my movements.

The Rest of the Costume

I sketched a few different ideas for the rest of the costume, with lots of inspiration from Pinterest.   I decided on a corset and skirt look.  I got the corset from CorsetStory and decided to recycle a skirt I had from last year's Witch costume.  

I added some extra tubular crin and some fun scale patterned fabric to the corset with E6000 glue, and found a perfect reptile-patterned long sleeved mesh top at Target for cheap.  

A fantastic artist friend made me a bronze snake torque necklace, and I added 3d printed Auryn snake wrist cuffs and a 3d printed Auryn (the interwoven snake symbol from the Neverending Story).   

I finished off the look with my Eye of Newt necklace -- always a huge hit.

This guide was first published on Oct 24, 2018. It was last updated on Oct 24, 2018.