Browsed by
Tag: robot

iRobot Roomba Hacking [Work in Progress]

iRobot Roomba Hacking [Work in Progress]

Another of my thift store finds (and likely the oddest) is an iRobot Roomba 530 for $60, along with its dock, power cord, and two virtual walls. I plugged the charger into the base, sat the Roomba on it, and it started its “deep charge” cycle.

After charging it for 24 hours, I started it up. It backs up, turns, and backs up again, continuing in this pattern for a few rotations before stopping with an Error 9, which the User Manual states is a dirty front bumper.

TODO: Gut an old mouse or other device for its mouse-wheel IR sensor to replace the broken one.

gRover Robotics Platform

gRover Robotics Platform

This is gRover, the Grove-Platform Rover; it is a general, all-purpose rover for house exploration.


This page is a bit of a mess, I’ll admit. The PDF file attached is much neater and contains much more information about the project than this page’s text does. For more pictures, see the gRover Flickr Photoset. This rover build uses parts graciously provided by Seeed Studio.


I purchased an RC car from the thrift store for $2. It had no remote control to go along with it, but it did have a 4.8V Ni-Cad battery pack, a chassis, a steering motor, and a drive motor. While the 4.8V Ni-Cad battery does not have enough voltage to power the I2C Motor Driver (it may be useful in another project), the motors and chassis provide a great base for a robot.


To me, this build was more about making a framework that other users could utilize to easily use the Grove platform to make a rover. I created gRover with the following (easily-modifiable and easily-expandable) features:

  • Autonomous Mode: Drive the rover around autonomously using the on-board sensors for guidance
  • Remote Control: Drive the rover around with commands sent over the serial port (currently non-functional, as it interrupts I2C. A Bluetooth Twig using NewSoftSerial should work well.)
  • Cat Spooker: Lie in wait until a cat approaches, then make some noise and start Autonomous mode (This can be replaced with something more interesting. I’m open to suggestions)
  • Cat Taunter: Make a noise every 15 seconds while there isn’t a cat in the area. (Ditto)
  • Motor Test: Run a test of the motors connected to the I2C Motor Driver Twig
  • Sensor View: Get a live view of sensor data on the OLED Display



Part Name



R/C Truck


Arduino (or Arduino Clone)


Battery Box (Output: 8-15V)


Stem – Grove Base Shield



Twig – OLED Display 128×64



Twig – I2C Hub



Twig – I2C Motor Driver



Twig – I2C Touch Sensor



Twig – Sound Recorder



Twig – Buzzer



Twig – PIR Motion Sensor



Twig – 80cm Infrared Proximity Sensor



Twig – 3-Axis Accelerometer



Twig – Chainable RGB LED



Twig – Sound Sensor



Twig – Vibrator



Grove – Universal 4-Pin Cable (5 ea)


Part Usage: The Twigs perform the following tasks:

  • The 3-axis Accelerometer Twig helps track the rover’s movements, and can be used to tell if it is standing still (despite motors turning) (not currently implemeted into Auto Mode)
  • The OLED Display 128×64 Twig and I2C Touch Sensor Twig are used as a User Interface, mounted on the top of the robot (or under a clear polyurethane shell for weatherproofing). The Vibrator Twig is used as tactile feedback for the I2C Touch Sensor Twig’s buttons, (also known as “feelers”) which aren’t physical buttons but actually touch sensors.
  • The Buzzer Twig is used as audible feedback in addition to the Vibrator Twig’s tactile feedback, and can be used for sound effects if the Sound Recorder Twig isn’t used.
  • The PIR Motion Sensor Twig is set to a fairly short range, and is used to either detect obstacles, or (in some cases) wait for obstacles (like cats!) to approach it.
  • The 80cm IR Proximity Sensor Twig is used to detect obstacles ahead of the rover.
  • The Sound Recorder Twig has various sounds recorded, such as a monster-truck engine and a car horn.
  • The Chainable RGB LED Twigs act as pseudo-Police flashing lights (with two RGB LEDs, flashing in a red/blue pattern)
  • The Sound Sensor Twig is used to control the robot by clapping. (Not currently implemented into Auto Mode)
  • The I2C Motor Driver Twig is used to control the drive and steering motors in the RC car.


For more information, please see the attached PDF file. The code (which is ~1850 lines long, including lots of comments) is attached as a ZIP file.

The code is CC BY-SA licensed to the extent possible, given that the code has minor sections taken from example code from the Seeed Studio wiki (links are available in the PDF and in the code headers), and for the Touch Sensor Twig, from Rory Nugent (cited in the code).  If I have missed a citation, please let me know.

The documentation PDF is CC BY-SA.