Tuesday, April 07, 2009

Roomba Surgery: Replace the Bumper Articulating Arm Optical Sensor Set

A few weeks ago my iRobot Roomba started spinning in circles and failing with a 9-beep error.  This error is related to the two bumper sensors located at 10 and 2 o’clock.  In some cases there might simply be debris behind the bumper interfering with the sensors.  I ruled this out with a disassembly and clean.

If your unit is under warranty you would likely be sent a replacement unit for this case, but that being said, mine was not.  Plus I was secretly looking forward to a full disassembly.

I followed a combination of instructions I found on the net to diagnose and replace the faulty part.

The problem is caused by one or two faulty “Bumper Articulating Arm Optical Sensors” in your robot.  These sensors consist of a plastic arm that swings between two IR sensors.  My readings on the working sensor showed a range of 0-5 volts.

The first sensor I tested functioned correctly switching between  0 and 5 volts.  The second sensor was fixed at 0v.  I had read about shorting out the IR to half blind your Roomba but I was not in the mood to solder fragile wires.  With that said, I managed to find a replacement part from Protech Robots. 

A week and a bit later (the item was shipped USPS ground) my part arrived and it was time to put Roomba back together again.

 2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 002
Remove the face plate

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 004
Remove the side brush, bottom plate, battery and the bumper (after removing the plate that holds the bumper on, the bumper gently lifts off.

 2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 006

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 007
This is one of the Articulating Arm Optical Sensors

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 009
Remove the top of the robot (don’t remove the screws for the handle)

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 011
Disassemble and remove the display

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 012
Gently remove the plastic sheet on top of the PCB

 2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 013
Disconnect all of the connections from the top of the PCB and remove the screws securing it.

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 016
Gently lift up the PCB towards you (the front of the robot) exposing the bottom connections.  Gently disconnect all of the connections including the bumper.

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 020

 2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 021
Gently lift out the IR sensor array

 2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 024
Remove the 2 screws securing each articulating arm sensor and remove the sensors from the robot.

 2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 027

 2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 029
Here comes the trickiest of the parts.  You need to follow all of the wires from the sensors to the connector located in the bottom right of this photo, ignoring the white wire that connects the two sensors together.  Carefully remove any material securing the cables together.  I highly suggest you draw a visual of the connector and keep track of the individual wires as you remove them.  To remove the individual wires from the connector you need to gently lift up the plastic the secures the wire, and pull at the same time.  I used a small paper clip to lift the plastic.2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 034

Once the connector is reassembled the rest of the steps are just the re-assembly of the robot and testing.

 

2009-04-07 Roomba Articulating Arm Optical Sesnsor Set Replacement 046
It works!

13 comments:

Luan said...

Thanks a lot for this post. I got my roomba back to working by replace this sensor.

DiggForBeer said...

I am having a similar problem with my roomba and from the diagnostic mode I think its the front left bumper sensor that is broke. I made a video of how mine is driving, can you confirm if it looks like how yours was driving?

http://www.youtube.com/user/goudiemark#p/a/u/0/4KPQ1nxwNqk

DiggForBeer said...

Wrong link, here is the right one.

http://www.youtube.com/watch?v=4KPQ1nxwNqk

Scarab said...

Thank you for this walk-through. I would have cut wires if it were not for the trick with the paperclip. Sweepy is happy again!

jdbartlett said...

Thank you for posting about this. I just completed the surgery on my own roomba, following your guide, and he's happily trundling around the room like nothing ever happened.

I found your tip to draw diagrams of the connectors especially important: 2 of the wires in each of my replacement bumper arms were different colors from the originals, and I wouldn't have known which went where without the diagram.

Steven Berkovitz said...

Thanks everybody for the feedback!

It's quite surpriseing how much traffic this post gets, I guess its a common problem.

I'm glad I was able to help!

Gerald Schuller said...

Thank you very much for your great and helpful description of disassembling the Roomba, it was crucial for my repair. I had the same problem. The front right bumper sensor was stuck to active (so that it wouldn't go forward). The right side is where the rotating brushed are, and hence the sensor there is probably exposed to more dust than the left bumper sensor. I disassembled the Roomba, and also the right bumper sensor. It uses a light barrier, but I could'nt see any dust on its photo detector or its LED. I didn't want to order a replacement sensor (they are kind of expensive and far to get), so I looked where it is connected to. It is connected to the main board with a plug and socket, and the contacts of the socket are accessible on the upper part of the main board. It is located on the top left hand side of the main board (if the bumper is the top) and can be recognized by having two rows, each with 8 contacts, right next to the boarder of the board. I found the right sensor is connected to the 3rd pin from the right on each of the 2 rows. I measured the voltage across and found at was 1.6 V when the sensor was not pressed, and 5V when it was pressed. I assume that TTL logic levels are used on the board, and in that case the 1.6V can already interpreted as a logical "1", the same as the 5V, and hence the sensor seemed to be stuck, even though there was enough voltage swing. I guess there might be a fine dust cover on the light sensor of the light barrier of the bumper sensor, and that reduced the sensitivity somewhat and reduced its ability to pull down the voltage.
Since there was enough voltage swing (I didn't feel like disassembling the bumper sensor again to try to clean the light sensor), I had the idea of just shifting the voltages so that they again conform to TTL logic levels. I used a few resistors, and soldered them bumper sensor connectors (the 3rd from the right on each row). If they are too small, they pull the voltage down too much, so that the sensor was never seen as active. Roomba would go forward again, but not react to the right bumper sensor. Then I found a 10 KOhm resistor was just right. "0" (sensor inactive) became 0.8V and "1" became about 2V, so that both voltages where now interpreted correctly as "1" and "0". I tried it and Roomba now indeed reacted correctly to the right bumper sensor again, which I found enjoyable :-)
I then just covered the resistor connections with duct tape to isolate them, and reassembled the rest.
The big advantage of this repair is that no complete disassembly is required! Only the top needs to be removed to get access of the main board with the contacts of the bumper sensors. Another advantage is that for the repair no replacement sensor is needed, just a resistor for a few cents. The repair then consists of just soldering a 10 KOhm resistor (perhaps a slightly different resistor depending on the dust cover in the sensor) to the 3rd pins from the right for the 2 rows of the sensor connector and insulating its wired.

Gerald Schuller said...

Thank you very much for your great and helpful description of disassembling the Roomba, it was crucial for my repair. I had the same problem. The front right bumper sensor was stuck to active (so that it wouldn't go forward). The right side is where the rotating brushed are, and hence the sensor there is probably exposed to more dust than the left bumper sensor. I disassembled the Roomba, and also the right bumper sensor. It uses a light barrier, but I could'nt see any dust on its photo detector or its LED. I didn't want to order a replacement sensor (they are kind of expensive and far to get), so I looked where it is connected to. It is connected to the main board with a plug and socket, and the contacts of the socket are accessible on the upper part of the main board. It is located on the top left hand side of the main board (if the bumper is the top) and can be recognized by having two rows, each with 8 contacts, right next to the boarder of the board. I found the right sensor is connected to the 3rd pin from the right on each of the 2 rows. I measured the voltage across and found at was 1.6 V when the sensor was not pressed, and 5V when it was pressed. I assume that TTL logic levels are used on the board, and in that case the 1.6V can already interpreted as a logical "1", the same as the 5V, and hence the sensor seemed to be stuck, even though there was enough voltage swing. I guess there might be a fine dust cover on the light sensor of the light barrier of the bumper sensor, and that reduced the sensitivity somewhat and reduced its ability to pull down the voltage.
Since there was enough voltage swing (I didn't feel like disassembling the bumper sensor again to try to clean the light sensor), I had the idea of just shifting the voltages so that they again conform to TTL logic levels. I used a few resistors, and soldered them bumper sensor connectors (the 3rd from the right on each row). If they are too small, they pull the voltage down too much, so that the sensor was never seen as active. Roomba would go forward again, but not react to the right bumper sensor. Then I found a 10 KOhm resistor was just right. "0" (sensor inactive) became 0.8V and "1" became about 2V, so that both voltages where now interpreted correctly as "1" and "0". I tried it and Roomba now indeed reacted correctly to the right bumper sensor again, which I found enjoyable :-)
I then just covered the resistor connections with duct tape to isolate them, and reassembled the rest.
The big advantage of this repair is that no complete disassembly is required! Only the top needs to be removed to get access of the main board with the contacts of the bumper sensors. Another advantage is that for the repair no replacement sensor is needed, just a resistor for a few cents. The repair then consists of just soldering a 10 KOhm resistor (perhaps a slightly different resistor depending on the dust cover in the sensor) to the 3rd pins from the right for the 2 rows of the sensor connector and insulating its wired.

Anonymous said...

I followed your instructions and put the new bumber pieces in and roomba still is doing the crazy dance...any ideas?

Benny Dee said...

Great post. I actually went with ordering a repair kit online. It came with instructions and new components for the bump sensors. The company I ordered from had a solder free solution so no soldering was involved. Instead they had a special paste that holds the component in place. I don't have great soldering skills so this kit did the trick for me. The company is eesolutions.ca I believe.

Max Pledge said...

The fix didn't work for me. I will continue my search for a fix. Thanks though.

Roomba Guy said...

If you have any other problems you can always check the iRobot support documents.

Anonymous said...

I replaced both ir transmitters and corrected the "circling problem" but now it pushes everything because the bumper sensors are not working. Could it be the ir receivers? Might need to replace the whole board.