Wednesday, May 14, 2008

Fixing a dead Roomba 500/570 (No Lights)

I've had my Roomba 570 for almost two months. In that time, the little guy has been automatically vacuuming the house automatically everyday. A couple of weeks ago, I found him dead (no lights), in the morning, half way through a cleaning cycle. After picking him up he came back to life and then worked fine until two days ago.

Two days ago, I found my Roomba dead again, half way through a cleaning cycle. He did not respond to any button presses and none of the indicator lights would come on. Resetting him did not work, nor did removing and replacing his battery. I opened him up and gave him a thorough clean (inside and out) with my standard vacuum. He worked again for 15 minutes and then died whilst emitting a a slow and unrecognisable musical sequence. This happened several more times during the day. The Roomba would die, only to come back to life after he was disassembled and cleaned. The Roomba would run, sometimes for an hour but often for only 10-15 minutes at a time before dying. One of the last times before he died, he moved eratically and again, played a musical sequence in an almost slow motion and drunken fashion.

Eventually it seemed like my Robotic Vacuum was dead for good. No matter what I did, he would not respond to any button presses nor would he activate any indicator lights. The only thing I could think of that could cause this to happen would be a blown component or bad solder joint.

I disassembled him all the way down to his main circuit board. I carefully went over his entire circuit board, looking for bad solder joints or blown components. I took special care to examine the FETs that drive the motors as well as the voltage regulators. The FETs looked undamaged and the regulators appeared to work because many of digital components chips were getting a 4.2V-5V supply (regulated down the battery's 14.4V supply). Nothing, it seemed, would bring back my Roomba.

At 2am this morning, I pondered and wondered. What could possibly cause the Roomba to play music really slowly before it died? It was unlikely that a blown component or failed regulation circuit would cause that kind of failure.

I came up with a theory. The crystal oscillator used as a clock generator for the Roomba's microcontroller (an ARM ARM7TDMI) relies on a piezoelectric crystal which can fail from heat, physical shock or simply poor construction.

If the crystal oscillator on the Roomba main circuit board failed in such a way as to cause it to oscillate slower than its rated frequency then the Roomba's microcontroller (an ARM ARM7TDMI) would slow down accordingly. The Roomba's monitoring routines would notice some kind of problem (perhaps because of ms timings with other chips or interrupts) and try to play some said warning tones. The slower clock rate would cause those tones to be played with a lower fequency and longer duration.

I opened up the Roomba yet again and examined the offending 8Mhz crystal connected to the ARM processor. The solder joints looked fine and the component looked undamaged. Connecting the battery was still not activating the Roomba. I then applied physical pressure to the crystal, connected the battery and was greeted with a hello musical sequence from the Roomba! With some experimentation (fiddling with the crystal) I was able to get the Roomba to start playing music really slowly (almost on demand). I was pretty sure I had found the cause of my Roomba's early death.

The cause was hard to find but the fix was simple. I replaced the crystal on the board with a new 8Mhz crystal from jaycar. My Roomba now runs like a champ! The crystal is slower than the maximum 32MHz that the processor can take so it would probably be possible to overclock the Roomba (!) though I imagine many of the routines are dependent on the crystal being 8MHz.

From reading the iRobot forums, there are appears to be several other people who have had similar symptoms and at least one other person who has identical symptoms. I'm left to wonder if iRobot has unknowingly used a bad run of crystals...

Here are the pictures:

The top of the Roomba with its faceplate removed. The face plate can be removed carefully prying it off, starting from the edge closest to the dustbin. There are clips on the outer circumference as well as the inner circumference. The faceplate clips are quite tight so it will need careful but forceful tugs.

The Roomba's bottom cover needs to be removed. Start by removing the side brush and unscrewing the four large screws. Once the bottom cover is removed, the 10 small screws on the bumper bar should also be removed.

The Roomba with the bottom cover and battery removed.

The Robot with its top cover removed. The crystal is under the control panel which can be removed by unscrewing another four screws. Unscrewing the left and right wheels on the bottom of the roomba will make it easier to work with the Roomba. Make sure you work on a bench and not the carpet as static discharges may damage or destroy components

The robot with the top cover and control panel removed. The crystal is the small metallic, cylindrical component to the right of the "iRobot" logo on the bottom right quadrant of the circuit board.

A close up of the revision number and date as printed on the board.

A close up of the offending component. The component was glued to the circuit board during manufacturing. The ARM processor is in the same area but on the opposite side of the board.

Another view of the faulty crystal showing its legs and where it is soldered to the main board. The underside of the crystal has "8.000" engraved -- indicating that the crystal is an 8Mhz crystal.

The replacement crystal. The packaging is different (rectangular but that doesn't matter).

The new crystal soldered to the board. I applied some hot glue (not pictured) to make sure the crystal won't move around and short out other components.

I side shot of the new crystal. "8.000" means 8.000Mhz or 8MHz :-).


At May 14, 2008 at 11:55 PM , Blogger Jose C said...

This comment has been removed by the author.

At May 15, 2008 at 12:00 AM , Blogger Jose C said...

Hi, your document is great!!! GREAT JOB.

I have a similar problem to you, my roomba (560) don't power on. It's totally dissasembly, and when I put in the battery, roomba make a little sound every second, aprox. Not answer to any button, even reset (spot and dock 10 seconds).

If I put it the power cord directly to roomba without battery, roomba try to charge the battery, and light is ambar (orange), all OK (but battery is NOT in, I mean, battery is disconect from roomba) at this moment, after 5-10 senconds, roomba change bliking ambar (orange) color to fix red color and too light on the red led to the left of roomba (the same that light when you up roomba like it's working)

I have change the cristal like you, but it's the same.

Could you help me please? If you want I can send you a video, so you can see what I mean here.

I am sorry for my poor english.

Thanks in advance.


At May 15, 2008 at 2:40 AM , Blogger tumtumtum said...

Hi Jose,

I've replied to your question on RoombaReview.


At December 21, 2009 at 4:14 PM , Blogger Mark said...

Awesome job!

Your document inspired me to solve a dissimilar problem where Robbie (Roomba 560) became unresponsive. Turns out besides a faulty soldering job on the crystal you describe the springs attached to the bottom of the circuit board were too short to make contact. After a quick resolder and elongating those springs, Robbie is back up and running. Cheers!

At November 30, 2010 at 3:47 PM , Blogger Unknown said...

Hey Thong,

Great writeup. I was especially interested because the Roomba 560 I bought has had almost the same exact issue...when attempting to charge, it would sometimes show the usual glowing light,but also occasionally flash rapidly and haphazardly between red and orange, then would emit the strange, progressively slow series of tones. I got it to actually clean a room once for a while, but after the next charge, it stopped responding entirely and would still behave erratically on the charger. Since I had just bought the roomba and was certainly still under warranty, I called iRobot and after they sent me a new battery (which didn't make any difference), they sent me a replacement roomba that's been working fine (they sent me a 581, which I've read is their usual replacement robot for people with roomba problems.) Anyhow, when I saw your post I realized it very well could be the 8mhz crystal that is bad in my 560 and the source of this problem. Since I now have nothing to lose in tinkering with the 560, I followed your instructions to open it up and it turns out my revision number is exactly the same as the one in your picture (Rev. C 2007.03.02) and the manufacturing stamp is 0803 (whereas yours is shown as 0746). If I understand this correctly, it means my 560 was made at virtually the same time as yours (57 units later) and with likely the same batch of crystals. I went ahead and ordered a new 8mhz crystal and when it arrives, I'm going to try the same fix as you. Maybe I'll end up with 2 working roombas?! Anyhow, thanks again for taking the time to post your experience.


Post a Comment

Subscribe to Post Comments [Atom]

<< Home