Difference between revisions of "Disassembling a Roomba 560"

From AIRWiki
Jump to: navigation, search
m
(Removing the bottom cover)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The Roomba by [http://www.irobot.com/ Irobot] is a vacuuming robot; but it is also one of the (still) few examples of mass-market robotic products. Its low cost, the easy availability of spare parts and the wide diffusion make the Roomba an interesting starting point for "hacking".
+
The Roomba by [http://www.irobot.com/ IRobot] is a vacuuming robot; but it is also one of the (still) few examples of mass-market robotic products. Its low cost, the easy availability of spare parts and the wide diffusion make the Roomba an interesting starting point for "hacking".
  
 
This page is dedicated to the disassembly of a Roomba 560. Its purpose is to provide AIRLab users (or anyone else) wanting to hack a Roomba with a guide to the process, so that they can plan their work easily. Other Roomba 500-series models should be similar to the one featured in this page.
 
This page is dedicated to the disassembly of a Roomba 560. Its purpose is to provide AIRLab users (or anyone else) wanting to hack a Roomba with a guide to the process, so that they can plan their work easily. Other Roomba 500-series models should be similar to the one featured in this page.
Line 5: Line 5:
 
Please note that the robot we have taken apart was well-used, so you will see a fair bit of dust and dirt on the parts... all for the sake of realism. (Just joking: simply, that was a broken robot we could spare in case the process proved to be fatal :-) )
 
Please note that the robot we have taken apart was well-used, so you will see a fair bit of dust and dirt on the parts... all for the sake of realism. (Just joking: simply, that was a broken robot we could spare in case the process proved to be fatal :-) )
  
If you click on any of the images below, you will be taken to its own AIRWiki page, where you will be able to download the file. However, the files are NOT high-resolution (480x320 pixels: on this page they are shown at full resolution). You can download the high-resolution originals of the images (and some additional image not shown by this AIRWiki page) [http://to_be_specified.soon from here]. Note that the originals are 3888x2592 pixels, and each of them weighs in at 3-5MB.
+
If you click on any of the images below, you will be taken to its own AIRWiki page, where you will be able to download the file. However, the files are NOT high-resolution (480x320 pixels: on this page they are shown at full resolution). You can download the high-resolution originals of the images (and some additional image not shown by this AIRWiki page) [ftp://ftp.elet.polimi.it/users/Admin.Airlab/Roomba_560/disassembling/photos_hires/ from here]. Note that the originals are 3888x2592 pixels, and each of them weighs in at 3-5MB.
  
 
== Before the dissection ==
 
== Before the dissection ==
Line 21: Line 21:
 
<gallery widths=480px heights=320px perrow=3>
 
<gallery widths=480px heights=320px perrow=3>
 
Image:Roomba_6.JPG | Four captive screws hold in place the bottom cover. Removing it exposes the battery and exposes some additional electromechanical systems (enclosed in blue plastic cases).
 
Image:Roomba_6.JPG | Four captive screws hold in place the bottom cover. Removing it exposes the battery and exposes some additional electromechanical systems (enclosed in blue plastic cases).
Image:Roomba_7.JPG | To remove the battery, simply pull it out using the lateral green (cloth) handles. The contacts on the battery are flat and, as we will see later on, touch small elastic plates directly fitted to the main circuit board. These plates pass through a cutout in the upper shell of the robot, and here are seen exposed.
+
Image:Roomba_7.JPG | To remove the battery, simply pull it out using the lateral green (cloth) handles. The contacts on the battery are flat and, as we will see later on, touch small elastic plates directly fitted to the main circuit board. These plates pass through a cutout in the upper shell of the robot, and here are seen exposed. The upper big contact is the positive lead while the lower big contact is the negative one.
 
Image:Roomba_8.JPG | This is the robot with the brush housing removed. The gold-coloured, circular metal element at the bottom of the housing is most probably the "dirt detector" sensor that the robot uses to find out floor spots requiring particular attention.
 
Image:Roomba_8.JPG | This is the robot with the brush housing removed. The gold-coloured, circular metal element at the bottom of the housing is most probably the "dirt detector" sensor that the robot uses to find out floor spots requiring particular attention.
 
</gallery>
 
</gallery>
Line 76: Line 76:
 
Image:Roomba_32.JPG | Another front view, from a slightly different viewpoint.
 
Image:Roomba_32.JPG | Another front view, from a slightly different viewpoint.
 
Image:Roomba_33.JPG | By gently pulling, the plastic element supporting the discrete IR emitters and receivers used by the robot as obstacle detectors can be removed. It is visible on the left of the picture, still connected to the PCB. The latter has been extracted from its housing in the upper shell of the robot; on the right is visible the clear plastic sheet that insulates the lower side of the PCB from the metal shield.
 
Image:Roomba_33.JPG | By gently pulling, the plastic element supporting the discrete IR emitters and receivers used by the robot as obstacle detectors can be removed. It is visible on the left of the picture, still connected to the PCB. The latter has been extracted from its housing in the upper shell of the robot; on the right is visible the clear plastic sheet that insulates the lower side of the PCB from the metal shield.
 +
Image:Roomba_34.JPG | A full view of the underside of the main board. You can see the robot's microcontroller: an ARM7, and precisely [http://www.st.com/mcu/inchtml-pages-str7.html this device].
 +
Image:Roomba_35.JPG | The part of the board next to the connections to the sensors houses the power components.
 +
Image:Roomba_37.JPG | This is the other part of the PCB, where the only notable element is the main processor.
 +
Image:Roomba_36.JPG | A view of the auxiliary board, also showing the connections to the side of the main PCB on the back of the robot. From left to right you can see the following connections (now disconnected from the PCB): the speaker cable (yes, there is a speaker on the robot: it is used to ask for help in case of problems); the cable connecting the auxiliary PCB to the main one; the power connections to the dust tray, where there is a small fan; and the connections to the power connector on the side of the robot, used for the battery charger.
 +
Image:Roomba_38.JPG | The upper side of the main board, where most of the components are mounted. The gold discs are pushbuttons; the strange array of SMD leds that is visible just above of the lower three buttons is the 7-segment display used for user scheduling of robot tasks. On top left you can see a connector, presumably (until we perform some tests on the signals...) used for serial communications. The following pictures will be closeups of the different areas of the board.
 +
Image:Roomba_40.JPG | Top left area.
 +
Image:Roomba_39.JPG | Top right area. The small green daughterboard on the right is a radio communication module based on the Zigbee protocol, used by the robot to communicate with its accessories. The board is based on [http://www.freescale.com/files/rf_if/doc/data_sheet/MC13202.pdf?pspll=1 this IC].
 +
Image:Roomba_41.JPG | Bottom left area.
 +
Image:Roomba_42.JPG | Bottom right area.
 +
Image:Roomba_43.JPG | Side view, showing the speaker (the black round element on the right, integrated into the side of the robot).
 
</gallery>
 
</gallery>

Latest revision as of 11:04, 29 March 2010

The Roomba by IRobot is a vacuuming robot; but it is also one of the (still) few examples of mass-market robotic products. Its low cost, the easy availability of spare parts and the wide diffusion make the Roomba an interesting starting point for "hacking".

This page is dedicated to the disassembly of a Roomba 560. Its purpose is to provide AIRLab users (or anyone else) wanting to hack a Roomba with a guide to the process, so that they can plan their work easily. Other Roomba 500-series models should be similar to the one featured in this page.

Please note that the robot we have taken apart was well-used, so you will see a fair bit of dust and dirt on the parts... all for the sake of realism. (Just joking: simply, that was a broken robot we could spare in case the process proved to be fatal :-) )

If you click on any of the images below, you will be taken to its own AIRWiki page, where you will be able to download the file. However, the files are NOT high-resolution (480x320 pixels: on this page they are shown at full resolution). You can download the high-resolution originals of the images (and some additional image not shown by this AIRWiki page) from here. Note that the originals are 3888x2592 pixels, and each of them weighs in at 3-5MB.

Before the dissection

Here you can see the Roomba 560 before any disassembling occurred.

Removing the bottom cover

To get to the electromechanical elements of the robot, you have to remove the bottom cover (as we will see later, electronics is accessed from the top instead).

The brush housing

This element is more complex than it is immediately apparent.

The active wheels

Roomba is propelled by two actuated wheels, in a classical differential drive configuration. By modulating the rotating speeds of each the wheels independently from the other, different trajectories are obtained.

The front sensors

Most of the sensors of the Roomba are located on the front of the robot. Such sensors are:

  • bumpers to detect collisions;
  • two sets of infrared emitters/receivers: front-looking to detect the presence of obstacles, and downward-looking to detect the presence of the floor (so the robot is able to avoid falling down the stairs);
  • an omnidirectional infrared sensor to detect the presence of active Roomba accessories such as "virtual walls" and recharge stations.

Removing the top shell

The upper part of the robot is a sort of tray, where the main circuit board (and a small auxiliary board as well) is enclosed. It is separated by the (dusty) bottom part of the robot's hull, except where cutouts are required to allow for the connections between the board and the electromechanical components. A metal shield is located on the bottom of the "tray", presumably to shield the data-processing parts of the circuit from interference from the motors below.

The control board

The Roomba 560 includes two circuit boards: a main PCB and a small, secondary one. The second one is only used to add two pushbuttons to the control panel of the robot, while the first PCB -mostly populated by SMD components- houses all the circuitry of the robot. Data processing, control and power driving of the robot are all done by this board.