Plutarch’s Debut is Nigh

workbench

Plutarch 1.0 is scheduled to make his party debut two days hence at J’s Halloween 2016 bash. The active duration of the party is roughly four hours. Here are my goals for Plutarch 1.0 during that time:

  • he must not fall off my shoulder
  • his head must remain attached to his body

Spontaneous decapitation has been a serious issue for this bird. His good-enough-for-prototyping attachment system might not be ready for primetime. We’ll see.

Whether his electronics work for the frightful fiesta’s duration is almost secondary.

While I celebrate the success of Plutarch 1.0’s ahead of schedule completion, I’m excited to get his successor out of the prototyping stage.

Here’s what Plutarch 2.0 looks like as of Halloween 2016. Keep in mind his deadline is 368 days in the future:

p2point0

He’s a discombobulated mess. But he’s much improved over his predecessor:

  • got 3D printed bevel gears working
  • added avoicebox with categorized, individually addressable sound calls
  • wrote a Maya-to-Arduino animation translator for the jaw movement
  • wrote a file processor that handles the WTV020SD-16P’s wonky-ass file format
  • amplified Plutarch’s speaker so he can be heard over party din
  • made a 3D printed chassis that’s modular and easy to assemble/disassemble
  • added multiple microphone inputs so that he can turn toward the loudest sound in the room
  • replaced soldered joints with connectors

Plutarch’s jaw opens and closes in sync with his sound calls. He’s got reliable, if shaky, 3-axis head movement. All of these systems mostly work, at least in isolation.

I just have to put everything together into a single, functional organism, at which point I can start working on the final challenge: his animation decision trees. Plutarch 2.0’s almost there and I’ve learned a tremendous amount about electronics and robotics over the last few months.

Unfortunately, I’ve just run into a couple of walls.

too many wires

Too many wires. Not enough space inside the body cavity for Plutarch’s y-axis servo to rotate freely. Voltage mismatch between the Pro Trinket and the voicebox and no room to cram a regulator in there.

Working in this cramped space is difficult (especially with a splinted pinky), and the microcontroller’s going to have to move to a more accessible spot. The 90° connections between Plutarch’s control wires and the microcontroller are eating up way too much servo rotation room.

Complexity could be conserved by tying a couple of grounds together. Connections could be used with higher-gauge wire. Options exist, but we’re gonna need a hogshead of brain juice over the next few weeks to figure all this out. And cash. Cold, hard cash.

It pains me to buy a $13 part to fix a problem I might have forseen but when one considers that $13 is an average morning at Starbucks for some folks, the bad feels wither away. Also I take comfort in the fact that I really have no idea what I’m doing so expectations really shouldn’t be that high in the first place.

A year remains before Plutarch 2.0’s unveiling. Still much to learn.

Printing with Filabot PETG+

rex

hashtagRAWR! PETG+ Robber Rex in repose among the autumn color.

As always, things are busy here at the lab, especially with Halloween fast approaching and extensive field testing of our Stranger Things wall underway. Most of the hardware issues have been sorted out, although how well the weatherproofing holds up to twelve hours of steady October precipitation remains to be seen. Software’s never done, of course, and there’s always the matter of how we’re going to get a livestream up and running on Halloween night.

A quick review of Filabot‘s PETG+ filament is definitely in order, since the Stranger Things wall couldn’t have gone forward without it. Disclaimer: I’m not receiving any compensation for this blog post except for a free spool of filament.

What’s PETG?

Polyethylene Terephthalateco-1, 4-cylclohexylenedimethylene terephthalate. Chances are you’ve used a water bottle made out of it using traditional manufacturing methods. Filabot doesn’t advertise their filament as food-safe, although I’m pretty confident that drinking out of a PETG+ printed teacup is going to be better for you than one made from ABS.

Heads up, the ridges in FDM-printed objects can harbor nasty bacteria, so eat and drink from 3D printed vessels at your own risk.

PETG is often advertised as an alternative to ABS, and after printing with it for a month I’m convinced. Two reasons:

  1. We’ve all experienced ABS stank. I can’t detect any significant odors with a PETG print.
  2. PETG prints appear to be just as strong as ABS prints, and can be done on an unheated bed with a glue stick wipe. No acetone ABS slurry required.

As always, we recommend that use your printer in a well-ventilated space, and don’t ever drink the acetone, kids.

My daughter had some friends over for a D&D game last weekend– one of the kids’ PLA/PHA printed Dice Citadels took an unfortunate tumble from waist hight and snapped in half when it hit the floor. Of course, this is both a crisis and an opportunity.

citadel

Don’t believe that old saw about the Chinese word for crisis also containing the character for opportunity. Ain’t so, or at least it’s more complicated than that.

Unscientific test: I dropped this Citadel, fully loaded with dice, onto the same spot where the PLA/PHA citadel met its untimely demise. The PETG+ Citadel survived. Physically it just feels more robust than a PLA/PHA print with the same settings. It’s a little springier than a PLA or ABS print, like it wants to bounce.

PETG handles details well, too:

citadel closeup

PLA/PHA can be brittle, especially after a couple of months exposed to the wild. How well this PETG+ print will hold up after six months of roleplaying remains to be seen.

transparency

The filament can be fairly transparent once it’s printed. It’s ideal for LED diffusers like the bulbs in the Stranger Things wall.

You can grab this transparency test model here, btw.

Verdict: Definitely buy this filament as a replacement for old-school ABS. PETG+ is durable, low-odor, and adheres to an unheated bed with a glue-stick wipe.

Internet of Stranger Things

TLDR; I made a Stranger Things Christmas Lights wall that you can control by adding #InternetOfStrangerThings to a tweet. It’s outside my house right now, blinking. Go ahead, tweet to it.

justice

Halloween! That time of year when Makers, who, if we’re being honest, are a little odd to begin with, let their freak flags fly with electronic projects of every kind. If you’ve been keeping up with the Zhengs you’ll already know about Plutarch the pirate parrot and the Lovely and Talented Mrs. Zheng3’s Arduino-enabled Pirate Pendant, but we’ve got one more project in the hopper this season: a Christmas light wall inspired by runaway Netflix hit Stranger Things. Plus, you– yes, YOU can tweet to this wall and your tweet will appear as a eerie sequence of glowing Christmas lights outside my house.

Try it yourself! Be nice, you bastids.

Let There Be Lights

Head out into the wilds of Amazon Prime and you’ll find plenty of LED Christmas lights that might– and we must stress might— fit the requirements of this project. Point against: our crack research team was dismayed to find that most modern Christmas lights seem to be spaced between 4″ and 6″ apart, which simply will not do for an application where the letters are more widely distributed.

Also, it’s highly unlikely that your garden variety Sunday church picnic Christmas lights are individually addressable. So in theeeeeeory we could buy a roll of Christmas lights, hack them apart with a Dremel and wire cutters and hope they’re what we need, or we could just make our own. DIY is ultimately more satisfying, so to the 3D printer it is!

Filabot was kind enough to send me a free roll of PETG+ for review. This filament prints somewhere between clear and frosty white, depending on the thickness of the model’s outer walls. It’s easy enough to whip up a few dozen hollow Christmas lights bulbs in Maya. (Got access to a 3D printer? You can download these models fo’ free at the The Forge.)

bulb

We don’t need the durability or transparency of PETG for the Christmas light bases, so they’re printed in MeltInk PLA/PHA and spray-painted black. These bases screw into the bulbs and have enough empty space in the bottom to accommodate a cut-down female header for plugging and unplugging.

Organization is key to completing a project with so many little parts! There’s not a lot of space on them for labeling with proper digits, so I hashmarked each base with silver Sharpie. This will help keep the colors in the proper sequence when I string up the lights.

sockets

Recovering from Failure

Strap in, muggles. It’s going to get technical for about a few paragraphs here.

Around Christmastime last year I was working on a project where I was trying to read data from 60-odd sensors. This project ultimately cratered, and we shall refer to it in hushed tones as the Multiplexer Incident of Winter 2015. It’s mostly behind us now. Mostly.

On the plus side, I learned an awful lot about multiplexers and cabling and bought a slew of electronics and more hookup wire than I’ll ever use. We can apply those newly-gotten smarts and parts to the Stranger Things wall.

First off, for those uninitiated– WTF is a multiplexer? In this context, a multiplexer (or mux, if ye be in the know) is a doodad that reads many signals into a single channel, or distributes one signal to many destinations. This wonderfully-written post at bildr will tell you how to read from this Sparkfun mux breakout, and writing to the mux requires only a couple of small modifications to the code. We’ll be writing to this mux to light up LED’s in a specific sequence.

Of course you need a bunch of colored LED’s, also.

You don’t want to run an LED without a current limiting resistor– down that path lies a wastebasket of fried electronics. Each mux can handle up to 9 volts, but that’ll cook the LED’s right quick. Happily these colored LEDs can be handily divided up into two groups; those with an operating range of 2.0-2.2V, and those that run at 3.2-3.4V. I put one 186-ohm on the SIG pin feeding the 2.2V LED’s and a 119-ohm on the other mux running the 3.2’s.

I told you it was going to get technical for a few paragraphs.

We want these LED’s to be in a predictable Christmas-light-like order: red, green, blue, orange, pink, purple, yellow, repeat, so there’s some software mapping of mux-pin-to-LED happening in the Arduino code. Higher voltage LEDs are on the mux labelled B.

light map

Building A Wall, Except Mexico Didn’t Pay for It, I Did

The budget for this project works out to less than $100, including plywood but assuming you’ve already got a 3D printer in the basement and your time has no value.

Programming microcontrollers, navigating the Twitter API, and tying it all together with heat shrink and hope is easy. Building stable outdoor displays out of 2×4’s and plywood? That’s hard, man. Definitely out of my element here, especially since I don’t have an easy way to make miter cuts in 2×4’s.

Confession: during construction, a piece of plywood fell down and hit me in the neck.

With enough screws and construction adhesive the whole thing should hold together for a couple of weeks and hopefully not fall over onto any pint-sized stormtroopers. Here’s the finished product– hat tip to our local Sherwin Williams for the Coriander Powder color match of a laser-printed Stranger Things screenshot.

daylight

Plywood ships in a 2:1 aspect ratio, but somebody really should manufacture 16:9 sheets for those of us who occasionally cross discliplines.

The “wires” strung between the Christmas lights are black nylon rope; the actual wiring is done with hookup wire stapled to the back of the wall. I also added “@” and “#” and @Zheng3_jim to the original A-Z. (You should probably follow me on Twitter if you’re not doing so already, cause I tweet about cool Maker shizz ALL THE TIME.)

This dog’s breakfast of electronics parts are jammed into a (hopefully) waterproof Ziploc storage container attached to the back of the wall. It’s a mess back there with the breadboards and jumper wires, but should be good enough for a temporary installation. Note warning label on it to discourage tampering and/or theft.

picovolts

Sun Tzu says: appear weak when you are strong, and strong when you are weak.

Reading From Twitter

Oy. A detailed description of how to do this is beyond the scope of this post. Suffice it to say that I’m using Tweepy, OAuth, and a poorly-written Python script that you can download here. Be sure to swap out my placeholder authorization tokens with your own.

In pseudocode, here’s how this whole thing works:

loop:

read the latest 100 #InternetOfStrangerThings tweets from Twitter
pick a random tweet from the list
filter the results for harsh language
if no appropriate tweet is found, use something benign (HAPPY HALLOWEEN, JUSTICEFORBARB, etc.)
smoosh the tweet into ASCII code

loop:

send the ASCII over serial to the Arduino as bytes
map the incoming byte to a mux pin
light the appropriate LED
wait a little bit between letters

wait a little while between tweets

Presumably one of the chans or reddit will eventually catch wind of this project, so before we send any text to the Arduino it gets filtered against a text file of slurs and epithets I keep around for precisely this purpose. There are kids around, for fuck’s sake.

An old laptop sits inside, shoving sanitized data into the Arduino through a 30-foot USB cable. That’s right, the tweets are coming from INSIDE THE HOUSE.

Download the microcontroller code here for a sterling example of how not to program an Arduino.

Tweet anything you like with the hashtag #InternetOfStrangerThings and it’ll wind up on the wall if your text gets past the filters. I’ll be tweaking the code between now and Halloween to make it more responsive to input from Twitter, and if I can figure out an easy way to set up realtime video stream I’ll do that too.

Happy Halloween if I don’t talk to you sooner. Lao Zheng out.

Yaaar! Here there be décolletage.

So, to recap for those among you who don’t breathlessly follow the twists and turns here at the blog, I’ve been working feverishly on finishing parts of pirate costumes for myself and for the lovely and talented Mrs. Zheng3. Here’s the latest: it’s a Arduino-enabled pirate pendant.

Heads up for readers under the age of 18: this post is rated arrrrrrrrr.

pendant

hurrr durrr heavin bazooms

You can Grab the model and the code from The Forge if you want to give this a go on your own. You’ll need a few other things gathered from around the Internet:

Casting the skull in resin

This pendant presented an opportunity to demonstrate once again that Everything’s Better With Skulls. In hindsight the better solution to this would have been to purchase some transparent PLA and charge forward with a 3D printed skull, but I’d been wanting to try some molding and casting after a couple months’ worth of nonstop 3D printing with Kickstarter backer rewards fulfillment.

(Pro tip: There is no surer way to suck the pleasure of experimentation out of 3D printing than to turn your basement into a production facility with hard deadlines.)

Print the skull as a positive, glue it to a piece of cardboard, and use some Oomoo and a plastic cup to create the mold. The white cruft on the positive is regular old silicone caulk used to smooth out the 3D printing lines before casting.

skull

A few hours of curing later and the mold’s ready.

3dprint and mold

Like all good projects this pendant has been a series of compromises, trying to cram lots of objects into a small, wearable volume. To that end, the skull’s got a fairly low profile, and fitting a pair of LED’s into the space behind the eyesockets requires a little bit of finagling. You can file down the tips of LED’s and they still work just fine. Don’t breathe in the dust, though.

file down LED

Once the LED’s are soldered together in series they can be suspended in liquid epoxy. Mixing up epoxy resin is generally an easy-peasy 1:1 operation but it might take a couple of tries to get the dye proportions correct. Too little dye results in anemic color. Too much and your resin never cures past the cold maple syrup stage.

LEDs in mold

cast skull

Stealing and modifying code

The entire casting process takes a day or two to finish, but it’s mostly sit-around-and-wait-for-things-to-harden time. So while chemical reactions be combobulatin’ in the basement there’s plenty of time to print the pendant body and program the Trinket. Nothing fancy here, just some basic PWM on pin 0. The exact values require some tweaking to get a suitably menacing fade in/fade out of the LED’s.

The code is in the zip file along with the 3D model if you came here looking for info on PWM in general.

pwm test

Charging the battery

First, go grab yourself a Micro LiPo Charger from Adafruit.

warningJST connectors can be difficult to plug and unplug, so I homebrewed a male-female connector out of some headers I had kicking around in the toolbox. BE CAREFUL WITH THIS, especially with LiPo batteries. You do not want to accidentally swap your polarity, overheat the battery, start a fire, and incinerate your family and pets.

lipo charger

Or maybe you do. You monster.

seriously brah you should probably just go read this LiPo safety guide right now.

Again, we want to keep the profile as low as possible so rather than solder a female header directly to the Trinket the headers are soldered to wire and then attached to the board. This allows connections to be moved off to the side when vertical space is at a premium.

crammed

It all fits in there– the battery’s tucked underneath the Trinket. Be careful that you don’t puncture the battery casing with a solder joint when you press everything together. Punctured LiPo==bad gnus. (You read the safety guide, right?)

The back of the pendant press-fits onto the body, but unfortunately I didn’t have the foresight to include an off switch. You’ve got to plug and unplug the battery directly. Next time, maybe.

On the plus side, the battery will run for hours and hours on a full charge. The exact runtime is left as an exercise for the reader.

Adding surface detail

Again with the caulk, smoothing out all the cracks and joins in the multi-part print.

caulk

We can’t very well have the lovely and talented Mrs. Zheng3 wearing a caulked-up bright blue pirate pendant with the rest of her Halloween costume, so we bust out the gold leaf and an hour later we’ve got this:

gold leaf

The shiny gold’s juuuuuuuust a little too fancy for our pirate lass, so quick wash with some diluted black acrylic paint is in order, and we’re done here.

distressed

The Trinket has about a half dozen more free pins than this project requires, so if we ever get around to designing version 2.0 we can put some sensors in and turn this pendant into jewelry that reacts to its environment. I’ve been having some fun driving servo rotation with multiple-microphone input for Plutarch the pirate parrot, so #staytuned for something along those lines.

Lao Zheng out.

Arduino Audio with the WTV020SD-16P

There are plenty of ways to play sound on an Arduino– at the most basic you might burp out some bleeps and bloops with the tone() command, or perhaps drop some coin at Adafruit and get yourself a multifunction music shield.

Our current passion project at Zheng Labs is an audio-enabling upgrade to Plutarch the Pirate Parrot. For this application neither of the above options will quite fit the bill. We want a board that’s inexpensive, light, and small enough to fit inside a roaster chicken’s body cavity while leaving room for a battery pack, microcontroller, and an ever-increasing number of servos.

Enter The WTV020SD-16P. ‘Tis a picky, tricksy little board, but once you get it up and running it’s scrum-diddly-fun to use.

rex

#RAWR! you can download Rex for 3D printing over at the Forge.

To the tutorial!

GATHER YOUR PARTS

  • a WTV020SD-16P
  • a SanDisk 1GB MicroSD card: apparently the WTV020SD-16P can be a little picky about which brand and capacity of MicroSD card will work.
  • a speaker: This one comes with micro-JST connectors, which you can just snip off and plug into your breadboard. I soldered some jumper wires onto mine to make working with the breadboard easier.
    some jumper wires

And of course an Arduino and a breadboard. I dusted off an ancient Duemilanove for this project, but I’d imagine any Arduino will do.

GET THE SOFTWARE

You can get the sample code and the software library you’ll need at the Arduino forum.

Oh God. Forums.

I can’t be the only one who dreads wading into technical forums seeking assistance. In my experience one can find tiny nuggets of precious content only by softing through the dross, dregs and slag of misinformation, know-it-all-ism, and half-baked do-my-homework-for-me questions IN ALL CAPS from engineering undergrads in Gdansk.

Every now and then a patient, knowledgable member with a willingness to shepherd a n00b through a confusing and contradictory information maelstrom will emerge, but more likely than not a cheeto-crusted basement dweller will snidely inform you that a B+ in Electrical Engineering 101 at Carnegie Mellon is a prerequisite for posing a question to your betters.

Thankfully, the Arduino forum’s friendlier than most, and it’s a decent place to start looking for information about the WTV020SD-16P. There’s still a lot to unpack and sort out before you get your board talking, though.

Once you’ve gotten the sample code from the forum you’ll no doubt come across this image in all its JPEG-compressed glory. It’s the second post on the forum. You can’t miss it.

schematic

I can’t stress this enough: do not use this image as your Virgil to guide you through this particular circle of Arduino Hell. There’s nothing inaccurate about it, but there’s too much information here for those who want to just plug this thing into an Arduino without having to first procure an EE degree, and some of it is misleading.

This schematic will get you a WTV020SD-16P that works in standalone mode with some pushbuttons, to be sure, but if all you want to do is control the board with Arduino code this wiring diagram is overkill. For one, the pins in this schematic don’t match the pins specified in the sample code right above it, which is one of those Things You Don’t Know You Don’t Know if you’re just starting out.

My edited schematic is a little simpler and balls-on accurate, I promise. Behold!

schematic simple

You’ll note that the sample code includes a declaration for a Busy pin. It’s used for asynchronous audio play but we’re keeping things simple and not using it in this tutorial. Also, you’ll see several pins on the WTV020SD-16P labeled as NC: they’re Not Connected to anything and can be safely ignored.

If reading schematics ain’t yo thang, here’s what it looks like IRL:

wiring

To recap:

  • Arduino 3V3 to pin 16 (top right of the board)
  • Arduino pin 2 to pin 1
  • Arduino pin 3 to pin 7
  • Arduino pin 4 to pin 10
  • Speaker + to pin 4 (usually this is the red wire)
  • Speaker – to pin 5 (usually the black wire)
  • Arduino GND to pin 8

ACQUIRE AUDIO:

You can download the commonly used sample .ad4 files here, or use mine which IMHO are better for diagnostics and have the added benefit of not dancing on the knife’s edge of fair use and international copyright law violation.

If you’re visiting the blog from abroad you also can use my files to learn what a nondescript northeastern American accent sounds like. No charge.

Unzip the archive and drop the files into the root directory of your FAT16-formatted MicroSD card. Files must be named 0000.ad4, 0001.ad4, 0002.ad4, etc. The WTV020SD-16P supports up to 512 audio files, which should be enough for all but the most loquacious of parrot puppets.

Creating your own .AD4 files from WAV or MP3 of AIFF is brain-dead easy with this OSX tool, but you’ll need to install the JDK first.

Be sure to have your source audio sampling rate set at 32kHz or the software won’t produce any output and (not helpfully) any error messages indicating that there’s a problem.

SOFTWARE:

On OSX, drag the library folder into ~/Documents/Arduino/libraries/

The sample code on the forum shows off everything the library can do, but it’s too much for a proof of concept and has some English errors that introduce ambiguity in the comments. Let’s do some minor surgery.

  1. Cut out everything in between the curly brackets of the loop() function.
  2. Paste the following between the now-empty curly brackets after loop():
int r=random(0,6);
wtv020sd16p.playVoice(r);
delay(1000);

Power up your Arduino, upload the new code and you should be good to go. Good luck, and please post in the comments if I screwed anything up in the tutorial.

Watch this space for news on Plutarch 2.0’s evolution over the next few months. He’s scheduled to debut on Halloween 2017. You might consider watching his progress on Instagram or Twitter: that’s where the microupdates get posted first.

Lao Zheng out.

Plutarch 1.0: finished, still not a robot

After this stability test it’s pretty safe to say that Plutarch is 97% ready to make his debut at J’s Halloween party later this year.

So how did we get here? When last we left our hero he was a naked 3d printed shell enclosing a buggy and unstable collection of wires and electronics.

Rubber cementing the feathers to the body was strikingly straightforward, the only caveat being that one needs to layer the plumage and make sure that none of it gets into the spaces between moving parts.

fledging collar

I ran out of feathers during the fledging process so he’s still got three percent’s worth of bald spots to fix during the 138 days before Halloween.

Epoxying the googly eyes is simple enough. Next time I’ll include 3D printed eye socket markers so I can be sure that Plutarch isn’t walleyed.

googly eyes

Here’s the thing about googly eyes. You can’t buy just two. You have to get a whole mess of them.

Epoxy is enlisted once again to affix the wing feathers to the body, as they’re too heavy to attach with rubber cement alone.

fledging wings

A clever designer would have included tail feather mounting holes in the original 3D printed body, but unfortunately no clever designers showed up to work on body design day. So Plutarch got a few aftermarket holes drilled in his rump.

drill

You may feel some slight pressure, Mr. Plutarch. Please try to relax.

OK! So! Forty-five minutes of fledging and butt-drilling hence, Plutarch’s ready for his big reveal to the family.

too sexy

Possibly too sexy for your cat.

You can see an original Pirate Parrot Accessory in the background of the photo above– one of his duplicates was cannibalized to provide most of Plutarch’s feathers. I bought a bag of blue turkey flats to compensate for the feather shortfall and still didn’t have enough.

The kids (and, of course the Lovely and Talented Mrs. Zheng3) have been watching Plutarch’s progress in bits and bites for the last few months, and they’re assembled in the kitchen for Opening Night. Plutarch is perched, powered up, and ready to go. I hit the button on his remote that makes him shake his head and… BAM.

broken

To everyone’s horror (except the cat, who gives approximately zero f*cks) Plutarch torqued himself off my shoulder, broke a foot, and snapped his battery cables.

Gah. I pinned the broken foot with a couple of epoxy-coated finishing nails and set the patient aside.

Another setback. We were so close.

The epoxy cure delay allows for a few hours of self-reflection. Why am I doing this? Is making an animatronic parrot really best way for me to spend my limited time on earth? How do magnets work, anyway?

Magnets. We need moar magnets. Better-positioned ones, too.

The original perch design put the magnets on the underside of a steel can lid, relying on luck to link up with the magnets embedded in Plutarch’s toes. Fearful of another catastrophic and embarrassing fall, I moved the magnets to the top of the lid and made sure they’re aligned as closely as possible with their mates above.

magnets

The video at the top of the post proves that this time Plutarch stayed put.

But. BUT! Even after all this improvement, Plutarch, while ready for primetime performance, is still not a robot. He’s best described as an animatronic parrot. Roboticization– the addition of sensors and the ability to respond to an environment– shall have to wait until Halloween 2017.

So here’s what I’ve got planned for Plutarch’s next year:

  • improved internal accessibility
  • 2-axis head movement
  • articulated beak
  • audio
  • some kind of sensor ability, for crissakes

#staytuned.

Tales of Plutarch’s earlier incarnations can be enjoyed here and here.

Lao Zheng out.

Plutarch: 148 Days until Halloween

Longtime readers of the blog will recall the first mention of Plutarch the parrot some time ago. To recap: I’m building an animatronic parrot as part of my recurrent pirate costume. I’ve had some success this weekend getting Plutarch’s proof-of-concept to the next level.

Plutarch 1.0 is not yet a robot: he currently lacks any way to percieve the world around him and relies entirely on a user with a remote control to direct his movements. Eventually he’ll get some sensors and some programming that will let him interact with the world, but for now he’s not much more than a remote control servo, an Arduino, and 4 AA batteries crammed inside a 3D printed body. One shudders to think of the wacky magnetic fields created by the rat’s nest of wiring inside his shell.

parts

I wrapped his RF reciever in a Ziploc bag and secured it with a rubber band. It works, but hoo doggies is it ugly.

rf

(The remote control is this nifty little guy from Adafruit.)

TODO: Stability and order! The purpose of this test was to ensure that Plutarch’s magnetic feet would be strong enough to keep him perched on my shoulder even with the torque created by whipping his head back and forth. He passes the test (barely) but it’d be nice to have a more reliable connection between man and parrot.

He’s got to stay on my shoulder for a couple of hours at a crowded Halloween party, which gets to be more and more precarious a proposition as the grog starts a-flowin’ and people are maybe not paying quite so much attention to where they’re going.

inside

Changing his batteries requires removing his head and digging out the Arduino and the battery case, which puts some physical strain on the electrical connections. One of them broke.

stress

Boooooooo.

The on/off switch on Plutarch’s back is also frustratingly flaky, a discovery which I of course made after epoxying it into place. I’ll have to get a new one in there before showtime.

Also it’d be really funny if he had a functional USB port in his cloaca.

While I’m waiting for some parts to arrive (I found a dozen replacement switches for the price of a latte) I can catch up on some much-neglected cosmetic additions to our hero. Plutarch’s body will mostly be covered in feathers someday, so there’s no need to worry about the layer lines created by 3d printing for most of his surface.

His beak is another matter entirely. Painting it directly will leave the print layers intact, which is going to look fugly. Instead, I masked out the beak with some painters’ tape and spread a thin layer of silicone caulk– the stuff you use to seal your bathtub– on the surfaces that will be exposed to outside observation.

silicone beak

Pro Tip: gently wipe down the caulk with a wet finger to get it really smooth.

I had some flourescent pink spray paint left over from painting Brenda the Tardigrade, so into the garage went Plutarch’s head for a couple of coats.

masked

Removing the tape reveals that our currently featherless friend is going to need a little touch-up before he’s fledged. Note the difference in texture between the coated beak and the raw plastic. Nice.

final beak

Once he’s stable, functional and unlikely to short himself out, I’ll start attaching feathers, and then Plutarch 1.0 will be done and I can move on to planning Plutarch 1.5 for Halloween 2017.