I have a number of things to write about, and don't have a well thought out sequence for their presentation, hence I will just palaver on!
Not many Scooba owners know that during a cleaning mission Scooba halts solution-pumping momentarily in response to certain events. After Roger Crier received his 5900 in early Spring 2006, he set it to cleaning his glass-topped dining table! He got under the glass to watch what Scooba was doing. He noticed that after bumping an object, and when linear forward travel halted so the bot could do a body-centered rotation, the jets ceased emitting fluid.
I now think that those brief stops, i.e., stopping the pump motor, give opportunity for the pump-motor to NOT come alive afterward! The cause of that non-operation is still unknown. But, iRobot is sufficiently convinced that its source is mechanical
; a claim supported by the Company issuing formal instructions for sufferers of the fault to overcome it by impacting the periphery of their Scooba, in a specified direction, by holding Scooba in a specific orientation, and then allowing it to fall through a specified distance to the floor.
So, if we depend on those instructions as truth
(and, in all probability are truth, since I think those instructions were derived by the iRobot trouble-shooting team that deduced and confirmed the source of the problem), we should be able to rule out several fault causes that simply don't relate well to mechanical conditions. Those to rule out would be things like: a) no motor-ON command issued by the MCU, b) motor's power-switch intermittent, and c) motor-armature sitting on a dead-spot. There may be others to add to this list. All linear, mechanical-shock inputs intended to rotate the motor-armature should not apply, since the directed impacts are parallel to the shaft-axis; and, even if applied orthogonal to the motor-shaft, would not work unless the armature was sufficiently unbalanced--which it is not.
In recent years we have learned that the motor-speed is controllable by Scooba's MCU, and at least two speeds are used. The slow speed might
be used when Scooba is spiraling. I think there is less potential for motor-halting to occur as a result of running the motor at a slower speed, but, this two-speed (at least) operation also tells us something about the motor's driver circuit: It very likely uses a PWM (pulse-width modulated) signal to operate the motor's power switch.
The Mabuchi motor used for driving the pump is the same frame-size as Roomba uses to drive its vacuum-impeller. That comparison coupled with other observations about many similarities of component groupings found on those two robot's main_elex boards strongly imply that similar
circuits have been used wherever practical. IOW: Scooba designs copied Roomba-Discovery's designs to a practical extent. Simply good business practice! So long as the bases are strong.
I then claim that the Scooba Pump-Driver Schematic (if anyone gets around to rev-engrg the Scooba board!) will look very much like Schematic_7
, which we now have for Discovery's Impeller-Motor Driver. That claim is partially confirmed by noting both circuits use the same type TO-92 cased transistor, an S8050 (Q35 in Roomba, Q13 Scooba, just right of the J9 PUMP jack); current shunt-resistors placed between emitter and SIG_RTN, uses one ohm in Roomba (drawing about 5X as much current as the Scooba motor), vs. 4.7 ohm power resistor (a SMD on bottom of board) for Scooba; and, flyback diodes strapped around motors (Roomba D20, Scooba D1). Red-leads of both motors directly connect to raw battery voltage. The major difference will be in the signal train from the MCU. In the Roomba, the ON/OFF signal is simple bi-state, HI/LOW, while Scooba must use one of the MCU's PWM outputs in order to vary pump-motor speed.
That information may help you see where your voltmeter will be connected. An old, analog, meter may work better than a digital meter when measuring a pulse-train--as I expect Scooba's motor-voltage to be.
Thanks to a raft of Scooba sub-assemblies donated to me by glo69, I have a loose Pump Asm to play with.
I loaded my operational Scooba Tank with water, plugged into it a loose Solution-Inlet Lance (which was tube-connected to the Pump's inlet port), and dc-powered the motor via a bench supply. I used two voltage levels, 15Vdc and 12Vdc, to emulate possible speeds which the MCU might be using. When powered with 15Vdc, motor-current measured 50mA. With 12Vdc applied, current fell very little to ~ 47mA.
You can see that not much heating occurs with 0.05A * 15V = 0.75W.
While running with 15Vdc applied, I estimated the cam's rotation rate to be ~240 RPM.
I had also run the motor-gearhead sub-asm after dismounting the Pump sub-asm from it. No-load current under that mechanical condition was only 40mA (15Vdc applied). As the motor ran, I gripped the cam's periphery with three finger tips and applied force in an attempt to stop it. It did not stop, but the motor slowed and current was driven up to 0.25A to 0.3A in the process.
Since the Pump sub-asm was free of the drive mechanism, I decided to measure the volume of each jet's squirt. I also demonstrated the pump is capable of establishing a siphon (pump held lower than water-level in a jar; Lance-end submerged, with tubing leading up and over the jar's rim; the rocker-arm was manually pushed back and forth to expel air from the pump and draw water to it). I hand-pumped 300 squirts, 150 rocker-cycles, of water into a dish, them poured the contents into a 100 mL graduate, and read a volume of ~97.5 mL. Thus, each jet-squirt emits approx 0.32 mL, (0.065 tsp) per squirt. If anything, I think this volume is toward the high-side, because I was pushing the rocker-arm fully to limits of travel; however, we know that the cam does not push quite that far.
Adding to these manual-actuations trials, I asked myself what level of force would be needed to move the rocker-arm if a jet got stopped up with some dirt. To check that, I simply closed off an exit port with a finger-tip, and used the other hand to move the rocker-arm in the direction that should pump water out that port. The rocker was very hard to move! Pump valves sealed well enough that one is basically trying to compress a liquid--always a hard thing to do.
If Scooba had quit ejecting solution because a jet was plugged in that manner, and the owner applied the iRobot recipe of shock-treatment, those shocks would only serve to move the plug back toward the bellows, rather than out of Scooba. The plug would then be able to re-seal the exit port. Of course, the mass of such a tiny plug would also be tiny, and would require very great shock forces to kick it out of a jet's orifice (not outside, but back inside). This is not a likely plugging scenario, yet if it occurred, the rocker's resistance to rotation could be great enough to cause the motor to draw too much current, and that would force the MCU to shut off power to the motor.
But, even that over-current scenario is flaky, since I think its fair to assume Scooba's safety shut-downs to be similar to Roomba's. When Roomba detects an over-load, and acts on it, all
motors are shut off. We know that is not happening with Scooba, because it is reported at top of this thread: Scooba continues on the mission!
What?!! After reading all that, there is no answer? No bottom line?
Nope, just Scooba-info and ideas to help support additional thinking and trouble-shooting.