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!"


"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

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?

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

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

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

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

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

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

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."


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

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

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

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.

Step 13: 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

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!



    • Pocket Sized Contest

      Pocket Sized Contest
    • Trash to Treasure

      Trash to Treasure
    • Organization Contest

      Organization Contest

    26 Discussions


    Question 10 months ago on Introduction

    hi i stumbled across this website and cant tell you how invaluable it is. i dont know if youll read this but i have a bissell spotbot that turns on sprays suctions everything except the bristles dont work i have taken it apart over 5 times ive taken the brush motor and cleaned checked it ive checked for and debris clogs ive taken the brushes off and cleaned reassembled them and yet i cant get them to work any advice would be greatly appreciated


    2 years ago

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


    7 years ago on Introduction

    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,


    9 years ago on Introduction

    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?

    5 replies

    Reply 7 years ago on Introduction

    "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.


    Reply 7 years ago on Introduction

    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.


    Reply 9 years ago on Introduction

    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.


    Reply 9 years ago on Introduction

    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.


    Reply 9 years ago on Introduction

    "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 :)).


    Reply 7 years ago on Introduction

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


    9 years ago on Step 14

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

    3 replies

    Reply 9 years ago on Introduction

    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.


    Reply 9 years ago on Introduction

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


    Reply 9 years ago on Introduction

    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. :)


    Reply 9 years ago on Introduction

    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.


    Reply 9 years ago on Introduction

    ... 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. :)


    Reply 9 years ago on Introduction

    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.