How can you turn a redundant, furry, slightly annoying tech pet into a useful home assistant? Zach took to howchoo to show you how to combine a Raspberry Pi Zero W with Amazonâs Alexa Voice Service software and a Furby to create Furlexa.
Furby was pretty impressive technology, considering that itâs over 20 years old. It could learn to speak English, sort of, by listening to humans. It communicated with other Furbies via infrared sensor. It even slept when its light sensor registered that it was dark.
Zach explains why Furby is so easy to hack:
Furby is comprised of a few primary components â a microprocessor, infrared and light sensors, microphone, speaker, and â most impressively â a single motor that uses an elaborate system of gears and cams to drive Furbyâs ears, eyes, mouth and rocker. A cam position sensor (switch) tells the microprocessor what position the cam system is in. By driving the motor at varying speeds and directions and by tracking the cam position, the microprocessor can tell Furby to dance, sing, sleep, or whatever.
Zach continues: âThough the microprocessor isnât worth messing around with (itâs buried inside a blob of resin to protect the IP), it would be easy to install a small Raspberry Pi computer inside of Furby, use it to run Alexa, and then track Alexaâs output to make Furby move.â
What youâll need:
The Raspberry Pi is running Alexa Voice Service (AVS) to provide full Amazon Echo functionality. Amazon AVS doesnât officially support the tiny Raspberry Pi Zero, so lots of hacking was required. Point 10 on Zachâs original project walkthrough explains how to get AVS working with the Pimoroni Speaker pHAT.
A small motor driver board is connected to the Raspberry Piâs GPIO pins, and controls Furbyâs original DC motor and gearbox: when Alexa speaks, so does Furby. The Raspberry Pi Zero canât supply enough juice to power the motor, so instead, itâs powered by Furbyâs original battery pack.
There are three key pieces of software that make Furlexa possible:
- Amazon Alexa on Raspberry Pi â there are tonnes of tutorials showing you how to get Amazon Alexa up and running on your Raspberry Pi. Try this one on instructables.
- A script to control Furbyâs motor â howchooer Tyler wrote the Python script that Zach is using to drive the motor, and you can copy and paste it from Zachâs howchoo walkthrough.
- A script that detects when Alexa is speaking and calls the motor program â Furby detects when Alexa is speaking by monitoring the contents of a file whose contents change when audio is being output. Zach has written a separate guide for driving a DC motor based on Linux sound output.
The real challenge was cramming the Raspberry Pi Zero plus the Speaker pHAT, the motor controller board, and all the wiring back inside Furby, where space is at a premium. Soldering wires directly to the GPIO saved a bit of room, and foam tape holds everything above together nice and tightly. Itâs a squeeze!
Zach is a maker extraordinaire, so check out his projects page on howchoo.