Page 85 - Hacking Roomba
P. 85
66 Part I — Interfacing
the trick. As in most cases of build-vs.-buy choices, RooTooth is more expensive than building
it yourself. Otherwise it’s functionally identical to the circuit presented here and will work with
all the example programs in this book.
FIGURE 4-1: RoombaDevTools RooTooth Bluetooth Roomba adapter
Why Bluetooth?
Bluetooth is a technology for creating wireless personal area networks (PANs). Unlike Wi-Fi net-
works, which can have hundreds of users and extend over great distances, PANs were designed
to be close to a single person. The original idea is that many single-purpose devices like head-
sets, displays, network adapters, PDAs, personal storage devices, and so on could all talk to one
another wirelessly in an easy-to-use and secure fashion. When it was first designed in the late
1990s, Bluetooth was originally meant to be a low-power, low-bandwidth protocol. But when
protocol issues arose that made various manufacturers incompatible with one another coupled
with Bluetooth chipsets that weren’t cheap enough, Bluetooth languished for several years, only
becoming popular among a few cell phone makers as a wireless headset technology.
The Bluetooth designers have been working continuously to update the protocol, and the cost
of implementing Bluetooth in a device has been plummeting. Today Bluetooth is more perva-
sive than ever. Bluetooth mice and keyboards are incredibly common. Many cars now have
Bluetooth hands-free interfaces for cell phones. The next generation of game consoles uses
wireless controllers, using Bluetooth or Bluetooth-like technology. All new computers and
PDAs seem to have Bluetooth. And on the hacking front, the Lego Mindstorms NXT (a great
companion kit to Roomba hacking) uses Bluetooth to download programs into its brain.
Recently SparkFun (http://sparkfun.com/) created a relatively inexpensive little board
called the BlueSMiRF, which incorporates a Bluetooth serial interface. Now it’s easy for hackers
to add Bluetooth to the gadgets they create. The BlueSMiRF is what is used in this project.