Roomberry: Building a Roomba‑Powered Surveillance Robot with Raspberry Pi Zero W
Roomberry is a custom surveillance robot that transforms an iRobot Roomba into a mobile camera platform powered by a Raspberry Pi Zero W and a CSI camera module.
In this guide you’ll learn how to wire the Roomba’s Open Interface (OI), power the Pi from the Roomba’s battery, configure the Raspberry Pi for headless operation, and build a compact enclosure that gives you full access to all ports.
To see Roomberry in action, watch the demo video that showcases the robot’s movement, live‑streaming camera, and web‑based control interface.
Understanding the Roomba OI
iRobot’s Roomba 600/700/800 series expose a mini‑DIN connector that implements the Open Interface (OI). The OI is a two‑way TTL serial link (115 200 baud) that lets you send movement commands, read sensor data, and control the robot’s LEDs and speaker.
The OI supports four operating modes:
- Off – The default state. The robot listens for an
Startcommand. - Passive – You can read sensors but not control motors.
- Safe – Full motor control with safety checks (cliff, wheel‑drop, charger).
- Full – Full motor control without safety checks – use with caution.
In Passive mode the robot automatically sleeps after five minutes of inactivity. Safe and Full modes keep the robot awake indefinitely, so remember to return to Passive or Off once a job is finished to protect the battery.
Serial Connection & Logic Level Conversion
The Roomba’s TxD pin outputs 5 V, which can damage a Raspberry Pi Zero W’s 3.3 V logic. Use a bi‑directional logic level converter (e.g., Adafruit’s bidirectional level shifter) or a resistor divider for low‑speed data. The converter must handle 115 200 baud, so an active device is recommended.
Powering the Raspberry Pi from the Roomba
Directly using the mini‑DIN 7 power pins (Vcc – Gnd) is limited to 200 mA due to a PTC resettable fuse. The Pi Zero W alone can run on 150–180 mA, but the camera adds 300–450 mA peaks, which repeatedly tripped the fuse.
The solution is to bypass the fuse and tap the battery pads on the Roomba’s motherboard. After partially disassembling the robot, solder a pair of cables to the battery pad. This provides the full 10–20.5 V output, which must be stepped down to a regulated 5 V.
We recommend a switching buck regulator such as the Pololu D24V5F5. It accepts up to 36 V, outputs 5 V with 85–90 % efficiency, and supports 500 mA – enough for the Pi Zero and camera. Connect the regulator’s output to a micro‑USB cable that plugs into the Pi’s power input.
Enclosure & Hardware Layout
For a clean build we use a 12 × 10 pin PCB as a small HAT that houses the logic level converter, a momentary reset button, and the Pi Zero W. The case is a standard Raspberry Pi case modified with a notch for the micro‑USB cable and a hole for the CSI camera connector.
The reset button is wired to the Pi’s RUN pin, allowing you to reboot the system without disconnecting power.
Configuring Raspbian (Stretch Lite)
1. Disable the serial console: raspi-config –> Interfacing Options –> Serial (set “No” for login shell, “Yes” for UART). Or edit /boot/config.txt to comment console=serial0,115200 and add enable_uart=1.
2. Enable the camera: raspi-config –> Interfacing Options –> Camera or set start_x=1, gpu_mem=128, disable_camera_led=1 in /boot/config.txt.
3. Disable swap and mount /tmp as a 50 MB RAM disk. Adjust /etc/fstab and commit_time=30 to reduce wear on the SD card.
4. Optional power‑saving tweaks: disable HDMI (tvservice -o), disable the activity LED, and disable Bluetooth (dtoverlay=pi3-disable-bt).
Testing the Serial Interface
Install minicom (sudo apt-get install minicom) and connect to the Roomba’s serial port:
minicom -b 115200 -o -D /dev/serial0
If the robot is docked, you should see a live stream of sensor data. Press Ctrl‑A then X to exit.
Running Roomberry
With the Pi powered, camera enabled, and the serial link established, you can now launch the Roomberry control script (not included here). The web interface allows you to command movement, capture images, and stream video.
For a complete walkthrough, watch the demo video and follow the step‑by‑step instructions above.
Safety Tips
- Always return the robot to Passive or Off mode after use to avoid deep battery discharge.
- Use a reputable buck regulator; cheap Chinese clones can be unreliable.
- When tapping the battery pads, double‑check polarity and keep the wiring tidy to prevent shorts.
- Provide a fresh, high‑capacity microSD card to extend its lifespan.
Manufacturing process
- The Evolution and Design of Modern Cameras
- Understanding Camera Lenses: Design, History, and Future Innovations
- Industrial Robots: Design, Manufacturing, and Future Trends
- BrickPi Bookreader: Automate Kindle Reading with Raspberry Pi and LEGO Mindstorms
- DIY Wall‑E Inspired Raspberry Pi CD‑Box Robot
- Rolling Alarm Robot: A Smart, Mobile Wake‑Up System Powered by Raspberry Pi and Google Calendar
- Roomberry: Building a Roomba‑Powered Surveillance Robot with Raspberry Pi Zero W
- ROCR: A Lightweight, Energy‑Efficient Robot That Climbs Walls Like a Gibbon
- Control Your Roomba Create 2 Using Arduino and Android: A Step-by-Step Guide
- Portable Remote Surveillance Camera System