Some Light Relief—Furby's Brain Transplant

The smash hit toy of Christmas 1998 was Furby. Furby was designed by Californian toy inventor Dave Hampton. Part of Dave's motivation to develop Furby was a reaction against the previous “virtual pet,” the Japanese Tamagotchi. Tamagotchis are bland, inert lumps of plastic. Dave knew he could do better, and he created a fur-covered toy that sings, farts, and wobbles—sometimes all at once. No kid could resist that. In 1998, Furby sold over two million units, and they were actually being rushed by air from mainland China factories to satisfy U.S. market demand! Toys have a limited life. Furby was red hot in 1998, warm in 1999, and by 2000 you could buy one for $9.99 in Target.

Furby is an animated doll about 7 inches high. It looks like a Gremlin from the 1984 movie of that name, and toy distributor Hasbro had to settle an infringement claim from Warner Brothers. Inside, Furby is packed with a rich assortment of devices. It has a microphone, a loudspeaker, infrared transmitter/receiver, light detector, speech generation chip, CPU, EEPROM, and RAM. It has a motor and various cams to animate ears, eyes, body, etc. Obviously, it was imperative to take one of these apart and reprogram it for more useful tasks.

image

Unfortunately, at some point in the past, Furby architect Dave Hampton had been rudely surprised by “potty-mouth Barney,” and he was determined that no one would pull the same stunt with Furby. There was another reason to make it difficult to reverse-engineer Furby: to prevent other toy companies from copying the technology. The world of children's toys is (apparently) a cutthroat, rapacious, dog-eat-dog world, where intellectual property is Napstered on a daily basis, and only the strong survive. The main defense against reverse-engineering Furby was a brittle epoxy shell that completely encased Furby's CPU, ROM, RAM, audio data, and the I/O interfaces such as driver transistors and an analog-digital convertor.

The epoxy made it impossible to clamp a logic analyzer onto the CPU, read the bus traffic, and dump out the control program. It is impossible to chip or grind off the epoxy without destroying the components underneath. Certain U.S. government labs are equipped with the right acids and neutralizers to break into equipment like this. But I don't know anyone at the CIA or NSA, and this didn't seem like the right project to introduce myself. Furby's software and sound data is not accessible for reading, writing, disassembly, replacement, or even examination. There are no exposed data/address buses, interrupt lines, or I/O lines other than those that directly drive the peripherals. Conclusion: Reprogramming Furby would require junking the existing CPU and fitting another CPU and memory—effectively, a Furby brain transplant.

So I issued the “Hack Furby” challenge from my website at afu.com (where I also keep the Java Programmers FAQ). The Hack Furby challenge offered a cash prize for the first person to reverse-engineer Furby or retrofit it with a different CPU. It was similar to challenges issued in the early days of aviation. Almost all the early aviation milestones—Bleriot's flight across the channel, Alcock and Brown across the Atlantic, Lindbergh's solo Atlantic crossing—were in response to a cash challenge, and I felt sure that computer engineers were no less motivated. This was no easy task and almost a year passed by before a winner claimed the prize.

The challenge was finally met by Jeff Gibbons, a talented Canadian computer consultant working for Motorola. Jeff chose the Intel 8051 processor to drive Furby because of the vast amount of free support tools and low cost hardware available. The 8051 is an 8-bit CPU that's been around for about 20 years, and that fully meets the time-honored Intel processor tradition of “ignore all design suggestions from the software guys.” Jeff architected and built replacement circuit boards that fit into the existing space in Furby, after you junk the epoxy-protected boards. The new circuit boards carry the 8051, EEPROM, 1Mbyte RAM, an RS232 port, a power regulator, an amplifier, a digital-analog converter, and tons of support hardware. This was an incredible achievement on Jeff's part. He essentially designed and built a complete general-purpose computer system in four months of evenings and weekends.

After Jeff produced the working hardware, I wrote the first draft of the Furby Programmer's Reference Manual. For a while, Jeff was selling Furby upgrade kits, too. For well under $100 you could convert your Furby into a TV remote controller, a speaking clock, a pocket calculator, a chess machine or anything else that will run on a 20MHz processor and a little over 1Mbyte of RAM. Furby can be programmed in assembler or in C, and you download the program through a tether cable to the serial port on a PC. Clearly, the next step is to get a JVM running on Furby, and bring up Java 2 Micro Edition on Furby. Put a telnet connection on the serial port, and we're really cooking.

For legal and policy reasons, I can't show you a picture of a modified Furby in this book. (How about that!) You've no idea how easily those toy moguls take offense.

But if you hustle over to www.afu.com/furby you can feast your eyes on all the “stripped and re-chipped” Furby pictures that anyone could want.

This whole project was done under GPL, the Gnu Public License, which means we openly published all the schematics, results, software, etc. The goal is to enable volunteers to carry the project forward. If you know a lot about embedded systems and are trying think of what to do with all your plentiful spare time, perhaps Java-powered Furby could be in your future.

Figure 7-1. Hardware labs where work on Furby was done

image

The last word should come from Furby himself. I did the FCC compliance testing on the Furby prototype “borrowing” some time in one of the hardware labs at Sun Microsystems.

FCC testing measures the amount of electronic interference that a product generates. It has to be lower than certain limits to comply with FCC rules. In the photo here, Furby is on the lower TV screen, on a table on a large turntable, executing all his motions and new vocabulary. The upper TV screen shows the very sensitive “bow tie” antenna six meters away, which sweeps for electromagnetic radiation as Furby revolves. The oscilloscope on the right graphs the radio frequencies that Furby radiates in every direction.

There was a lot of unwanted radio wave leakage, known as noise, coming out of hacked Furby. Upgraded Furby failed FCC parts A and B, so Jeff could not sell pre-assembled programmable Furbies, alas. The chief engineer of Sun's FCC lab came in unexpectedly, listened to Furby chirping and jabbering away, and sized up what I was doing in his lab. Then he glanced at the measurements and grunted, “Noisy little critter, ain't he?”

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.129.42.243