Rank: Master
Rating: 90%, 24 votes
I had the same problem - 3 beep codes. According to iRobot's beep code table, this meant "The robot's vacuum is stalled". To verify this, put your hand in back of the rear vent - if you don't feel a decent amount of air coming out, then the vacuum impeller is indeed not functioning.
iRobot agreed to send us a new dirt cup/impeller assembly, but I figured I'd take a look at the original one and see if I could fix it.
In my case, a ground wire had come un-soldered from the side of the impeller motor casing - crappy factory soldering job. I suspect this is a rather common problem w/ the Roomba design - properly soldering a wire to a bare metal surface like a motor case is tricky to unless it's properly tinned & cleaned.

Anyway, I cleaned & tinned a small area of the motor case and reattached the wire the *RIGHT* way. Works great now.
If you're reasonable handy, it's not really a major job - about 10 screws & a little patience. The hardest part was removing the impeller from the motor shaft - use a flat head screwdriver, prying gently, and work it off a little at a time.
Now I've got a spare dirt cup / impeller assembly!
I hope this is helpful to others with the same problem.
JohnB