I've always been a big fan of Saw. At least the first one! And naturally, Billy is one of my favourite movie props. Creepy, serves a direct purpose to the story, etc. I've been saying for years that I wanted to make one of my own. With a kid on the way, I figured now was a good time to get it done.
All code and files used in this project can be found here: https://github.com/david0429/billy-pi
There were ever so many pieces and tools needed for this project. I will outline the parts in each step instead of one giant list here.
Step 1: The Platform: Tricycle
Billy's vehicle of choice is a children's tricycle. It's an old metal one that squeaks and rattles as it moves around, which just adds to the horror. I found the perfect tricycle on kijiji for cheap. It isn't exactly the same as the one in the movie, but the tricycle isn't the main focal point of Billy so most people don't notice. It also has a front fender, which helps hide some electronics, which we'll see later.
The biggest thing was freshening up the trike. The one in the movie is a little beat-up, but it is still a vibrant red, black, and white. The one I bought was so faded that it needed to be cleaned.
Take off any stickers and give it a quick wash. This will make sure that paint sticks well. Also, take it apart before painting. Unless you're amazing with a can of spray paint, this will make your painting life much easier. Once this is done, paint away. I used rust spray paint, just to be sure that any rust on the trike wouldn't come through.
The trike I used also had a 2nd step on the back of it, which isn't in the movie. A quick slice with a sawzall took that right off. You can still see a lot of scratches and cut metal edges from the process, but this trike is meant to look beat-up and maniacal. Rough metal edges add to that, right?
Step 2: Drive Motor
- Geared DC motor
- 3D printed mounting bracket
- 3D printed wheel
- Adhesive foam gasket
- Elastic Band
- M3 Bolts
To move Billy around, a single geared DC motor was used. It makes for simple continuous motion and easy speed control when using PWM or a motor hat. Stealth and power are also concerns. The trike with Billy will have some heft to it, so the motor needs to be strong, but having a bigger motor makes it really obvious, which would take away from the scare factor.
A geared motor is a DC motor with a gearbox built onto it. These generally have a fair amount of power and keep the size down, but can be a little loud.
This was the first 3D printed piece of many. 3D printing little brackets is much easier than machining them and lets me make little changes and test in reality how they would work.
There are 2 bolt holes that go across the motor. These are the only reasonable mounting points for the motor. To make sure there was space for the drive wheel, the whole motor was tipped up about 5 degrees so the space between the axle and the bottom mounting point is larger than the space between the axle and contact point with the wheel.
On the underside of the front fender is a single screw holding it on. Not the strongest mounting point, but probably good enough for my application.
The mount was designed in Solidworks. Since it's a parametric modeling program, that made it easier to make quick modifications between tests.
The wheel was pretty basic. A cylinder that had a slot out of it to mount onto the motor.
Since this is an old tricycle, nothing about it is square or rigid or consistent. This meant that something needed to compensate for the wheel wobbling or being out of round. The drive wheel fit that bill. It could be made to be compressible to handle non-roundness of the wheel, and wide enough to handle the front wheel tipping side-to-side. A consistent speed isn't an important trait of this vehicle.
Like the mount, the wheel was 3D printed. Mostly for ease, but partly because making that internal mounting hole manually would be very difficult. It wasn't round and needed sharp edges. Hard for a CNC and very hard by hand.
Once it was printed, 2 layers of rubber gasket were added around the outside of it. This made the wheel larger, but also made it compressible, which gave it better contact with the front wheel. I ended up adding an extra elastic band around the outside of this wheel to help keep the gasket from snagging on anything and peeling off.
The adhesive on the gasket was never meant to hold it onto a surface for a long time, just long enough for it to be pressed between two parts. Because of this, some decent glue was used to hold it all together.
*Note: This wheel was replaced with a toothed wheel, as after some use it seemed to work better.
The fully glued wheel (with gasket and elastic) were press-fit onto the motor. The motor was attached to the mount using M3 bolts, and the mount was attached to the tricycle using the only screw there was. The wheel was a little too large and ended up binding with the under-side of the fender. Using a box-cutter and some patience, a slot was cut out of the plastic fender to make space for the wheel. *Note. Be very careful when doing this. One slip with a really sharp knife can have terrible consequences*
Step 3: Steering Mechanism
- 3D Printed servo gear
- 3D Printed turning gear
- 3D Printed servo mount
- Dremel with a cutting disc (or equivalent)
- M3 Bolts
- M4 Bolts
- M3 and M4 tap
- Hitec 485hb Deluxe Servo
- M1.2 Bolts
The gears were designed in Solidworks. The Steering gear was created to replace a plastic bushing between the "steering column" and the frame of the tricycle. This controlled the thickness of the gear and the extra collar that stuck out the top of the gear. It kept the steering handles centred in the frame, but allowed them to move. Two bolt holes were added through this gear to attach it to the forks of the tricycle so it was rigid, but could be removed if needed. Once it was printed, two holes were drilled into the forks and those holes were tapped for easy attachment with the M4 bolts.
The gear itself was created with the help of https://www.thingiverse.com/thing:8077. This is a helpful little addon to Solidworks to create gears easily.
This gear was pretty basic. Made in Solidworks using the same addon as above, but with a 2:3 gear ratio. This ratio was chosen because I wanted to make sure the servo had enough power to turn the steering without stalling, and the servo could only turn 180 degrees, but the actual trike didn't need to turn that sharply.
I made little indents in this gear for mounting to the servo. These were largely unnecessary, but made it look more complete. The main attachment points were the small holes on the servo "horn". I used very small M1.2 bolts through this horn, into the gear, which threaded itself and held fairly tightly. 3D printing isn't super accurate, and this was pretty apparent at this step. It took a little finaggling to get it to line up well enough for the bolts. It is all just plastic though, so a little force goes a long way.
Mounting the Servo
This was probably the trickiest part of this. I wanted to try and hide the servo as much as possible. What better place than inside the frame of the trike? Using a Dremel, I measured and cut a rectangle through the frame where the servo can slide in. This was pretty tedious and took a while, but worked fairly well in the end.
Next step was to actually mount the servo so it wouldn't just fall out. I 3D printed a small bracket that would slot over the wall of the pipe. With the servo installed, it would hold the bracket in place such that it couldn't come off, so no need to actually fasten it to the frame. I gave the bracket 2 little mounting holes where the servo could be bolted to it with M3 bolts. The bracket also has a small hole for the servo wiring to pass through. This wasn't used when running, but made installing the servo much easier.
Step 4: Wiring
- Adafruit Stepper Hat( LINK )
- Soldering Iron
- Small connectors
- Angle Grinder
- USB Cables ( LINK )
- USB Power Banks ( LINK )
- Double-sided Tape
- 3D Printed Stand-offs
Wiring for this was fairly simple. Since I'm using a Pi hat, minimal extra electronics were needed. The hardest part was trying to route wires in a way that was subtle. I didn't want wires hanging all over the place as that isn't what was in the movie.
Wiring the Drive Motor
This motor needed just 2 wires soldered onto it, as basic as control gets. Getting those wired from under the front fender to under the seat (where the electronics would live) was the challenge.
The first step was to get the wire up into the steering column. I cut a hole beside the mounting point in the fender. This would let me run the wires through to behind the fender without them being seen. I then had to cut a small slot in the metal with a Dremel so that the wires could be routed up into the hollow steering column without being in the way of the mounting screw.
Once the wires were in the steering column, they had to get back out! I wanted the wires to end up coming through the frame under the seat. There were two things blocking that; the tube that was the steering column and the outer frame of that column was a solid tube also.
Using a drill-press, I put a decently large hole between the main frame tube (where the seat attaches) and the steering column. Using an angle-grinder I put a large slot in the steering column. This was to make sure that the wires wouldn't get pinched when the handles were turning and there wouldn't be a bunch of extra wires bunched up in an area that was hard to access.
Now that this was done, the drive wires could travel:
- Through the hole in the fender
- Through the slot in the forks
- Through the slot in the steering column
- Through the hole into the main frame
The last hole was the easiest. Just a single hole using a drill-press through the main frame, just behind the seat mounting point. This was a convenient access for any wires that needed to get to the control computer.
Finally, those two wires were connected to the M1 port on the Stepper hat.
The steering servo was much easier to wire. Since its mounting point was already inside the main frame tube, it was as easy as taking those wires and popping them out through the hole behind the seat.
All of the power for Billy comes from some portable USB chargers. They are easy to charge, hold a decent amount of power, and can be easily upgraded later. To mount them, I used double-sided tape and some little 3D printed stand-offs.
USB cables were cut and split so they could be wired into the motors. A really short micro USB cable was routed to the Pi. 3 USB cables powered the entire thing.
Step 5: Software
The software wasn't overly complicated. Because it seemed useful on its own, I made a separate Instructable on just this topic. Please follow THIS LINK to the Instructable which will cover all of that. There were very few un-obvious changes, but they are outlined below.
Below is a listing of the motors and where they are attached to the motor hat
- Drive Motor - M1
- Steering Servo - M2
- Mouth Servo - M3
There is the one minor change to support stepper motors with a servo hat. The frequency of the hat needs to be changed to 100 Hz. Since a stepper works on 1-2 ms pulse widths and at least 6 ms is needed between pulses, this is a decent starting point. You could tweak it to probably 125 Hz without having issues if you need more finite control. By default, the hat will use 1.6 kHz, which is far too fast for using a servo, but good for just a motor or a stepper
To make sure the stepper was only commanded within its range, the web interface slider for turning had its max and min set to turn the the steering wheel only 45 degrees each way.
Step 6: Quick Test
Just a quick test of the trike, without the Billy doll mounted.
Step 7: Audio
One of the most iconic parts of Billy is the laugh: sinister and always reminds you of the movie. It creeps everyone out! I found the audio at THIS link
- Portable Speaker
- 3.5mm Audio cable
The software is pretty simple. I added a callback for playing audio from the web interface. It is a simple function that takes the name of the file as a variable from the web interface. Pygame will start the sound playing and return immediately. This makes it so you can still have control while the sound is playing.
The hardware is also pretty basic. The "proper" way would be a simple amplifier and a speaker. With time running low, for simplicity I used a battery powered bluetooth speaker. This way I didn't need to worry about extra power as it had its own. I hid it in his pants. Not the area I was planning on using, but there was some extra space, and it was close to the Pi so I could run an audio cable easily. I ran a cable because the bluetooth wasn't working right with this speaker and it uses more power, which might hurt the battery life.
Step 8: Billy - Body
- 1x2 pine
- Zip ties
- Drill Bits
Billy has the proportions of a young child on the tricycle. I could approximate the different lengths of limbs, head, etc., but that is a pain and inaccurate. Luckily, I found THIS website. I approximated the overall height of Billy and it gave me all the proportions I needed. The overall height was dictated by the size of the tricycle. If you are following along, you would need to adjust your height to match your vehicle. You will need to make a free account to use the tool.
Cut the Wood
The skeleton doesn't need to hold much weight. This helps cut down on the wood needed. Cut lengths of wood to match the different limbs. Don't worry about cutting left and right sides of the arms and legs, we'll take care of that in a moment. This was just an assumption on my part, by I assumed the hips were as wide as the shoulders, so I cut these to be the same width.
Once all the lengths are cut, you can make duplicates of the arms and legs by cutting them down the middle with a table saw. This will turn them into 1x1s, which is more than enough for our needs.
Putting it Together
Drill a hole through the ends of each piece (except the back part and one end of the lower leg). Make sure the hole is slightly larger than the zip ties you have. Having a drill-press makes this easy, but you can use any kind of drill.
Once there are holes, connect neighbouring pieces by looping a zip-tie through both of them. Tighten it enough to pull the pieces close together (end-to-end), but not enough to stop the pieces from turning. You could connect these together with hooks, screws, or hinges, but this was a cheap option.
Attach the shoulders and the hips to the back piece with a couple of screws. You might want to drill a pilot-hole before attaching them to make sure you don't split the wood.
The legs are a special case because they need to hold themselves up at an angle, which zip-ties don't allow. To combat this, I changed the legs to use a single small screw as a hinge. It kept the legs from spinning. The hole that is on the same side as the head of the screw needs to be slightly larger than the threads. This makes sure it won't get much resistance when turning.
Once the legs were done, I attached 2 blocks of wood as feet. Having feet made it easy to take Billy off the trike as I could take his feet out of the shoes. They were attached directly so there was no flex in the ankles. This kept the pedals flat like how they would sit in reality when being used
Step 9: Billy - Head
The head was so much fun to make. It seems like a hard part, but it really wasn't.
- 3D printed head
- Servo motor
- Fishing line
- White, Red, and Black paint
- Wig or gorilla mask
- Hot glue
The head was 3D printed. I considered machining it from foam, but with the whole head only costing $4 to print, it wasn't even an real choice.
I found the initial model HERE. It was a really solid starting point, but needed a bunch of tweaking. I modified it to make it 3D printable using Blender. Added a little "shelf" around the mouth, leaving the option open for a mouth motor.
I painted the entire thing with white interior paint. I think it was ceiling paint. It worked out pretty well because it was matte, which didn't reflect much. Next, I did the eyes in black. A really thick, solid layer made a good base for the irises. Last were the red spirals, eyes, and mouth. I didn't have a small paint brush, but a zip tie worked surprisingly well. I ballparked the centre and the radius of the spirals, then evenly spaced points in between. It made it easy to make evenly spaced spirals. The paint around the mouth was pretty basic. I filled the mouth too so it didn't stand out when the mouth was open
This was somewhat of a last minute decision to add this, but I'm really glad that I did. The first thing I did was drill a hole in the roof of the mouth and in the top of the jaw that would line up when closed. I tied some fishing line to a small piece of wood inside the jaw and strung it up through the holes.
I then cut a small slot inside in the head, behind the eyes. This slot was for holding the mounting flange of a servo. Since there was only 20% fill inside the head, I just had to cut through the few layers of wall with a knife. This slot held the one end of the servo. I put in a small screw and zip-tied the other end of the servo to hold the whole servo in place. Fishing line tied to the arm of the servo and it was done!
I looked for a wig that seemed right for a while, but had no luck. I ended up finding a gorilla mask for $1 that had decent black hair.
I don't know how to do hair, but my sister is a hair stylist. Kind of out of her usual area of expertise, but she did a great job.
The first part was to cut the hairline to make it right. Once it was close, a little hot glue held it in place. The hair was cut to length and folded up under itself to give it "volume". The wig was fairly thin so it needed a little extra. That too was hot glued
Step 10: Put It All Together
- 1x4 Wood
- More Zip Ties
Since the original trike had only one pedal, I had to make some new ones. This was just a 1x4 with a hole drilled through the centre. I chamfered the edges with a table saw, just to make it a bit nicer. A quick coat of paint and they were ready. A single screw through the pedals into the shoes held them in place. Since he didn't move very fast, I didn't bother really attaching the pedals to the trike.
This was just a piece of extrusion bolted onto the seat. It was an easy way to attach billy without ruining the suit. 2 bolts and lock nuts. Once this was attached 2 zip-ties around Billy's spine held him in place pretty well
To give him a neck, it was a wood block shaped with a Dremel. I hollowed out the middle so the corners were higher than the rest of the piece. Since the bottom of the head was rounded, this was the easiest way to make sure it was stable. Mounting onto a flat block would make the head rock without a ton of supports.
Zip-ties seem to be the unofficial theme of this project. Once the block was made, I drilled 2 holes through the bottom of the head and zip-tied it down onto the shoulders.
Step 11: Dress Him Up!
- White dress shirt
- Black t shirt
- 16 gauge wires
- Finger mitts
- Old red shirt
- Old black socks
- Safety pins
When I was a kid, I was in a wedding as a ring bearer. My grandma made me this little tux. Yeah, I was cute. Anyway, the suit has been in storage for decades now, so it was time for an upgrade! It happened to fit Billy perfectly. I think WalMart and Amazon have suits the same size for fairly cheap.
Put the suit on Billy. Not sure if I need to go into explanation for how to do this
I looked for red shoes, but couldn't find anything. I found some black shoes that were the right size though and I had leftover spray paint from painting the trike. This took about 8 coats of paint. If you are looking to do this, definitely just find red shoes. Much less of a pain
The main structure of the hands is just some 16 gauge steel wire. I bent them through a hole in the wrist as a main mount point, and had one wire per finger. I looped over the ends to make it so they wouldn't poke through the gloves. Once they were done, cheap finger-mits from a dollar store covered it all up. Some stuffing puffed them up to make them look better. Because of the wires, they are now poseable so they can "hold" the handles.
There is a black shirt under everything. It's actually a Gangnam Style I got for $1 at Value Village. This is just to cover any gaps in the suit
I cut 2 squares out of an old red t-shirt. The first one I folded up into a tie shape and safety-pinned to his collar. The second one I folded into a little pocket square.
The white shirt was $10 at WalMart. Nothing fancy.
Step 12: Final Thoughts
I'm pretty happy with how this turned out. It definitely has the creepy factor. Of course, learned a lot and there are always things that can be improved. Below is a quick list of changes I would make for next time
Quieter motors - All of the motors are pretty loud. When you are going for creepy, quiet is good. These motors are not that
Faster Drive - In an attempt to hide the drive motor, it ended up making it drive too slowly. I would redesign the drive system to give it some speed
- Jeff Schmidt (Jeff-o) - Wiring, Integration help
- Jason Berringer - Wiring
- Donna Niewinski - Clothing
- Doreen Weepers - Suit
- Erin Niewinski - Hair
Barbara Niewinski - Putting up with my crap
Third Prize in the
Make It Move Contest 2017
BillieThePuppet made it!