Author
Topic: Roomba 4000 series teardown (Read 6496 times)

I've been using parts from Roomba vacuums to build robots. I find them on Ebay pretty cheap. I recently bought three for $60 and last weekend I made a two part video of a teardown. I thought I'd share it here in case anyone was curious what's inside theses wonderful, hackable devices.

I actually have a broken down Discovery I want to break down and use. Just not sure what type of controller I want to slap on the remade monster. Any chance you have some doc/images on your control circuitry/interface?

Yeah after this weekend there will be another video up of what all the connections do and how I hooked up an Arduino to the main board. Look for it here and on dinofab.com/

UPDATE

I was at my bench with The Roomba and my voltmeter this weekend. There are 18 connectors and 85 pin outs to poke into! The tricky part is keeping the wheels spinning and the circuit active so I can test the ins and outs of the circuitry. I found out that the front wheel has a rotation sensor and this particular one had a seized wheel which was causing the motors to behave strangely. I really want to find out how the cliff sensors up front work.

I tore one done to the guts for my senior design robot 2 years ago. (Go to www.billporter.info and click videos. Its the garbage collecting robot) they are very well built. I even re-purposed the cliff sensors to detect what object my robot collected. They are very open on the interface to the robot. I wrote a webbotlib header file to control a roomba via its serial port if anyone is interested.

Edit:

Here's my robot that started as an IRobot Create, which a Roomba without the Vac.

I can give you what I have, but it still requires debugging depending on what Roomba you have.

Right now it works great with my Create, which has the same instruction set as the 3000's I believe. The newer 4000's have a newer instruction set, that behaves differently. I haven't been able to fix all the bugs with interfacing a 4000, and I'm on travel for 7 weeks, so it will be some time before I can get back to it.

In the 2nd video, at about 3:00, you talk about the belt attached to the encoder (wheel sensor). Is the encoder attached to the wheel or gears in the wheel, or is it floating and just attached to the belt?

The encoder is part of the drive belt hub and is directly connected to the wheels via 2 level planetary gear reducing system. The motor connects via the belt. There is 0 slip between the encoder and the wheel (however, you can have slippage on the wheel and the floor). You get 800 ticks per wheel revolution. Then wheels are ~ 2.5" diameter, and 200mm circumference, you get around 40 counts per CM. To problem with the Roomba's and the inaccurate encoders are the fact they get dirty, wheel slippage, and the way the Roomba Micro returns the information back to the user via it's interface... You don't get direct PID control of the motors.