The progress of Wheatley v2.0 will be recorded on this page, and will be updated as I go along. Scroll to the bottom for the most recent posts and have fun browsing!
Note: I do not intend to make and sell any animatronic puppets. That would infringe on Valve’s copyright(s) and intellectual property. However, I am willing to correspond with you about the build and offer advice for building your own! To learn more about the help I can offer you, Click Here.
Note: While the budget I’ve assigned for this project is $1,000 USD, I’ve already spent more than that on this project over the last year. The $1,000 limit is strictly for Used Materials. I also have subcategories for Extra Materials and Expected Items. Extra Materials includes items that I bought intending to use, but that didn’t end up working out. Expected Items includes mainly tools and other supplies that I’ve purchased to aid in the construction of the project. I ignore the cost of both of these subcategories because I will use those items in future projects. I consider them an investment, not an expense.
Note: To view the images larger than they are presented here, Right-Click on them and select “Open image in New Tab”.
Started work on Wheatley v2.0 today. Felt somewhat creative and started to draw schematics, but got distracted by trying to find a 3D Modeling/CAD software. I eventually found 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.
Here’s all of the drawings that I’ve made for this project:
Started 3D design today. After 3 hours, here’s where I got to: This is Wheatley’s Inner Socket. This will house all of the electronics, parts, etc. It still needs some detail work, but overall I’m pleased with the progress I’ve made.
More 3D design today. Added more support material for the Gimbal Mount. Also added more detail to the Inner Socket. Next goals for the Inner Socket: put Bucket on back, complete detail work, and proof for 3D Printing.
I also started considering the controller today. I know it’s possible to link a wireless PS3/Xbox controller to an Arduino for servo control, so I’m definitely going to go that route this time. I’ve also included the diagram I brainstormed with.
Did more cosmetic design today. Added and removed features as I figured out better ways to make them. Looking at the design now, I realize that the Inner Socket is probably going to have to be 3D printed on its side if I want to get the most quality out of this model. Goals for the Inner Socket: Finish Bucket on back, solidify Gimbal Mount design, add connection points for Sides, prep for 3D Printing by making sure everything is merged together and figuring out how to rotate the entire model on to its side. Next pieces to tackle: Sides. Also need to figure out how to make an assembly.
Finished design work on the back of Wheatley. It looks really good for being one solid color. It’ll probably look better when it’s printed and painted.
I also drew out the Range of Motion for the Faceplate.
Little bit of a gap between entries here. I’ve spent the last week or so contemplating how to attach the Sides to the Inner Socket without compromising on any cosmetic appearances. I think I’ve finally found the answer: Sew-On Clothing Snaps. I made some recessed in the material so that the Sides will sit flush with the Inner Socket when the Snaps are installed. I’ll probably use a glue like E6000 to secure them in place. I also designed a place for hardware to sit for the Gimbal Mount. I think I’m pretty much finished with this piece. Next part to design: Sides.
So I realized that I had missed a couple features in Wheatley’s exterior design, so I went back and put them in. As a result I had to remove some detail from the Inner Socket. However it still looks fine.
Also, for laughs, I decided to download what I had so far and run it through several different 3D print services. Egads! For just the Inner Socket itself, one website quoted me $1,700+. Most of the websites or services that I tried quoted $280 to $350. That is quite a lot, but it would still be worth it for that much money.
Here’s the exciting part: one of the websites that I visited suggest that I check with my local library to see if they had any 3D printer services. I called my local library, and much to my surprise I found out that our recently renovated branch, in my city, has two 3D printers. I called somebody who worked at the library and talked with him about the 3D printers and again, to my surprise, they are not charging anything to print on their 3D printers. The only setback is that their printspace can only accommodate 5.5 cubic feet of material. However, that’s not a problem thanks to OnShape. Within the software is a feature that allows you to split a single part into multiple parts. I split the Inner Socket into 24 smaller parts and then downloaded them for safe keeping. The next thing to decide is whether it’s worth it to print the Inner Socket as one whole piece, or as smaller separate pieces.
I decided to design the Gimbal today. It didn’t take that much time. I’m starting to get excited about this project!
Today I turned the largest piece of the Gimbal into Wheatley’s Faceplate! He finally has a face and: Federal regulations require me to warn you that this little core… is looking pretty good. The hardest piece to design on the Faceplate so far is the triangular cutout at the top right of the Faceplate. I finally got it where I want it though.
Next pieces in progress: Eyelids and Sides.
Sides!!! Wheatley has his sides! [Insert Fangirl screaming here] The Sides took a bit of thought. As far as where they attach to the Inner Socket… they still don’t look like I want them to. However, they’ll do. I highly doubt that anyone is going to do a super-in-depth analysis of my Wheatley. He still needs a few details on the sides like where the handles connect and such. Alas, that will be for another design session; I’m pooped!
Major tweaking, modifying, and detail work was completed this week. I remembered a few things that I hadn’t thought about, realized that a few details were off/wouldn’t work, and I added more details/corrected measurements on the Inner Socket, Faceplate, Gimbal Mount, and Sides.
Plus, I also designed Wheatley’s Handles. Unfortunately, due to real-life incapabilities and me not wanting to have to redesign the entire project over one detail… the Handles aren’t exactly the right proportions. With the current design, I haven’t been able to fit the servos that move the Handles inside of the Inner Socket…yet. As I was typing this I had a few new ideas pop into my head that I think will work. More research must be done.
I’ve also decided against cutting the parts into separate pieces for smaller 3D Printers. It just wouldn’t be as structurally sound as printing it as a whole.
More progress soon!
It’s been a week and a half, and a few things have been changed/added:
Inner Socket- I added material to house the servos, removed the circles on the exterior (Which were going to be used to hold connectors for the Sides. I had the idea to use Heavy-Duty Velcro instead.), and I removed a small bit of material from the very back so the plug would fit in properly.
Sides- The Handle Mounts were modified for a new solution to their movement that I found. I went to a local RC Hobby Shop and found some Half-Shaft Universal Joints made by Traxxas that are the perfect size for connecting the servos to the handles while still allowing the Faceplate to move.
Handles- I added a small hole to connect them to the movement shaft. I also added material to simulate the cushion on the Handles.
Faceplate- I added material to house the Eyelid Servos and smoothed out some of the material.
Eyelids- I made them! They’re designed to sort-of lock into each other to save on space.
Cosmetic Trim- I made the rings that go around the Handle Mounts, as well as the plug-in port on the front near his eye.
Back Connection Plug- This is just a solid plug that hides the charge port. It’s designed to look like Wheatley’s plug.
I also rendered one of his expressions as well as a look inside with all the parts in him.
I’m getting closer and closer to being done with the 3D design! It’s exciting!
Four days later, more additions and changes:
Inner Socket- I removed the pointless ribs on the Gimbal shaft.
Handles- I shortened the Handles a bit because they didn’t look right. I also finally decided how I am going to connect the handles to the servo linkage: Flat head machine screws. I removed material to accommodate the screw head and the nut.
Cosmetic Trim- Due to a slight calculation error, I had to remake this part. It works now.
Back Connection Plug- I removed this as well as the guide groove in favor of using an XLR connection instead of a cosmetic look-alike.
I have officially run out of things to design. Now comes the whole saving-money-so-I-can-print-him thing. This may take a while…
Well, seeings as I have nothing left to design, I decided to get an estimate on the 3D Printed parts…
Wow, that’s a significant figure. This may take longer than I originally thought. I’ll probably be able to save up enough to do it, but that’s going to take a long time. To possibly help speed this project along, I set up a gofundme so people like you can donate to help bring Wheatley to life!
Click Here for more details. (Link has been removed now. See later posts for details.)
Well, I guess this will be the last update for a while. I’ll keep you posted if anything significant happens.
EDIT: Big thanks to the Askew family for donating $20! Other than them, the gofundme did absolutely nothing. 😦
Earlier in this build, I decided to use an online 3d print service (because I don’t have the money to buy my own 3d printer that would be large enough). I found a really good 3d printing website 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.
Due to the size of my files, the closest person to me who can help is about 80 miles away. Still, it’s close enough that I can go and pick up the parts instead of paying for shipping. I’ve been talking to the hub’s owner, Carlos, and he’s been extremely helpful. Today he suggested that, because I want to print Wheatley in ABS, I should split his largest parts in half to help with the print quality.
So, I did. I also added a few more tweaks to his design and corrected a few features that had been bugging me.
I’ve only uploaded pictures of the Inner Socket and the Sides, in which you can see the line that they’re split on.
I really hope that the cost of the 3D Print is lower than the $800 estimate that 3D Hubs gives me. We’ll see what happens!
I had an good idea pop into my head today. I shifted material around to make the Handles interlock with the Sides. This will help keep everything aligned and relieve stress from the Handle’s movement servos.
So, I’ve been corresponding with Carlos through 3D Hubs since the middle of November. He’s been very helpful and awesome to work with. I got a notification from 3D Hubs this morning that Carlos had accepted to do my 3D Print! I’m very excited!
It also turns out that him and his family are fans of the Portal Franchise! They built a Portal gun (Pictures on his Hub’s page here.) as well as a mini GLaDOS with motion, IR detection, and sound (Video here.)!
However, here’s the best news of all: He’s only going to charge me $240 for the parts! I am absolutely ecstatic! That’s a whole lot better than the original $800 quote!
He’s still setting things up, but I may have Wheatley’s parts before Christmas!
While I’m waiting for Carlos to set everything up for the 3D Print I decided to go over the design again, this time with the electronics in mind. I started thinking more and more about how the servos will work together to animate him, and realized that the up/down motion would clash with the tilt left/right motion. After reviewing the situation I moved the up/down servos onto the Faceplate, with a different configuration. I’ll have to sacrifice some of the tilt’s range, but now there is no motion conflict.
It is obvious to me that the electronics that will make up Wheatley’s brain will pose a significant challenge. I’ve already started researching how to control servos and trigger sounds from a PS3 controller over Bluetooth. While Google’s search results are very slim, I have to realize that the same thing happened with the last Wheatley I made. I figure that I’ll either run across the solution somewhere or fiddle with my own ideas long enough to make something work. Here’s how I want to configure the controller:
Left Stick = Up, Down, Left, Right
Right Stick = Tilt Left or Right
L1 = Upper Handle
L2 = Upper Eyelid
R1 = Lower Handle
R2 = Lower Eyelid
D Pad/Select/Start/Other Buttons = Trigger sound clips
Now that the files are updated, it’s back to waiting on Carlos. Due to the cold weather, he’s had to build an enclosure for his 3D Printer and buy some heaters for his shop. He’s testing the printer right now, but as soon as it’s running perfectly again he’ll print my parts! I can’t wait!
Happy New Year!
It’s been a little while since I’ve posted an update. Here’s what’s happened:
Carlos and I decided to postpone any printing due to the Holidays. Now that they’re over, the printing should happen this month. I’m still waiting to hear back from him.
Over the last month, I’ve researched and dug into the Internet trying to find out how to get a PS3 controller to communicate with an Arduino Uno over Bluetooth. I found that it is possible, but extremely difficult. Some people have done it and posted videos on Youtube (Here and here). So, I ordered a USB Host Shield and some Bluetooth dongles for my Uno, downloaded the USB Host Shield Library, and set to work experimenting. It was definitely a learning experience. I was able to get it to work for a few minutes, but something would always go wrong and it would lose the connection. I tried rewriting the code several times, but to no avail.
That being said, the PS3 controller communicates perfectly over a USB cable. So, I’ve added a small USB port to the back of Wheatley (Shown in the picture below). We’ll have to save wireless communication for a future upgrade (Maybe XBEE).
I also had the thought that plastic rubbing on plastic with pressure for an extended period probably wasn’t a good thing. I removed a little material from the Inner Socket’s Gimbal Mount to accommodate a Thrust Bearing (Represented by the blue ring in the pictures). This will help with the movement as well.
I’ve also picked up several other parts and items in preparation for the coming build. A complete Parts and Cost List will be posted once Wheatley is done.
One last minor note: I start college a week from today. That may slow things down significantly. However, I promise that I will finish this project. I’ve invested too much time and money not to.
Here’s looking forward to the future!
The 3D Printing has begun!
Carlos started printing yesterday and he sent me a picture of the first parts to complete. They look amazing! Overall, he said that his printer estimated 60 hours (2.5 days total) until completion. I may have all the parts in my hands sooner than I think!
I’ve already started researching post-processing techniques for 3D Printed ABS. To fill in gaps and cracks I’ll either use ABS Slurry (Acetone mixed with scrap ABS pieces. It makes a gel that dries to form a solid ABS piece) or, oddly enough, wood filler. Couple these two with a lot of detailed sanding and filler primer and Wheatley should be looking great!
I’ll post more pictures as I get them. I’m so excited!
Carlos has completed all four pieces of Wheatley’s Sides! Also, he ran out of grey ABS during the print so some of the parts will be white. It doesn’t really matter though. It’s just going to get painted over anyway!
The Inner Socket pieces are printing! Carlos says that after this piece there’s only 2 more to go!
Carlos informed me today that something bumped the printer off-track while it was printing the Bottom of the Inner Socket. Not to fear, however. He says that he can cut the misprinted segments apart, realign them, and fuse them together properly. Other than this, everything is moving along quite nicely.
I’ve got another update for you!
Carlos has let me know that the parts are done printing. I plan on picking them up in two days (Saturday is the only time I’m free these days!).
To occupy the time waiting for everything to print I’ve been purchasing other components here and there. Again, a complete parts list will be posted once this project is completed. I’ve also been working on the code to control Wheatley. I’m using an Arduino UNO as the main hardware for the motion control simply because Arduino is really easy to learn and add upon. I’m using a PS3 Controller, connected via USB cable, through a USB Host Shield and Arduino code, to control all of the servos and pin-triggers for the soundboard. Special thanks to Kristian Lauszus (he helped write the Arduino libraries for the USB Host Shield)! He has been such a help consulting with me about code and how to use the PS3 sketches to do what I want to with Wheatley.
As of today, the code is basically done. All I have to do to finish it is assemble Wheatley and adjust the servo code to match the proper range-of-motion. This project has advanced faster than I could have hoped! I’m so excited to see where it goes next!
EDIT: I may have discovered a way to get the Bluetooth connection to work. I’ll let you know if I figure it out or not.
Great news! The 3D Printed parts are mine! MWAHAHAHA!
…Sorry about that evil laugh. I’m just so excited! Carlos did an awesome job with his 3D Printer. I got to talk with him 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! I also got to see his small-scale animatronic GLaDOS (link to the video is posted above). When he turned it on She lunged at me and said one of Her intimidating lines (I forget which one it was). She honestly scared me though. Even though She’s a miniature, I imagined what it would be like to be in the presence of a 1 to 1 scale model: Very frightening.
Anyways, take a look at the parts! I included the tape measure in most of the pictures so you have an idea of how big the parts are.
^ This is how the Inner Socket turned out. Overall, I’m very pleased with the quality. The details on the top and bottom are going to have to be reworked however. The printing process wasn’t very kind to them because they were being used as the base of the part as it was printing. I’m also going to have to remove some material so the servos will fit in the bottom. The holes are slightly too small.
^ These are the Sides. As you can probably tell, the printer ran out of one color of filament in the middle of the print, which is why some parts are grey and others are white. The level of detail on the Sides is astounding, but they warped a bit (as you can see in a couple of the pictures). I’m going to have to add and remove some material to make them sit flush with the Inner Socket.
^ This is the Faceplate. It turned out amazing! I’m really happy with it. I’m going to have to remove some material so the eyelid servos will fit where they’re supposed to. The holes (like the Inner Socket) are slightly too small.
^ These are the Eyelids. I’ll only do minimal work on them, because they are practically perfect! They fit very well inside the Faceplate, and move with slight resistance. Sanding both the Faceplate and the Eyelids should allow free range of motion.
^ The Handles will also be easy to finish because of how well they turned out. There’s only a couple of small places that will need to be reshaped.
^ This is the Gimbal Mount (T-shaped) and the Inner Gimbal (hexagonal shape). They both need to have some holes drilled out and the Inner Gimbal needs to be sanded down quite a bit. Other than that, they’re great!
^ The four pieces of Handle Trim came out really good because they are so small. The Cosmetic Connection is going to need a bit of work. The printer didn’t really like having to print so much detail in such a small space.
Even with the high quality of the parts, Wheatley is going to need quite a bit of post-processing before he’s ready for painting. I’ve got to get some Apoxie Sculpt to build up and fix a few features, acquire a dremel and bits for carving and detailing, drill out some of the screw holes so the screws actually fit, sand all of the parts so they fit together and function properly, etc.
Long story short, I’ve got a lot of work to do.
Let the games begin!
I had a bit of spare time this afternoon, so I started processing some of Wheatley’s parts. I dug out my trusty dremel and sanded the Gimbal and the Gimbal Mount. In doing so I discovered two things: First, that ABS sands very quickly. Second, sanding ABS gets particles of the stuff EVERYWHERE! I should probably be sanding this stuff outside with a dust mask, but it’s very cold outside right now and I don’t have a dust mask. Oh well.
^ I also used the dremel to drill out most of the screw holes. Both of the parts assemble together quite nicely and allow free range of motion (after a lot of sanding). I had a standard size RadioShack servo laying around, so I did a test fit: snug as a bug!
^ With the Faceplate, I miscalculated the size of the eyelid servos, so I used the dremel to remove some of the material. It fits now.
^ I sanded down the edges of the Eyelids so that they sit flush with each other when they’re closed. After that I slipped the screws into the Faceplate to get an idea of their range of motion. More sanding will most likely follow.
Tomorrow I’ll go pick up the rest of the servos that I’ll need, as well as some sandpaper. Until then, here’s a Wheatley smile to keep you company!
This is one of the more exciting updates for my Wheatley project. I finally figured out how to get the PS3 controller to interface with the Arduino UNO via Bluetooth and the USB Host Shield!
Check out this video I made that explains it all:
I’ve also acquired all of the servos that I’ll need for Wheatley, plus a couple of sanding blocks so I can get working on those 3D Prints. More progress soon!
Note: I will make my code available at the end of the project.
Well, it’s been a little over a month since I’ve updated Wheatley’s Work Log. College has been hectic and has kept me pretty busy, but this week is Spring Break! I finally have some time to work on Wheatley!
^ I’ve been sanding and dremeling away whenever I get a chance. Due to a design flaw, I had to remove a segment of plastic from the back of the Faceplate. This was rubbing on the Upper Eyelid. It still kinda rubs, but not as bad as it used to. I also had to remove a bunch of material where the servos go. I based my design on RadioShack Standard servos, but I found out later that the term “Standard” doesn’t mean “everything labeled Standard is the same size”. It really means “everything labeled Standard is mostly the same size”. I bought some cheaper, higher-quality RAGE metal gear servos which ended up being slightly larger than what had been printed.
^ The Inner Socket has gone through a few changes too. It’s been sanded down to almost smooth, despite the layer gaps on the top and bottom. The back of the Inner Socket has been cleaned up considerably thanks to my trusty dremel. The shaft on the inside had to be replaced with a wooden dowel because it broke. It just wasn’t strong enough to hold everything. I also removed material to accommodate for servos.
^ The Sides have been sanded down and evened out. I had to remove some material for the Handle’s movement mechanism, which got a redesign itself. The Traxxas Half Shafts were taking up too much space, so I resorted to a geared assembly made of LEGO pieces. Since LEGOs are made of ABS, they will bond perfectly to the Sides.
^ The Eyelids sanded down very well. They’re so smooth!
^ The Handles look a lot better after being sanded. However, they have quite a few holes that need patching (but we’ll address that in a moment).
^ The Gimbal Mount also needed to have material removed to accommodate the larger servo. The only modification I’ve made to the Gimbal itself was to drill out the holes so that the screws fit (I also did that to all the parts that have screw holes).
^ Both the Cosmetic Connection and the Handle Trim look better after being cleaned up. The Cosmetic Connection needs some work though.
But, that’s where this stuff comes in:
I’ve heard good things about Apoxie Sculpt and have seen other people use it in their projects. So, I decided to buy some. It can be pricey as well as hard to find, but Amazon.com had this sample pack for $8-9.
The next phase will be to apply the Apoxie Sculpt to all the areas that have holes, need to be built up, or patched in some way. I’ll consider these the “Before” pictures, and the next update will have the “After” pictures.
Wish me luck!
Now that I’m officially done with my first semester of college, I’ll have more time to work on Wheatley! Here’s everything that’s happened since the last update:
^ The Apoxie Sculpt worked wonderfully! It truly does become rock hard when it dries, but it sands well. As long as you get it shaped the way you want it while it’s wet, it’s perfect.
^ I put a coat of sandable Filler Primer on the Inner Socket and the Sides. I’m extremely impressed with the coverage it gives and how well it sands. I’ll need to do a few more coats to smooth everything out, but it will work nicely.
^ I also took some time to work on Wheatley’s electronics. By following this video I was able to reverse two of the servos so that they can be mounted opposite of each other but still move in the same direction. This is vital for a couple of components, such as the Faceplate’s up and down motion.
There is bad news though. While I was using the Apoxie Sculpt to fix a few major areas, I had been using some superglue to patch minor holes and defects in the 3D prints. Well, I got a different brand of glue yesterday. It expanded and hardened a lot more than I had expected. Trying to pry it off takes chunks of plastic with it. Trying to sand or dremel it off releases a noxious fume that hurts my eyes and lungs. The worst part about it all is that it’s all over the exterior of the Inner Socket, Wheatley’s main body. Long story short, I’ve messed up and am going to have to have the part printed again, which is going to take more time and money. 😦
So, while I’m saving up for the reprint I’ll be working on the electronics portion of this project. Luckily the superglue mishap doesn’t affect the part’s functionality. I have nearly all of the parts for Wheatley’s motion/light/sound system, they just need to be put together and fine-tuned.
Catch ya at the next update!
After having the mishap with the superglue, I decided to take some time to reevaluate the design and function of Wheatley’s inner workings. As I had been trying to fit the servos into the parts and assemble everything into a working model, I struggled reaching and accessing certain areas due to the way I had designed the parts. I also found some unexpected movement limitations due to the position of the Up/Down and Tilt servos. I began pondering how to streamline the robotic assembly’s design for better movement, access, and simplicity. A few days ago, right as I woke up one morning, the solution came to me.
I ran to Walmart to pick up some Popsicle sticks, broke out my trusty hot glue gun, and whipped up a quick prototype of the assembly. It turned out better than expected:
I took that prototype, created 3D models of the parts, and got them made by a local printer through 3D Hubs. This is what the assembly looks like now:
After sanding a few pieces down, everything fit perfectly. Plus, the 3D printed parts look a lot better than Popsicle sticks. With this new design, all of the servos can move unrestricted and can be easily accessed if needed.
Unfortunately, this new design means that I’m going to have to get the most major parts of Wheatley reprinted with updated designs. It will be worth it though:
I’ll have to shell out at least $100 more for the new parts, but I’m going to do my best to keep the whole project within budget (see top of page for details). As I’ve stated before, once Wheatley is done I’ll post a parts list with prices and quantities. That way, anyone can know exactly what to buy and how much to spend if they want to make a Wheatley like mine.
Until then, Continue Testing!
Replacement parts for the superglue mishap are currently being 3D printed. Carlos gave me the go-ahead on the 31st, so hopefully they’ll be finished soon.
In the meantime I’ve been slowly putting together 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. This part has been complete since the end of January.
The second half is a circuit board I’ve been working on that includes connections for the servos, the sound-to-light circuit with speaker connections, and the soundboard itself. While I do have the power connections for the servos soldered together, I’m waiting on an order of Jumper Wires so I can finish the connections for the servos and soundboard triggers, as well as being able to connect the board to the Arduino.
I did finally choose the voice lines that I want Wheatley to say and loaded them onto the soundboard today. With 16MB of storage, I was able to fit 31 different voice lines! Most of them come from Wheatley’s Portal 2 dialogue, but there are some from the Ap-Sap dialogue in Team Fortress 2. Both are 100% Wheatley, so they blend seamlessly and provide life-likeness to his vocabulary. Having accidentally stumbled upon the Ap-Sap lines myself (I played TF2 once years ago and never got into it), I’d imagine that those lines will be new to most of the Portal Fans I run into.
After I get the new 3D printed parts and finish the circuitry, the only other electronics to assemble will be modding a battery charger to work with two different battery packs (one for servos and another for electronics). Then I’ll hook everything together and test it out! If my calculations are correct, the batteries will be able to run Wheatley for a couple of hours before needing to recharge.
More progress coming soon!
I have successfully completed the circuits for Wheatley’s brains!
It took a lot of work, but the PS3 controller communicates with the Arduino UNO via Bluetooth, the UNO communicates with the servo motors and the Adafruit Audio FX Sound Board, and the Sound Board plays the audio clips when I push a button on the PS3 controller! And, to top it all off, I have a simple circuit with a transistor that turns the audio signals going to the speakers into modulated light! Here’s the diagram I based my circuit on:
The transistor I got from RadioShack is TIP31C. I have it connected to the LED light ring and a 9v battery. It’s the simplest way to add sound-reactive lighting! All of the wiring is not yet completed, but what I do have is 100% functional! I’m so excited!
More good news: Carlos should have begun printing the new 3D parts this weekend. By the time he’s done I should have received a few more components in the mail so I can finish all of the soldering, wiring, etc. Not too far in the future I’ll be able to record a functional Animatronic Wheatley v2.0 demo!
I love seeing a project moving forward! More updates to come soon!
Carlos sent a few pictures of the new parts being printed:
He says they’ll be done and ready for pickup in a day or two. I’ll probably make another Saturday morning road-trip to go get them. I hope they turn out like I want them to!
Wheatley’s new 3D printed parts look amazing! I am very happy with how this print turned out. Take a look:
The walls of the servo mount in the Inner socket were a little high, so I used my dremel to cut off about 0.25 inches. Other than that, everything else is perfect! While I’m not looking forward to sanding everything again, it was definitely worth it. Carlos surprised me again and only charged me $260 instead of the $280 we agreed on before he printed. This means, in total, I’ve spent $500 exactly on 3D printed parts. Looking at quotes from other printing services, that is about what it would have cost anyways.
This past week I received my 3D printer in the mail and have been setting it up. It still has a ways to go for high-quality prints, but I did use it to print a support bracket for the left/right servo:
This will help relieve some of the load that this servo will carry. Having a 3d printer is exciting!
One last thing I accomplished this week was successfully soldering together the transistor bridge between the Arduino UNO and the Adafruit AudioFX Sound Board:
Here’s the schematic I used to make the Transistor Bridge:
Each part of the circuit uses one NPN 45V 0.1A Transistor, one 1 K Ohm Resistor, and one 470 Ohm Resistor to create a simple switch that closes the Sound Board’s circuit when one of the Arduino’s analog pins is set high (has power). It’s simple and works great, so I made 6 of them: one for each analog pin on the Arduino.
I’m also planning on using zip ties to help with cable management inside of Wheatley. He currently has A LOT of them.
Stay tuned for more exciting updates!
Small but important update:
I’ve thoroughly tested all of the electronics with the rechargeable batteries and they seem to work smoothly. I chose NiMH batteries because of their availability, dependability, and price. I’ve got a 6v for the servos and a 9.6v for the rest of the electronics, and both have enough milliamp hours to run wheatley for about 3-4 hours under full load.
Now that Wheatley’s wiring is as complete as it can get without mounting everything into the Inner Socket, I will shift my focus to sanding and improving the 3D printed parts. If all goes according to plan, one of the updates in the near future will be a video of Wheatley v2.0 moving for the first time!
Today I did some dremel work on the servo horns and the Faceplate assembly. I was able to fit the entire assembly with the servos inside of the Inner Socket and, even unfinished, he looks great! I was also pleased to find that the metal gear servos I’m using have enough resistance to support Wheatley’s ‘head’ by themselves (Wheatley v1.0 had to have a bungee cord inside to help the servos).
I had to get a little creative with the order of what-part-goes-where-and-when, but everything fits quite nicely! Well, everything except…
The Servo Bracket (and even the servo inside of it) sits closer to the Faceplate than I initially thought it would. It’s currently preventing Wheatley from moving his face down more than 1/2 an inch. I’m going to try to cut material away from both the Servo Bracket and the Faceplate to restore his downward motion. If that doesn’t work…
…I’ll have to reprint his Faceplate. Again.
I should be able to make it work. I really don’t want to spend any more money on this project. So far I’ve poured a little over $900 USD into Wheatley v2.0. If I can finish him and stay within budget I’ll be happy (see top of page for details).
Anywho, more updates to come soon!
College and work have been keeping me busy, so I tend to work on Wheatley whenever I get a spare moment. Here’s all of the progress I’ve made with those small moments from the last month:
As you can see, it worked without any explosions/small fires! The real test will be to connect all of the servos and have them run all at once. Once the circuitry can handle that, I’ll shift to sanding the new 3D printed parts and getting it all to fit together mechanically. I’m working towards having Wheatley finished by New Year’s Eve. Let’s ring in a New Year with a New Wheatley!
So back in March, I had decided that I’d use an assembly made of Lego gears and pieces to make Wheatley’s Handles move. It seemed like a sound idea, so I didn’t do anything more on it.
Two nights ago I used some hot glue to assemble it with the servo and do a test fit with the Sides. The mechanism itself worked perfectly but, despite my best efforts, it still wasn’t small enough. It protruded just enough that the Faceplate would hit it whenever it moved, so I went back to the drawing board. After doing more research and waiting for Amazon’s 2-Day Shipping, I’ve come up with an alternate solution:
I found some Common Sense Ultra Micro Servos on Amazon in a 4-pack for $32 ($8 per servo). They were small enough to fit inside the base of the Handles and not protrude or mess up the aesthetic of the design too much, so I decided to use them. I’ll also have to change how the Handles come apart to keep Wheatley accessible and serviceable, but it’s the solution that will work the best.
The funny thing about all this is that this solution is quite similar to one of the first ways I had designed the Handles to work in the first place (see entry on 10.29.16)! If I had just stuck with it and done more research, I could’ve saved myself time and money. Alas, this is the hard part about trying to prototype and build a finished project at the same time.
As soon as I cut the notches for the servo horns in the Sides and secure everything with Apoxie Sculpt, I’ll finally be ready to put all of the servos into Wheatley, add a few dabs of hot glue, and upload a video of his first movement test!
Nothing much has happened over the last month. I’ve been using super glue and Apoxie Sculpt on all of the parts to fix the small imperfections from the 3d printing process. I’ve also used it to mask the seams between the two halves of the Faceplate.
The most significant development occurred today while I was working on the electrical connections: Wheatley’s sound board is dead. 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 won’t work now. It’s too small for me to repair myself so I’ve ordered another sound board. It should be here in a week or so.
In the meantime, I’ll continue to work on what I can. Finishing Wheatley by New Years seems so close, and yet, so far away…
It’s been awhile since I’ve updated the work log. I’ve been super busy with school so not a lot of major things have been done, but progress has been made:
The dead soundboard turned into a 2+ week fiasco. I got the replacement board and started using it, but part of the main chip’s output amplifier was defective. It would crash and hang at a low voltage right in the middle of a voice clip, rendering itself useless. After a painfully slow interaction with Adafruit Support, a replacement board is now in the mail.
The handles have their servos secured inside of them now. I’ve also added a breakaway point on them so that they can unscrew and come apart, allowing me access to Wheatley’s insides without completely disassembling everything.
The inner socket has one of its two faceplate supports permanently attached now. The two supports were printed separately from the inner socket so everything sat evenly while printing. The other side will be secured after all the insides are put together and mounted within.
The faceplate now has it’s eyelid mechanism. Two segments of coat wire connect the servos to the eyelids. This allows proper movement and is small and streamlined. The eyelids don’t close all the way yet because I still need to sand everything. The parts will fit together better after that.
Yes, I know it sounds like I’ve accomplished a lot, but I feel like it’s barely a drop in the bucket. Once the new sound board gets here and I verify that it works correctly, the next big step will be getting everything sanded and fitted together. Thankfully I only have about 3 weeks left of the semester, so I should be able to work on Wheatley daily after finals. Maybe then we’ll progress at a faster rate!
Well, the Sound Board fiasco is over. I received my replacement board in the mail today. It is now all wired up and functioning as it should be. While I’m glad that it’s working now, in the process of putting it all back together I discovered something that I needed to change.
When connected to the rechargeable batteries, the speaker amp was severely influenced by noise on the power lines (small fluctuations from components drawing power at different times). Also, when the LED light ring I’m using to simulate Wheatley’s speech was connected to the rechargeable batteries it was illuminated constantly, again due to power line noise.
While I know there is a way to isolate and eliminate said noise, I’m really tired of fighting with the whole electrical system. So, I wired the sound system to its own batteries. The different components will now be powered by 7 AA batteries and one 9v battery.
Thinking about it now, I hope the noise issue doesn’t come back to haunt me with the servos. We’ll cross that bridge when we get there. Now that the major sound system issues are taken care of, I can get back to working on what needs to be done.
I know it’s a day past, but I had a wonderful Christmas Surprise!
The Adafruit Audio FX Sound Board works with either WAV or OGG file formats. Since I was familiar with WAV I added the voice lines in that format and didn’t think about it anymore.
The other day I found a website network called The VG Resource that has tons of game files and resources available to download (Click Here to Check It Out). I found Wheatley’s Dialogue from LEGO Dimensions and went through it to see if there were any other voice lines I wanted to add. I found one I wanted and that’s when I noticed they were all OGG format.
My curiosity peaked and I converted one of my WAV files to OGG. I was pleasantly surprised to find out that they have the same audio quality, but OGG is significantly smaller. With WAV I was only able to have about 30 voice lines, but with OGG I can fit 60+ and not even take up all of the disk space! It was a wonderful Christmas surprise, so I’ve been trimming and combining lines to produce more dialogue. Animatronic Wheatley v2.0 will be 10x more talkative than the last one!
One step closer…
It’s a New Year and new progress has been made on Wheatley! Check it out:
I’m so excited that Wheatley is moving and talking now! It’s taken a lot of work to get to this point. Here’s what I’ve done:
- Inner Socket: The exterior has been sanded entirely and coated with primer. One of the front side pieces has been permanently attached (the other will be attached once all the electronics are done). I’ve also attached a standard male XLR connector on the back that will serve as Wheatley’s plug.
- Faceplate: Lots of sanding on the inside so that the eyelids run smoothly. Nuts were glued in place to allow the eyelids to be attached and hinge properly. The eyelid servos are glued in place and the exterior has been sanded and primed.
- Eyelids: The exteriors have been sanded and primed. I also cut pieces of coat wire to serve as the rods between the servos and the eyelids.
- Sides: I adjusted the connection points for the Handles and permanently secured the Handle servo connections. The connection points still need to be sanded a bit, but the rest of the exterior is sanded and primed.
- Handles: The Handle servos are permanently secured in each side of the servos. Due to size constraints, the servos will be slightly noticeable on the inside. The handles have been lightly sanded, but need more sanding and primer.
- Sound System: The sound system is now running on its own AA/9v batteries. The new sound board is working great! I found out recently that .OGG files take up less space than .WAV files do, so I converted all the voice lines to .OGG and was able to fit more in the sound board’s memory. Currently there are 45 voice lines, but I would be able to utilize a maximum of 60 (10 for each analog pin on the Arduino UNO). The sound-to-light circuit is functioning properly. The speakers are working ok, but I’m going to experiment a bit more to see if I can improve the sound quality/volume.
- Power System: I had the Smart Charger for the batteries fail on me, which prompted be to examine the power system more closely. I redesigned it and improved its function. Everything now runs on a 9.6V 3600mAh Ni-MH battery pack. I also have a spare battery pack that I can change out when needed. Wheatley’s plug on the back is now wired to be an external power connector, which will allow me to use batteries for short-but-mobile sessions, and a wall adapter for longer-but-stationary sessions.
- Code: The code has been adjusted to give the proper movements to all the parts. I still need to adjust the position of the eyelids and tweak the values for the handles. I also changed the mapping of the controller buttons:
- Left Stick: Tilt L/R
- Right Stick: Up/Dn/L/R
- L2: Lower Eyelid
- R2: Upper Eyelid
- L1: Lower Handle
- R1: Upper Handle
- Left/Down/Right/ Circle/Cross/Square: Voice Line Triggers
I’m really getting excited now, because these changes mean that we’re right on track to finish Animatronic Wheatley v2.0 by the end of the month! I can’t wait!
Another day, another set of problems to solve.
The first problem I ran into came from the Handles. I wired up the Handles and attached them to the Sides to adjust the code. However, I quickly discovered that in spite of their small, convenient size, the Common Sense Ultra Micro Servos providing the Handle’s motion are just not strong enough. They move somewhat well, but they jitter and whine very loudly. So, I redesigned the Handles and went back to using the RadioShack Micro Servos. I had them printed through a friend on 3DHubs, and they came out nicely:
They’re done in Silver because he was running low on Black and White. It’s ok though because it makes it so I don’t have to prime them! The part that houses the servo is thicker because the servos are thicker, but that’s a small price to pay for movement!
The second problem came from the electrical system. I had redesigned the XLR connection on the back of Wheatley to allow him to be powered from a wall adapter. I ordered the adapter from Amazon and everything seemed to be ok. However, once it arrived I discovered that it didn’t supply the proper voltage to run everything. It was rated at 9.6V (the same as the rechargeable batteries) but only produced 9.3V when plugged in. So, to remedy this problem, I cut it out of the design entirely. Wheatley is now 100% battery powered, and I’ll just have to deal with it.
Now that college has started again I have less free time to work on Wheatley, But I’m confident He’ll be finished by the end of the month. The most time consuming steps left are sanding the handles, priming and painting everything, and securing all of the electronics in such a way that they don’t interfere with each other or Wheatley’s movement.
Wish me luck!