86
Part I: Basic Hacks, Tools, and Techniques
The empty flash board is a little bigger than a penny. You can see a picture
of the board without the flash part in Figure 5-34.
Place the board in the slot flash label facing outward. Flux the edge and
solder it in place. Installed, it will look like Figure 5-35.
Test this board by loading the post_final.asm file. You will need to first
assemble it and then download the resulting post_final.hex file with termi-
nal program (9600bps, 8n1, flow control off) attached. After downloading
this code and starting the PC terminal software, it should say whether or
not the serial flash is readable and writeable.
7. Reassemble the Furby
To reassemble your Furby, hold the left side of the shell in place and mark
the location of the jack with the printer’s knife. Take the shell off and drill
a hole at the mark you just made. Place the half shell back on and adjust
the size of the hole so that the plug fits. Your Furby will look like himself
again (see Figure 5-36).
Software Setup Instructions
You will now need software tools for programming your new Furby.
Furby has been upgraded to use the venerable 8051 processor, which has
been around since 1980 and has the widest range of variants of any embed-
ded controller on the market. Freely downloadable software tools abound
for the 8051. It has a small package, modest power requirements, and is
inexpensive.
The hacked Furby is currently programmed in either 8051 assembler (most
efficient) or C (complete with an API), so you will need to be (or become)
familiar with one of those. The 8051 is a simple 8-bit CPU with a single
accumulator; if you know any assembly language you can quickly pick
up the 8051. Some resources to help you are listed in the following sec-
tions. All of the source code is in the public domain, and I hope that other
Furby-hacking enthusiasts will write their own code and release it onto the
Internet.
By virtue of the hardware design of the hacked Furby, there is no external
memory. This means that MOVX commands and the like will not work.
The hacked Furby has two 128-byte blocks of memory. The lower block is
directly and indirectly accessible; by default, the registers and stack occupy
this memory. The upper block is also 128 bytes and is indirectly accessible.
There is also 1028 bytes of external RAM, which can be accessed with
MOVX commands.
Figure 5-35:
Memory chip installed on PCB
Figure 5-36:
Reassembled Furby
Figure 5-34: Memory PCB
Software Setup Instructions
ch05_furby.indd 86
1/21/2002 12:33:04 PM
87
Chapter 5, How to Hack a Furby (and Other Talking Toys)
You will need software to program the new Furby boards. You can down-
load a copy of this software from http://www.appspec.net/index.html.
Must-have software
There are a number of software utilities and packages that you will need in
order to develop for your hacked Furby.
The Small Device C Compiler allows you to write your software in a
high-level language. A copy can be obtained at http://sdcc.sourceforge.
net/.
You will also need an 8051 assembler (mlasm51.exe) to assemble the
code produced by the C compiler, or if you want to write everything
directly in assembly. A copy can be found at http://www.atmel.com/
atmel/products/prod74.htm.
The Atmel flash update utility (WinISP) that allows you to program
the chip via its serial port can be found at http://www.temic-semi.
com/upload/dev_tools39dd839562c61.zip. The Phillips ISP can also be
used, but the two chips are different enough that some functions of the
Phillips ISP dont react normally. Beware.
All sound-file conversion and manipulation can be accomplished with
the SOX utility. A copy can be found at http://www.spies.com/Sox/.
You will need to convert between hex and binary file formats for the
sound files. For this, I suggest you use the Bin2Hex and Hex2Bin
utilities. Copies can be found at http://www.atmel.com/atmel/products/
prod74.htm.
Nice-to-have software
Although not required, there are a number of software tools that can make
development easier. You may want to run your software on a simulator to
debug the basic logic before running it on the real hardware platform. A few
8051 simulators for Windows can be found here:
http://www.atmel.com/atmel/products/prod74.htm
http://www.hte.com/html/8051sim.htm
http://www.dontronics.com/8051sim.html
Useful information
If you want to learn more about the processor for the system and its archi-
tecture, you can look at the “8051 chip FAQ” here:
http://www.landfield.com/faqs/microcontroller-faq/8051/
Software Setup Instructions
ch05_furby.indd 87
1/21/2002 12:33:04 PM

Get Hardware Hacking Projects for Geeks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.