Introduction: Hardware Hacking 101: Silencing the SpotBot

Picture of Hardware Hacking 101: Silencing the SpotBot

The quest is simple. Make the SpotBot shut up.

I intended to document what was to be a simple hardware hack. I ultimately used a microcontroller to do this, but it could also be done by snipping a wire. I demonstrate 2 oblique ways to solving this problem which circumvent the need to completely disassemble the device in order to find the buzzer. The journey provides a glimpse into practical digital electronics and hardware hacking. And it could inspire you to break - err, fix - your own stuff one day.

Step 1: What Is a SpotBot?

What is a SpotBot?

The SpotBot is a carpet cleaning thingy. I don't receive any money for endorsing the SpotBot, but I endorse it, anyway. It's like a wet vac with rotating brushes for cleaning up stuff from your carpet. You just set it down over [motor oil, cat vomit, etc] and push a button.

There's something very satisfying about setting this thing on a stain, pressing the button, then simply going on with your life. But every SpotBot owner knows there's a dark side. When SpotBot is done doing your dirty work, it starts to beep. Loudly. Incessantly.

What's the big deal? Well, imagine you have a maid. You tell your maid to clean a spot on the carpet. Then you go about your business. You're relaxing in your recliner, sipping a marguerita, when your maid cries out, "All done! Come look and see what a great job I did."

You say, "Great! You're the best! Why don't you go home early, today?"

"No, come look! I did an amazing job!"

"Shut up, already."

"No, really! Come and see!"

Grrr.

"No, really! Come and see! I have my nose in the carpet and I can't smell any cat pee, at all!!"

"You're fired."

"You're so mean. You're a lousy client. I don't need you. I'll be going, now.... as soon as you come and see this!!!"

So you basically have to get up and tell the SpotBot "good job, now shut up" by pressing the stop button. I don't know who decided that a loud wet vac machine needed an even louder beep to tell you when it was done (you'd think the sound of silence would be good enough), but I'd like to give him my 2 cents on the matter.

Step 2: Point of Entry

Picture of Point of Entry

So the first thing is to determine where to open the thing. This is 90% of the battle. The SpotBot has a digital control panel on top with a bunch of buttons and LEDs. But there's seemingly no way to get to it. The closest screw is miles away.

Experience tells me that the whole panel must pop out. So I set to it. By inserting 2 screwdrivers into the corner of the panel, I'm able to pop it out.

Step 3: Now What?

Picture of Now What?

So I got the panel out. As expected, there are a couple connectors on the back. There's a big connector and a 2-wire connector.

Ignore that little chip dead-bugged to the back. That was my ultimate solution. I took the picture when putting the thing back together.

Step 4: Panel

Picture of Panel

Again, ignore the chip.

This is what the panel looks like. Removing the four screws allows the pcb to come away.

Step 5: Reading a PCB

Picture of Reading a PCB

Ok, now for some detective work.

First things, first. Where's the annoying beep coming from? Unfortunately, I don't see a piezo element on the control pcb. And the SpotBot is a tortoise-like shell of armored plastic. So where to start?

Hardware Hacking Step 1: find the power and ground.

At first, I thought the 2-wire connector must be the power cable. But using a continuity tester, I quickly ruled this out. One of the wires is ground. But the other one isn't the power connection.

There's a big electrolytic capacitor on the pcb. These are usually a giveaway when looking for power and ground. So I followed the cap.

The positive end of the capacitor goes straight to a 3-pin TO-92 package device. Aha. It must be a voltage regulator. The middle pin connects to ground. The third pin connects to a power plane. Yep, it must be an LM78L05 voltage regulator.

So hmm.. could the 2-wire connector lead to the annoying noise maker? I connect the big connector back up, and leave the 2-wire connector unplugged. I press the start button, and I wait for 3 minutes. "Beep! Beep! Beep!" Darn it, no. I have no clue what that connector does, because the thing seems to work just fine with it unplugged.




Step 6: Plan B

Picture of Plan B

So, perhaps one of the wires from the big connector does nothing else but control the Beep-of-Nagging-Hell? Well, it's possible. But I tried something else.

The "Finish" LED only comes on when the SpotBot is done. So it lights up at the same time Spot starts nagging.

So I figure, all I have to do is connect the active lo output of this LED to the button that's marked "Stop."


Step 7: Failure 1

Picture of Failure 1

So here goes. I added a jumper wire as shown in the picture.

Powered it on, and...

One of the LEDs starts blinking. The SpotBot isn't responding. It's an error message.

So for some reason the microcontroller must be doing some kind of diagnostic at startup, and it's detecting an error.

Step 8: Failure 2

Picture of Failure 2

So I swap out the jumper wire with a diode. This way, the LED connection can pull the button low, but not high.

I plug it in, and SpotBot's working. I run a cycle. At the end, it still beeps. The button is held low, yet the darn thing doesn't stop. What gives?

Well, there's a thing called debouncing. When you press a switch, the actual state may change several times before it settles. This is due to the physical properties of the switch. Digital circuitry often requires debouncing to prevent a single switch input from being read as several presses. One common method of software debouncing is to add a small delay after a change of state is detected, then to wait for the button to be released before acting. In a way, this is similar to the way a mouse button works. After you press it, you have to release it before it registers as a click.


The LED remains lit, so the button is held down and never releases. Ahh, back to the drawing board.

Step 9: Failure 3

Picture of Failure 3

To produce a momentary button press, there is a method called an "edge trigger." I first learned about this method some years ago from this exact site. If you scroll down a good ways, you'll find it under the heading "Edge-triggering."

http://www.kpsec.freeuk.com/555timer.htm

Incidentally, this is also an excellent way to achieve hardware debouncing.

So why didn't this work!?

At the very moment that the LED goes low, the durn thing beeps. A microcontroller can only do one thing at a time! It is apparently telling the buzzer to beep at the very same time the edge trigger is doing its thing!

An embedded programmer can do 3 things to get around this. A microcontroller might have a hardware interrupt. If used, a button input can override whatever else the micro is doing, thus registering a button press even when it's not actively looking for one. Or an internal timer can be used. This timer will count down the delay while the buzzer is beeping, and when it gets to zero the micro is alerted to turn off the buzzer. In the meantime, it can go back to looking for button presses. The third way of dealing with the problem is to use polling. This means that inbetween every loop of delay, the program goes back and checks the state of the button(s). These kind of steps are somewhat cumbersome, and not at all necessary for a simple user interface such as this. So I'm not surprised that these methods don't appear to be utilized.

Step 10: Failure 4

Picture of Failure 4

So to get around this problem, I tried increasing the time that the button is held low. I did this by increasing the size of the capacitor in the edge trigger. This time I used a 100uF cap.

Doh. Now the thing is failing it's startup diagnostic again. So I put the diode back in the equation. The capacitor now gets a slight reverse bias at rest, which is technically not good. But I don't think a 0.6V reverse bias will kill it anytime soon..

But still no luck.... Why?

Well, either the cap is too small, still, or the microcontroller is using edge-detection in its debounce routine. If it's the latter, then this isn't going to work no matter how big a cap I use. Since the button is being pressed at the moment that the micro "has its back turned" (telling the buzzer to beep and the LED to light up), by the time it comes back the button is already low. If it's only looking for a falling edge, the button won't do anything when the edge trigger releases. Pity.


Step 11: A Hollow Victory

Picture of A Hollow Victory

At this point I'd had enough. I took 5 minutes to program a microcontroller to do the job. It detects the finish LED turning on, then it waits 1 second before hitting the stop button.

...But that isn't necessarily the end of the journey! If your place isn't crawling with piles of blank microcontrollers like mine is, you might still find a way to beat the beep.


Step 12: Alternative

Picture of Alternative

The beep is coming from inside the machine, somewhere. It's highly likely that it is receiving a signal from this control board. So it must be coming from one of the wires on the large connector. It's possible that the wire also does something else beside controlling the beep, but I find that an unlikely possibility.

If one were to probe the connector with a multimeter while it was beeping, the signal wire might be discovered... and snipped.

Hmm... this looks like a perfect application for an 8 channel logic probe.
https://www.instructables.com/id/8-channel-logic-probe/

Step 13: Logic Probe

Picture of Logic Probe

So I hooked up my 8 channel logic probe to all those mysterious wires on both connectors.

Here's a few vids.

SpotBot working:

SpotBot beeping

SpotBot being played like a puppet on a string:

Step 14: Results

Picture of Results

Take a look at the pic to see the detailed results.

All lines are low when inactive, and high when active.

You can disable the beeping by cutting a wire.

I suppose you could also program a microcontroller to perform a custom cleaning algorithm if you cared to.

I also had another idea to make SpotBot actually help prevent stains rather than just clean them up. An IR motion triggered vacuum cleaner alarm might keep my cats away from a particularly problematic corner of the living room. Everyone knows cats don't like vacuum cleaners!

Comments

bethmwl (author)2017-03-11

Very funny into, you hit the nail on the head. Like when my dishwasher keeps telling me it's done.

jefflafleur (author)2012-01-24

Beep....Thank you so much. Beep... I hear that beep in my sleep, Beep... it haunts me, and now with the beep gone, beep... I'm not sure what to do with my self. Beep...

Thank you,
Jeff

008 (author)2009-10-18

I've had this little guy for years now but never had the courage to pull it apart to kill that beep. So now I'm sitting here cleaning a cat pee spot next to my computer and thought "I wonder if there's a hack to kill this beep yet" and sure enough I find this, and then some! 

The unit doesn't seem to do a good enough job of drying at least compared to using the wand manually. Looks like I can now wire it up to vacuum, spin, spray whenever I want with some toggle switches. It sure drinks the solution like a fish so hooked up to an external fill/drain tank this thing can actually be more useful than it already is.

So the "power pin - pre regulation" pin is the main voltage source for activating the other pins?

klee27x (author)0082011-12-16

"So the "power pin - pre regulation" pin is the main voltage source for activating the other pins?"

Ah, no. In case anyone else is tinkering with their Spot Bot, do not connect preregulated power to any of the other pins. To play it safe, connect a wire to the regulated 5 V line (after it exits the LM7805). and touch that to the various pins (avoiding the ground pin!) to play your Spot Bot like a puppet.

Also, those pins are connected to the microcontroller on the pcb. These are probably set to output low ( I never checked, maybe they're actually set as input?) and you're overriding them when you do this. So you probably shouldn't leave them on there for any long length of time, lest you damage your Spot Bot. Although I did this in the vid and caused no harm.

When I actually plugged in a micro with a custom cleaning routine, I diode isolated the header so I wasn't pushing a line while it was pulling.

008 (author)klee27x2011-12-18

For the past 2 years I was doing it with the pre regulated pin. Seems to be fine. I use alligator clips to keep the vacuum running. I've mostly given up on the spotbot since I bought a Hoover carpet cleaner. The spotbot gets use when I need a wand-type cleaning job.

klee27x (author)0082009-10-18

As for your question, I'm guessing you can. I never did it that way, directly. I was actually using an external 5V power supply.

On the control board, there's a little 3 pin TO-92 transistor-looking thingy which is really a small 5V regulator. This feeds the board's microcontroller, and the microcontroller output controls the SpotBot. So technically, the circuit is designed to be run at 5V. But...

Like I said, I haven't seen the actual drive circuitry; I only have access to the control board side of it. But I'm guessing that the motors are all switched with a darlington array with built-in base resistors. Or N-FETs. In any case that I can imagine, there should be no worries using the unregulated DC.

There is ONE thing to be careful about. When the motors and other stuff are OFF, the microcontroller is actively sinking. So you do not want to have the control board actually plugged in when you decide to start filpping switches. This will short the microcontroller, unless you unplug or isolate it.




008 (author)klee27x2010-02-02

Jumping at the plug using jumpers and alligator clips works great. I'll have to make up a switch board and do a separate write-up for it. Thanks again!

Now when I unplug the jumper manually I'm still expecting that evil beep.

klee27x (author)0082009-10-18

"The unit doesn't seem to do a good enough job of drying at least compared to using the wand manually. Looks like I can now wire it up to vacuum, spin, spray whenever I want with some toggle switches. It sure drinks the solution like a fish so hooked up to an external fill/drain tank this thing can actually be more useful than it already is. "

Yeah, I noticed that, too. My current solution for both problems: I actually wrote up a custom cleaning cycle that doesn't spray, at all. It just vacuums and brushes, with a change of direction every 20 seconds, or so. Then it stops automatically after 5 min. (I guess the simpler hack would be to just snip the beep wire and the spray wire!?)

So instead of letting SpotBot hose down a big circular area several times per cycle, I use a spray bottle to put the cleaning solution only on the stain and let it soak in for a minute before setting SpotBot into attack mode. The results are good, the carpet stays drier, and the fill tank goes a long, long time (before filling with concentrated, opaque brown juice :)).

feijooster (author)2011-12-11

i can't see the videos.
please tell me the "Private Album Password"

klee27x (author)feijooster2011-12-12

Oh, looks like Photobucket changed the file extension on all my vids. I updated these three links. Try again.

feijooster (author)klee27x2011-12-14

thanks a lot, now i can see them.

Damien59 (author)2009-06-05

Unable to download the PDF any way possible, and your article doesnt tell me which wire to cut.... grrrrrrrrr

klee27x (author)Damien592009-06-05

Yeah, it doesnt say it. It SHOWS it. Look at the last picture and hover your mouse over the yellow boxes. It shows you what each signal line controls. So all you have to do it take your wire cutters to the cable that plugs into the header. In this case, it's the 5th wire from the top (or the 4th wire from the bottom) of the 8-wire cable that you'll wanna snip. :) I don't know anytthing about a PDF. I didn't make that and I've never seen one on one of my instructables before. I think it's something to do with the new "pro" account changes. Maybe it's there by mistake.

Damien59 (author)klee27x2009-06-08

Got it now, just bent that pin down, and plugged the connector back in, WOO HOO! SILENCE! THANK YOU GOD! -Damian

klee27x (author)Damien592009-06-08

Awesome! I feel your joy, brother. I'm actually considering going back in to do the full snip. My microcontroller jobbie lets out just the one beep.... but that one beep gives me flashbacks. This noise is like the auditory version of Chinese water torture, isn't it? Replace "drip..... drip..... drip" with "BEEP!...... BEEP!...... BEEP!" The anticipation before the next beep makes it worse. I still get that feeling after hearing that first beep. :)

Awesomeseries (author)2009-06-04

couldn't you just kill the speaker thingy (being very stupid...)

klee27x (author)Awesomeseries2009-06-04

Yeah. :) If you can find it. I guess it depends on what's easier for you - take apart the device until you find the speaker/piezo, or bypass it from the control panel.

klee27x (author)klee27x2009-06-04

... And it can be very difficult to dismantle modern appliances. I'm reminded of a printer which I ended up disassembling with the help of a 3 pound sledge hammer. :)

canida (author)klee27x2009-06-05

Heh. They really don't want to make it easy for you!
I've disassembled things by dropping them off a 5-story roof, too. About as effective as the sledge hammer.

klee27x (author)canida2009-06-06

Lol! I have a feeling it got a little bit personal at that point. Am I right? :) I got a lot of satisfaction from finally smashing open that stupid printer. I originally was trying to fix the thing. But when I couldn't get the darn thing open, I went from "trying to clear a paper jam" to "just wishing my printer a bloody death so I could harvest its organs" in a matter of an hour or two. I was imagining the scene from Office Space when I did the deed. I can imagine a 5 story drop onto a concrete sidewalk would have been a nice stress-reliever. :) Maybe there should be a term for service-unfriendly devices which are hard to open. I'm thinking "ABS origami."

tanmanknex (author)klee27x2009-06-04

in your case, i think you'd have been better off if you just killed the speaker.

klee27x (author)tanmanknex2009-06-04

Well, if you had one of these, you might change your mind. I was pretty ecstatic that I even got the control panel open. It's not like there are a couple screws to remove and the whole cover comes off. The beep is actually a common complaint for this device. Check Amazon.com reviews, and you'll find a lot of complaints, but no tips for fixing it. I tried googling for a known fix, but I didn't find anything. So now, anyone who has a screwdriver and a wirecutter can remove the beep in about 60 seconds. I don't think it gets any easier than that.

sensoryhouse (author)2009-06-06

I had a similar problem with one of my UPS's (uninterruptable power source). It kept beeping saying that the battery was bad. I checked the battery with the multimeter and it was fine, plus the UPS lasted a solid 10 minutes when unplugged. So I cracked it open and removed the piezo speaker from the circuit board. It hasn't bothered me since.

WisconsinPlatt (author)2009-06-06

THANK YOU

I need that stupid beeping to stop. I can tell its finished just fine without the indicator beep.

dombeef (author)2009-06-04

Nice!

About This Instructable

10,249views

19favorites

License:

More by klee27x:Stow-Away Whiteboard and Magnetic Tool HolderSoldering to Desoldering Station HackMinimalist Bench Sander
Add instructable to: