Niflheim World

Welcome to Niflheim !

  • First 5 messages from new users (pre-moderated user) will be checked for flood/spam before being posted on the forum. Users will also be checked for a multi-account.
    If you want to communicate without delay, get a free Huscarl status (how to get - User Groups), or buy premium status to see all hidden content (how to buy - Premium status)

    The administrator has only one telegram - @ftmadmin and our chat - Link on chat

Hacking Roomba


protectaccount

New user
Landboar
Joined
Nov 26, 2025
Messages
78
Reaction score
1
NL COIN
333
[HIDE]


Screenshot_7.jpg
Contents at a Glance

Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Part I: Interfacing
Chapter 1: Getting Started with Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Chapter 2: Interfacing Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Chapter 3: Building a Roomba Serial Interface Tether . . . . . . . . . . . . . . . . . . . 41
Chapter 4: Building a Roomba Bluetooth Interface . . . . . . . . . . . . . . . . . . . . . 65
Chapter 5: Driving Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Chapter 6: Reading the Roomba Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Part II: Fun Things to Do
Chapter 7: Making RoombaView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Chapter 8: Making Roomba Sing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Chapter 9: Creating Art with Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Chapter 10: Using Roomba as an Input Device . . . . . . . . . . . . . . . . . . . . . . 189
Part III: More Complex Interfacing
Chapter 11: Connecting Roomba to the Internet. . . . . . . . . . . . . . . . . . . . . . 205
Chapter 12: Going Wireless with Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Chapter 13: Giving Roomba a New Brain and Senses . . . . . . . . . . . . . . . . . . . 257
Chapter 14: Putting Linux on Roomba. . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Chapter 15: RoombaCam: Adding Eyes to Roomba . . . . . . . . . . . . . . . . . . . . 333
Chapter 16: Other Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Appendix A: Soldering and Safety Basics. . . . . . . . . . . . . . . . . . . . . . . . . . 383
Appendix B: Electrical Diagram Schematics . . . . . . . . . . . . . . . . . . . . . . . . 405
Appendix C: iRobot Roomba Open Interface (ROI) Specification . . . . . . . . . . . . 415
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

Contents
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Part I: Interfacing
Chapter 1: Getting Started with Roomba. . . . . . . . . . . . . . . . . . 3
Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
What Is Roomba?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Which Roomba Cleaners Are Hackable?. . . . . . . . . . . . . . . . . . . . . . . . 5
Internal and External Components . . . . . . . . . . . . . . . . . . . . . . . . . . 13
OSMO//hacker: Hope for Older Third Generation Roombas . . . . . . . . . . . . 16
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 2: Interfacing Basics . . . . . . . . . . . . . . . . . . . . . . . 19
What Can Be Done with the ROI? . . . . . . . . . . . . . . . . . . . . . . . . . . 19
The ROI Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
The ROI Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Introducing the RoombaComm API . . . . . . . . . . . . . . . . . . . . . . . . . 39
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Chapter 3: Building a Roomba Serial Interface Tether. . . . . . . . . . . 41
Alternatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Parts and Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
The Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Building the Serial Tether . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Connecting to a Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Commanding Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Chapter 4: Building a Roomba Bluetooth Interface . . . . . . . . . . . . 65
Alternatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Why Bluetooth? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
How Bluetooth Works. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Parts and Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
The Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Building the Bluetooth Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Setting Up Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Testing Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Using the Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Making RoombaComm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Chapter 5: Driving Roomba. . . . . . . . . . . . . . . . . . . . . . . . 89
The Roomba Motors and Drive Train. . . . . . . . . . . . . . . . . . . . . . . . . 89
The ROI DRIVE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Simple Tank-Like Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Moving in Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Real-Time Driving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Writing Logo-Like Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Chapter 6: Reading the Roomba Sensors . . . . . . . . . . . . . . . . 109
Roomba Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
ROI SENSORS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Parsing Sensor Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Using Sensor Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
BumpTurn: Making an Autonomous Roomba. . . . . . . . . . . . . . . . . . . . 122
Measuring Distance and Angle . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Spying on Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Part II: Fun Things to Do
Chapter 7: Making RoombaView . . . . . . . . . . . . . . . . . . . . 131
About Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Using RoombaComm in Processing . . . . . . . . . . . . . . . . . . . . . . . . . 136
Designing RoombaView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Chapter 8: Making Roomba Sing . . . . . . . . . . . . . . . . . . . . 151
Sonic Capabilities of Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
ROI SONG and PLAY Commands . . . . . . . . . . . . . . . . . . . . . . . . . 154
Playing Roomba as a Live Instrument . . . . . . . . . . . . . . . . . . . . . . . . 157
Roomba Ringtones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
RoombaMidi: Roomba as MIDI Instrument . . . . . . . . . . . . . . . . . . . . 161
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Chapter 9: Creating Art with Roomba . . . . . . . . . . . . . . . . . . 167
Can Robots Create Art? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Parts and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Adding a Paintbrush to Roomba . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
What Are Spiral Equations? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Drawing Spirals with RoombaSpiro . . . . . . . . . . . . . . . . . . . . . . . . . 184
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Chapter 10: Using Roomba as an Input Device . . . . . . . . . . . . . 189
Ways to Use the Roomba’s Sensors. . . . . . . . . . . . . . . . . . . . . . . . . . 189
Using Roomba as a Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Using Roomba as a Theremin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Turning Roomba into an Alarm Clock. . . . . . . . . . . . . . . . . . . . . . . . 200
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Part III: More Complex Interfacing
Chapter 11: Connecting Roomba to the Internet . . . . . . . . . . . . 205
Why Ethernet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
What Is Ethernet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Parts and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
SitePlayer Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Lantronix XPort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Modifying RoombaComm for the Net. . . . . . . . . . . . . . . . . . . . . . . . 225
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Chapter 12: Going Wireless with Wi-Fi . . . . . . . . . . . . . . . . . 231
Understanding Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Parts and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Building the Roomba Wi-Fi Adapter . . . . . . . . . . . . . . . . . . . . . . . . 241
Controlling Roomba through a Web Page . . . . . . . . . . . . . . . . . . . . . . 248
Putting It All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Going Further with LAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Chapter 13: Giving Roomba a New Brain and Senses . . . . . . . . . . 257
Microcontroller vs. Microprocessor . . . . . . . . . . . . . . . . . . . . . . . . . 257
Parts and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Adding a New Brain with the Basic Stamp . . . . . . . . . . . . . . . . . . . . . 261
Adding a New Roomba Brain with Arduino. . . . . . . . . . . . . . . . . . . . . 276
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Chapter 14: Putting Linux on Roomba . . . . . . . . . . . . . . . . . 297
Linux on Roomba? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Parts and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Installing OpenWrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Controlling Roomba in OpenWrt . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Making It All Truly Wireless. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Chapter 15: RoombaCam: Adding Eyes to Roomba . . . . . . . . . . . 333
Parts and Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Upgrading the Brain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Controlling Roomba from C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Putting It All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Chapter 16: Other Projects . . . . . . . . . . . . . . . . . . . . . . . 365
Autonomous Roombas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Roomba Costumes and Personalities. . . . . . . . . . . . . . . . . . . . . . . . . 370
Roomba APIs and Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Warranty-Voiding Hacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Appendix A: Soldering and Safety Basics . . . . . . . . . . . . . . . . 383
Appendix B: Electrical Diagram Schematics . . . . . . . . . . . . . . . 405
Appendix C: iRobot Roomba Open Interface (ROI) Specification . . . . 415
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427



Link:

[/HIDE]
 
shape1
shape2
shape3
shape4
shape7
shape8
Top