Raspberry Pi Robot Build 4: Suspension Upgrade & Electronics Mounting Board

In this post, you will see my progress on the physical construction of my raspberry pi robot starting from a used Roomba 435. After hours of testing, I discovered my Roomba 435‘s logic board had an old firmware and would not allow me to communicate with it via it’s serial command interface without paying to flash it with version 2.1. I figured for the price to flash the logic board (ship both ways plus the service charge) and considering I already had an Arduino Mega to use as the micro-controller, it would be cheaper not to use the OEM logic board (for right now).

I first purchased a seeed studio motor shield at Radio Shack to test out my concept. After a successful proof of concept:

POC Motor Shield

Review & POC Video: 

I ordered two motor shields to control each of the OEM DC motor units. Each shield can power 4 DC motors or 2 stepper motors (or 1 stepper motors & 2 DC motors) as well as 2 servos, so I have plenty of flexibility to expand the project. I will be using the stock DC motors, wheels and gears. I will eventually integrate the OEM wheel encoders. Utilizing the wheel encoders will allow me to accurately sense direction, distance, velocity and acceleration.

After figuring out what components I was going to use, I needed to build an electronics mounting board so that I could keep all the parts organized and safe. I wanted to mount the Raspberry Pi, two motor controllers and the Arduino Mega in the empty space where all the vacuum parts used to be. I used a spare piece of plexiglass as the mounting platform. I placed the components in the best configuration possible and marked all the mounting holes with a marker. I drilled out each hole to mount different size standoffs for the component to mount to.

Once I had all the components securely mounted on the plexiglass, I had to secure the plexiglass to the Roomba’s frame. I used a couple of screws to hold it initially, but then remembered I had some polymorph left over from another project. The  polymorph is what is really holding the two pieces together. If you have never used it before, I would recommend grabbing some and start playing around.

The OEM springs that came in the Roomba 435 were too weak and needed to be much more rigged to hold the weight of the new electronics plus future add-ons. First, I removed the front spring completely and secured it by jamming polymorph into the mounting hole. The wheel still pivots, but no longer moves up and down. After fixing the front wheel, I replaced both rear springs with much larger ones. The rear suspension is still flexible, but it is much more rigid and sturdy now.

Raspberry Pi: PiBerry 0.9a

Update: I have updated the link below to version 0.9a, I fixed the icon issue.

raspberry pi

I am excited to release the alpha version of PiBerry 0.91a, A Raspberry Pi SD Card Utility. I initially developed PiBerry to make backing up and restoring SD cards easier. I have also incorporated the ability to setup a SD Card for its 1st use using any of the standard Raspberry Pi SD card images. The backup and restore process have an option of using a standard (.img) or a compressed (gzip) option. Using compression will substantially reduce the size of the backup but it will also make the process take much longer (backing-up or restoring). Continue reading or watch this video to learn more about and how to use PiBerry.


Click here to download PiBerry 0.9a

I am currently working on the beta version that will make the application much more user friendly.The current version of PiBerry asks a series of questions via separate popups. The next version (beta) will consolidate each option within one window.The current version also allows the use of the system disk, this will be removed in the next version.

Sneak Peak at the next version:

Sneak Peak at Version 0.1b



Video Demo



How To Use PiBerry 0.9a


    1. Open PiBerry:
      PiBerry Icon
    2. The 1st window ask:PiBerry 1st Menu


  1. Do you need to view the disks mounted to your computer?
    View Disks?

    1.  The No option skips to step number 4. 
    2.  The Yes will display a dialog of all disks mounted.Disks Mounts


  2. Select the disk to use:
  3. Select folder or backup to use:
  4. Choose the Backup/Restore type: The Setup option skips to step number 7. 
  5. Verify all the information:
  6. Enter you admin credentials:Admin Password
  7. Wait for PiBerry to quit:PiBerry Is Running




*~ This program is free software. It comes without any warranty, to ~*
*~ the extent permitted by applicable law. You can not redistribute it ~*
*~ and/or modify it under with out written permission from Bryan Ribas. ~*
*~ This software was developed for my own entertainment or purpose. ~*
*~ All programs offered for download have been executed repeatedly on a ~*
*~ variety of Macintosh OSX based machines. The software comes AS IS. ~*
*~ No warranties, express or implied, are given. They have been offered ~*
*~ in good faith and any consequential damage due to their use is the ~*
*~ sole responsibility of the user accessing the system in question ~*
*~ and operating the software on it.Every file and program has been ~*
*~ tested, but due to the many factors which can vary the software cannot~*
*~ be guaranteed to work on all systems and with all versions of OSX. ~*





Raspberry Pi Robot Part 1: Roomba Teardown

Updated: More Photos

In anticipation of receiving my Raspberry Pi

Raspberry Pi

The Raspberry Pi is a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of raspberry pi

this week I wanted to get a head start one of my next projects, PiRobot. PiRobot is going to be a web site controlled robot powered by a Raspberry Pi. The website will utilize webiopi to control the Raspberry Pi’s general purpose in/output ins (GPIO). For network connectivity I will be using a high gain USB WIFI network card. I will add a location to place and iPhone with tethering If I need to control the PiRobot outside of a local WIFI.

I am going to recycle an old iRobot Roomba to uses as the main driving unit. This post shows my teardown of the iRobot Roomba in preparation for this project. To save on weight I wanted to remove all the components that I would not be utilizing. To start I only need the frame, wheels, motor, suspension and the logic board.

I will be interfacing the Raspberry Pi with the iRobot Roombi’s built in logic board via serial using pyrobot. This will allow me control each driving motor as well as interface with all built in sensors and the other motors (that I just removed). If I can’t get the serial connection to work I will take some tips from Ben J. I will more then likely be using the Raspberry Pi’s GPIO but I can also utilize the additional ports on the Roomba’s logic board to control the accessories I plan to add once I get the PiRobot up and moving.

I first want add a tilt and pan high definition webcam to have the ability to drive it with out seeing the unit. The next accessory will be a powered speaker and use the webcam’s microphone for two way audio communication. Then I will be adding an ultrasonic proximity sensors on each side of the robot to detect obstacles while controlling the unit remotely. These sensors have a sensing range from about 5 inches to about 15 feet with a resolution of about .1 of an inch.

The website will stream the video from the webcam as well as have controls to operate the PiRobot. It will display two virtual joystick, one to move the PiRobot and one to control the tilting and panning of the webcam. I will also be including the ability to use the keyboards standard ←↕→ keys and a mouse or possibly even a joystick. I am thinking of having the site display a 3d top view of the Raspberry Pi Robot with graphical feedback from all the sensors and to display the position of the webcam’s tilt and pan. Once all that is done I will be adding an arm and hand to it extend the functionality.