Before I jump into my ramblings about this project, let me warn you: This is NOT a step-by-step, exactly detailed, how-to-make-your-own Wheatley Instructable. Over the two years that I worked on this project I only kept track of general progress. I’ve got a few drawings, some notes here and there, lots of pictures and videos, but no definite list of each step. My outlook on it is this: The fun is in doing it on your own! Sure I found reference photos and videos, but no one told me how to put Wheatley together piece by piece. It was a discovery process that yielded more problems, and thus more fun, than I ever imagined. Please! If you are thinking about using this Instructable to help you build your own Wheatley, by all means: Use it! The full extent of all the details of this project can be found on my website: http://animatronicwheatley.com
One of my all-time favorite projects was creating my first Animatronic Wheatley. Be sure to check it out! However, that was quite a while ago. I have re-imagined that project, and it’s bigger and better than ever!
This version of Wheatley includes:
- 3D printed shell/frame/parts
- Up/down/left/right face movement
- Side to side face tilt
- Independent upper and lower eyelid function
- Independent upper and lower handle movement
- Bright blue optic that flashes as he speaks, just like in the game
- 40+ authentic voice lines
- Rechargeable/replaceable internal batteries
- PS3 controller connected via Bluetooth
Note: Wheatley is a fictional character from the video game Portal 2. Voiced by the wonderful British actor and comedian Stephen Merchant, he becomes your character’s sidekick through part of the game.
Step 1: Design
Designing Wheatley began with finding a 3D design software. I knew from the start that I wanted to 3D Print Wheatley this time, so I needed to find a software that would let me export my 3D models to printable files. Just by Googling you can find a bunch of different programs. I tried out a few of the popular ones, but nothing seemed to feel right. Many of those I tried had powerful features but were difficult to master. Eventually I happened upon OnShape. It’s an online CAD software that’s easy to use, accessible from anywhere, and allows you to import, export, and even order from 3D Print services directly. Plus, it’s free, which really helped.
Over the next 3 ½ months, I spent a lot of time fleshing out Wheatley’s initial design. I learned as I went along, and slowly I created a Personality Core out of a blank 3D sphere. I also considered different features to include, such as what type of material to use to attach his Sides with, how to make his Handles move, etc. You can see how the design evolved just by clicking through the pictures.
Once the design began to solidify, the next thing that I focused on was the question: How much is this going to cost? My first Wheatley had cost about $350 to make. Since I wanted to double the amount of quality from v1.0 to v2.0, I doubled my budget. I decided that I would be happy if I could complete this version of Wheatley for $700 or less. After determining the budget, I took what 3D files I had and ran them through several different printing services for estimates. Most of the websites or services that I tried quoted $750 to $800. That took a significant chunk out of the budget, but it would still be possible. At this point, I accepted the fact that I would be paying for this whole thing myself.
As the design neared completion, I settled on a great 3D Printing service called 3D Hubs. It connects you quite easily to the closest people who have registered their 3d printers on the site, and you pay the printer, not the website. It’s really genius. Because of the size of my files, I had to print through a hub about 80 miles away. The hub is owned by a man named Carlos, who was very helpful through the whole process. It took some time to get everything situated for the 3D Print, including a break for the Holidays. However, the best news of all was finding out that he was only going to charge me $240 for the parts! I was thrilled! While all of this was going on, a possible setback loomed in the near future: Starting College. I knew that I wouldn’t have as much time as I used to due to the schoolwork. But, I determined that I would finish Wheatley sooner rather than later.
Step 2: 3D Printing
The 3D Printing honestly didn’t take that much time, although it felt like forever. One of the joys of 3D Printing is that you can prototype and create much faster than you’d normally be able to.
The whole printing process went smoothly, except for one mishap with the printer. During the printing of one of the Inner Socket pieces something bumped the printer, causing the rest of the part to get printed misaligned. Carlos fixed it very well though, so no worries there. Once Carlos informed me that the parts were ready to be picked up, I made the 80+ mile drive on a Saturday morning and went and got them. I got to talk with Carlos a bit while we were removing the support material from the prints and fusing some of the parts together. He’s a really neat guy!
Overall, I’m very pleased with the quality of the print. There were several places where the ABS warped while it was cooling, as well as some places that needed to have more detail added to them. There were also several other things that needed to be adjusted, but those will be covered in the next section.
Step 3: Part Processing
I started by digging out my trusty dremel and sanding a few of the parts. In doing so I discovered two things: First, that ABS sands very quickly with a dremel. Second, sanding ABS gets particles of the stuff EVERYWHERE! The amount of plastic dust that sanding Wheatley’s parts created is ridiculous. I had to vacuum the area I was working in every week. I also used the dremel to drill out most of the screw holes. Most of the parts assembled quite nicely and allowed free range of motion (after a lot of sanding).
Step 4: Mishap & Redesign
An accident with some expanding superglue left the largest part of Wheatley’s body disfigured and irreparable, so his major parts had to be reprinted. However, this mishap gave way to a much-needed redesign of his inner workings. I also took this time to redesign the robotic assembly that makes him move to allow more range-of-motion and easier maintenance.
I used the time I spent waiting for the new parts to solidify the circuitry for Wheatley’s brain. The first half is the Arduino UNO, which takes the inputs from the PS3 controller and outputs signals for the servos and triggers for the soundboard. The second half is a circuit I’ve been working on that includes connections for the servos, the sound-to-light circuit with speaker connections, and the soundboard itself. I made many different plans for how it would all come together. Most of those plans changed and evolved, but it was always for the better.
Step 5: New Parts and Electronic Development
After receiving the new 3D printed parts, I began processing them with my dremel, sandpaper, and whatever else was needed to make them fit comfortably. Carlos surprised me again with a discount on the printed parts, which I am extremely grateful for.
I completed the rudimentary wiring for the power system with little problems. I tested what electronics I had assembled up to this point, and everything was working wonderfully! However, I had issues with the mechanical aspect of making Wheatley’s Handles move. After trying a few different solutions, I settled for putting the servos in the Handles themselves instead of inside his body.
Step 6: Setbacks & Successes
A few weeks went by without any significant developments. But then, disaster struck: Wheatley’s sound board was dead. I had been using the Adafruit Audio FX Sound Board with no problems previously. However, I either damaged it accidentally or a fluctuation in the battery power overloaded part of the sound board. I’m not sure which one caused the destruction, but one of the onboard components fell off and the board stopped working. After a painfully slow interaction with Adafruit Support, I finally received a replacement board.
In the time waiting for the sound board to arrive I worked on various parts of Wheatley, improving and processing parts and functionality. Each day was one step closer to being finished, but there was still a long way to go. After troubleshooting the audio system I decided to make a change: Independent batteries. There was so much electrical noise in my circuitry that it was affecting Wheatley’s sound quality, so I wired the sound system to its own batteries. It was a small price to pay for functionality.
My curiosity also led me to try the OGG audio format and allowed me to triple Wheatley’s voice line capacity! I was no longer limited by the size of the audio files (but still limited by other hardware). This made it so that Wheatley can have up to 40+ voice lines programmed in at a single time! A New Year arrived and with it came more progress, changes, and adjustments. Wheatley blinked for the first time and, shortly after, moved and spoke! His Handles were improved upon and the battery system got reworked. College took up a lot of my time through this project, so things progressed slower than I would’ve liked. However, I was determined to finish Wheatley, whatever the cost.
Step 7: Paint Job & Troubleshooting
Spring finally came, but I didn’t accomplish nearly as much as I wanted to. I worked on the lens and decals for Wheatley’s eye, got frustrated with my local store’s lack of inventory, ordered more parts from the Internet, and had more parts reprinted to fix a few issues.
The most significant thing accomplished at this time was my artist neighbor painting Wheatley’s face! It turned out amazing and filled me with hope! Once Summer came, my free time increased and I was able to make more progress on Wheatley. I troubleshooted the sound system and found a configuration of amps and speakers that provided the smallest and loudest solution in my budget. I also sanded, primed, and painted a basecoat on the rest of the parts, tested the Handle servos, finished all of the internal wiring, and found strong but super-thin Velcro to mount the Sides with.
After this, the rest of Wheatley’s parts were being painted by my artist friend and not much more was left to do until Wheatley was completed!
Step 8: Code Tweaking & Finished Wheatley
Once everything was painted and the troubleshooting was finished, it was only a matter of tweaking his code so everything functioned properly. I received help from Kristian Lauszus, one of the original creators of the PS3 Bluetooth Library for Arduino, to compile Wheatley's code. Special thanks to him for his help!
Once Wheatley's code was working properly and his voice lines were loaded into the sound board, he was complete!
- Total Cost of the materials that went into Wheatley: $1,097.06
- Total Cost with estimated Tax & Shipping: $1,274.95
- Total Cost of whole project (including Wasted Materials): $1,533.90
- Total Cost of whole project with estimated Tax & Shipping: $1,742.80
Be sure to check out the website documenting the project for the full Work Log, all of the details, and more interesting Portal content: https://animatronicwheatley.com/
Step 9: Make Your Own Wheatley
If you'd like to make your own Wheatley, you'll find attached the latest version of his code and my Bill of Materials below. If you'd like to ask me any questions about how I built my Wheatley or need some advice on building your own, email me at firstname.lastname@example.org. Best of luck!
- (LWS) = Lowes
- (WM) = Walmart
- (RS) = RadioShack
- (ARC) = Local RC Store
- (Ebay) = Ebay
- (HD) = Home Depot
- (ADA) = Adafruit.com
- (AB) = All-Battery.com
- (DT) = Dollar Tree
- (AMZ) = Amazon.com
- (HBF) = Harbor Freight
- (LTS) = Local Thrift Store
- (DGK) = DigiKey.com
- (3DH) = 3DHubs.com
- (JOA) = Joann's Crafts
- (AO) = Already Owned
- (LWS) Servo Screws and Washers- 1 @ $ 0.99
- (LWS) Machine Screws #8-32 x 1in (8 Pcs)- 1 @ $1.24
- (LWS) Machine Screws Flat #8-32 x 3/4in (8 Pcs)- 1 @ $1.24
- (LWS) Machine Screws #8-32 x 1.5in (6 Pcs)- 1 @ $1.24
- (LWS) Machine Screws Flat #8-32 x 1in (8 Pcs)- 1 @ $1.24
- (LWS) 3M 0.94" Blue Painters Tape- 1 @ $3.98
- (LWS) Rustoleum Flat Black & White Spray Paint- 2 @ $3.98
- (LWS) Rustoleum Filler Primer 2-in-1- 2 @ $4.98
- (WM) 1/8th Yard Stretchy Black Fabric- 1 @ $0.59
- (WM) 9 LED Flashlight- 1 @ $1.00
- (WM) Onn Amplified Speakers- 1 @ $8.00
- (RS) TIP31 Transistor- 1 @ $1.99
- (RS) 2.1mm Barrel Jack (2 Pcs)- 1 @ $3.49
- (RS) XLR Male Connection- 1 @ $6.99
- (RS) Half-Watt Amp Kit- 1 @ $10.00
- (RS) Micro Servo- 4 @ $12.99
- (RS) Arduino Uno R3- 1 @ $24.99
- (ARC) 12in Servo Extension- 4 @ $3.49
- (ARC) Rage Standard Metal Gear Servo RGRS104-16-6vm- 7 @ $12.99
- (Ebay) 1x20 Pin Male Headers- 3 @ $0.82
- (Ebay) DPST Slide Switch- 2 @ $1.25
- (Ebay) 4xAA Battery Holder- 1 @ $2.29
- (Ebay) Male to Male Jumper Cables (40 Pcs)- 1 @ $3.75
- (Ebay) Kinivo BT USB Adapter BTD-300- 1 @ $10.00
- (Ebay) SMD LED 76mm Halo, White- 1 @ $11.75
- (Ebay) Keyes USB Host Shield- 1 @ $17.95
- (Ebay) Castle Creations 10A 6S BEC- 1 $19.99
- (Ebay) White PS3 Controller- 1 @ $29.94
- (HD) Defiant Motion Security Light 1000 050 242- 1 @ $29.97
- (ADA) Audio FX Mini Soundboard 16MB- 1 @ $19.95
- (AB) Tenergy 9.6V 2000mAh NiMH Battery- 1 @ $14.99
- (AMZ) Avery Sticker Paper, White (5 Pcs)- 1 @ $5.46
- (AMZ) Avery Sticker Paper, Clear (3 Pcs)- 1 @ $5.46
- (AMZ) XT60 Connectors (6 Pairs)- 2 @ $6.80
- (AMZ) Apoxie Sculpt Color Kit: NEUTRAL- 1 @ $8.39
- (AMZ) Floureon 9.6V 1800mAh NiMH Battery- 3 @ $11.99
- (AMZ) 6X3mm Brushed Nickel Magnets- 2 @ $0.12
- (AMZ) OceanLoong Smart Charger- 1 @ $12.98
- (LTS) 6 Ohm 10 Watt Speaker- 1 @ $2.00
- (DGK) 1K Ohm Resistor- 6 @ $0.04
- (DGK) 470 Ohm Resistor- 6 @ $0.04
- (DGK) Transistor NPN 45V 0.1A- 6 @ $0.20
- (3DH) Wheatley's 3D Printed Parts- 1 @ $600.00
- (JOA) Velcro Thin Clear Fasteners- 1 @ $3.99