As a geek father, I have a reputation to uphold. And BearDuino has helped me maintain some shred of credibility with my kids... while creeping them out a bit in the process.

The BearDuino is a hardware-hacked Teddy Ruxpin—the infamous animatronic talking story-time teddy bear unleashed in all its uncanniness on the world in the 1980s—that has been turned into a kit for use with an Arduino microcontroller, ready for would-be makers to use for good or evil.

I've been itching to do something with the open-source Arduino for a while. I like to break things to figure out how they work and then reconstruct them, and I have a closet full of projects completed or in progress—and the associated debris to prove it. But for the most part, I've shied away from electronic hardware hacks.

That's because despite the various science fair disasters I have "helped" my kids with (potato guns of various calibers that have burned my eyebrows in the name of middle school science fairs and various projects involving model rocket engines that should probably never see the light of day again), the electrical wiring projects I've done, and the computers I've repaired, electronics have remained outside of my comfort zone. Software is my game.

Arduino, however, offers a bridge out of the comfort zone. My son bought me an Arduino as a gift a while back, and I'd simply been waiting for the opportunity to get started with it, with the goal of eventually creating an army of robotic minions. All I really needed was a gentle push to get me started. When I went to the Bay Area Maker Faire a month ago, I got that gentle push from Sean Hathaway in the form of the BearDuino.

The art of creepy

Hathaway is a Portland hardware and software hacker and artist associated with AFRU Gallery. He is the cocreator of T, E.D. (Transformations, Emotional Deconstruction), an installation work he originally displayed in 2012. Intended as a sort of thermometer for the emotional temperature of the Internet, T, E.D. used an array of 80 hacked Teddy Ruxpin animatronic teddy bears. "As a child I was scared of these bears (I’m not alone) for their vague and gross mechanical representation of a living thing, but this is a character I find very suiting for the installation," he wrote in an explanation of the installation.

The bears, driven by some custom-designed "Beartroller" electronics, were animated to speak in sync with synthesized voices reading content collected from the website WeFeelFine.org—anonymized blog posts categorized by emotional content and gender. The voices were accompanied by music from collaborator and cocreator Carlos Severe Marcelin, with computer-controlled robotic spotlights lighting each bear as it "spoke" (You can read about T, E.D. on Hathaway's blog).

There was a smaller version of T, E.D. on display at MakerFaire. But Hathaway wanted to do more than just show the installation—after all, this was MakerFaire. And as it turns out, in the process of sourcing the bears for the original installation, he picked up a substantial number of spares. So he decided to extend the life of the project by giving the bears away as BearDuinos and by publishing open-source code to make them come to life.

And that's how a gutted Teddy Ruxpin in a Ziploc plastic bag came into my possession—and my personal dive into Arduino finally got rolling.

Bringing BearDuino to life on my kitchen table.

Ready to roll (eyes)

Hathaway had already done the dirty work of gutting the bears of their cassette player innards and preparing the control wires for the servos that drive their mouths and eyes for connection with an Arduino. There are three wires for the servo: power, ground, and signal. Hathaway spliced these to a ribbon cable with a connector on the end that is friendly to the kinds of wires used as jumpers on electronics breadboards (and are part of most Arduino starter kits). He also wrote a "sketch"—a set of code for the Arduino controller to drive the servo—and sample Windows code to make it work.

Arduino code looks a lot like Java or JavaScript, so if you've done any sort of scripting in the past, it's fairly easy to decipher:

There's just one servo in the bear's head to drive both the mouth and the eyes, so it's not exactly rocket science to hack the bear—the main trick is synchronizing the movements with the processed text stream. The BearDuino sketch code drives the servo based on serial input sent from the PC, mapping the values to a range of 180 degrees of motion.

Most of the complexity is on the Windows code side. The application uses Windows' built-in voice synthesizer for text-to-voice and sends sets of values through the Arduino to drive the servo's movements, treating the Arduino as a serial port and device. There's also a bit of calibration required for the servo, since each Teddy Ruxpin servo is a special snowflake with some minor variation in positions for eye and mouth opening and closing.

A literary interlude with BearDuino.

Downloading the software and uploading the sketch to the Arduino took up the majority of the twenty or so minutes it took me to get the BearDuino up and running. But it's going to be weeks (or months) before I'm actually done with it. My next project is to directly wire BearDuino into the Internet with Web protocols and create a REST-based BearDuino as a Service (BaaS).

Then I'll start working on that robot army.