Page 17 - Hacking Roomba
P. 17
xvi Introduction
Appendixes
If your electronics hacking skills are a little rusty, Appendix A covers the basics on how to sol-
der circuits and work safely with electronics. Appendix B explains how to interpret common
schematic circuit diagrams like the ones in many of the projects. Appendix C is a reprint of the
ROI specification from iRobot. The ROI is what enables all the hacks in this book, and it is
the authority on how the Roomba can be hacked.
What You Need to Use This Book
Of course you will need a Roomba, one with ROI capability. Chapter 1 describes which
Roombas have ROI. To run the code, you will need a PC with USB and Java JDK 1.5
installed. Windows, Mac OS X, and Linux computers can all fit this requirement. For
Windows and Linux, Java is not installed by default and can be obtained as a free download
from http://java.com/. To write and compile programs, you’ll need a text editor and
knowledge of the command line or experience with a Java IDE. If you’re unfamiliar with how
to create and compile Java programs, there are many tutorials on the Net. This book assumes
basic familiarity with programming and Java. Even so, all code presented in the book is
available in ready-to-run form from www.wiley.com/go/extremetech and http://
roombahacking.com/.
For projects that have circuits, a soldering iron and other tools are required, as well as basic
knowledge of their use. Expect to have on hand a multimeter, wire cutters/strippers, test leads,
and so on. Each chapter describes exactly which tools are required. There is an appendix that
contains a basic overview on soldering, tool use, and electronics assembly. It also covers how
to be safe around these somewhat dangerous tools. There are many good references on the
Internet going into more depth on these topics than this book has room for, so some of my
favorite electronics “how-to” sites will be listed in that appendix as well.
Many of the circuits presented in this book can be purchased as kits or fully assembled from
various suppliers. Notably, RoombaDevTools.com provides fully assembled Roomba interfaces
that are functionally identical to the interfaces provided in Chapters 3 and 4.
To build the circuits, various electronic components are required. Only a few components are
more than a dollar or two. There are several suppliers for these components: Digikey (http://
digikey.com/), Mouser (http://mouser.com/), Jameco (http://jameco.com/), and
Radio Shack (http://radioshack.com/) are four of the more popular. Sparkfun (http://
sparkfun.com/) is a great source for the specialized components used. Throughout this book,
Jameco part numbers will be used when possible for the commonly available parts. Jameco is a
great resource that is very popular. They stock almost anything an electronics hobbyist needs, at
decent prices; they ship fast; and, most important, they have an easy-to-use web interface.
Jameco also sells all the tools needed for the projects in this book.
The later projects assume some experience in microcontroller programming. While this book
hasn’t the space to go into how to do this, it’s not that different from programming on a PC,
and controlling the Roomba would be a great excuse to learn about it.