Let's Make Robots!


Autonomously vacuum small debris and recharge


The ever-popular autonomous, self-charging, vacuum robot. Inspired by the old OMNI magazines photovore, of all things. The initial plan was humble and completely over-zealous using a BEAM inspired solar setup. It's evolved into a PICAXE driven battery powered robot to overcome my knowledge deficit of BEAM technique and solar power. 


Crappy vid but you get the idea -->

My humble PICAXE


Project plan:

  1. Design and test locomotion.
  2. Source low-voltage but effective vacuum unit.
  3. Develop and test charging circuit.
  4. Fabricate prototype robot base to test system interfunctionallity.
  5. Test IR communications protocol for charging station homing signal.
  6. Fabricate charging station.
  7. Design and test RTC circuitry for feasibility on an unregulated power source.
  8. Iron out the myriad of creases.
  9. Celebrate my first MCU success!

Project blog here


  • PICAXE 28X2 for robot brain
  • PICAXE 08M for charger brain
  • L293D motor driver
  • GM17 228:1 motors
  • cheap Ebay servos
  • Old design short-range analog Sharp IR sensor (GP2D120?)
  • MAXIM 712 NiMH charger chip
  • 4xAA batteries + plastic holder x 2
  • eBay novelty vacuum
  • Power Dash slot car motor Upgraded Mabuchi motor
  • 12V 1A 5A DC wall wart


  1. Design and test locomotion.

Let me say upfront that I don't have that many pics of this project. I intend on keeping a better photolog as the project continues.

The locomotion testing was done on an alpha test base with just the GM17s, the PICAXE 28X2 breadboard, and the Sharp IR sensor with servo riding on the back. It uses coding very similar to the first robot design ala Frits (thanks Frits!).

Prototype base with motors (left) and alpha base (right):

You can see I whittled out some holes in the foamcore I used for the alpha base to accomodate the bristles on the vacuum I ended up choosing. The prototype base has part of the debris box/nozzle apparatus assembled.

 2.  Source low-voltage but effective vacuum unit.

The first plan was to have a USB vacuum running off a regulated 5V from a common 7.2V battery pack with the 5V PICAXE running off its own regulated line. My first choice was this classic piece off the internet:

Per all the reviews it doesn't offer much suction. I only gave the chinese 3USD for it so I don't feel so bad. It's selling point was that it had the perfect upright design that used very little space in the robot.

I decided to look into the 2 x AA battery powered vacuums out there. I ended up buying one of these: 

Surprisingly it works pretty well (at 3V). Even though it's driven by two AA's it has an impeller about twice the diameter of the USB vacuum I originally purchased. Despite the increased vacuum it still didn't quite cut it. I noticed it has the same motor can as the first vacuum I chose (Mabuchi 130 type) so I upped the voltage on the Magic Bug to 5V and it was pulling a vacuum the way I wanted. I proceeded to make the alpha base to test things and it worked ok. I was letting the bot motor around sucking up hair and crumbs to measure run time when the motor started smoking. I guess the increased voltage was too much.





A was getting a little miffed at how the vacuum I wanted needed voltage that killed the motors I was using. Looking at specs for the 130 motor I stumbled onto a Chinese trend. Apparently slot cars have made a comeback over there and a popular scale uses 130-sized high RPM motors running at 2.4V. I was regulating voltage to the vacuum through a LM2576 that maxes out at 3A so I bought a Power Dash motor that uses current somewhere south of 2.5 amps I think it was. Swapping it into the vacuum I found the impeller causes more drag than the slot car it was rated for and it drew more current than the regulator could handle.

 3.  Develop and test charging circuit.

From the onset of this project the charger was to be onboard the robot and the charging station itself was only to supply the DC power. The activation of the charging electrodes would be handled by a PICAXE 08M monitoring reflectivity sensors on the station. The 08M would also send commands to the robot via IR. However at this point two things were causing me problems: 1) The noise from the vacuum was giving the Sharp IR distance sensor and its servo fits and 2) When hooked up straight to two 2300mAh NiMH batteries the vacuum pulled even harder than off the 2576 (batteries got very hot though). I could never solve the noise feeding back to the PICAXE so I changed the setup to use two battery packs; one for the vaccum (2xAA) and one for the PICAXE (4xAA). Plans are to use the ADC capabilities of the PICAXE to monitor its own voltage and a MAX8212 to send an interrupt to the MCU when the vacuum battery pack get low. A downgrade in motors is also probably necessary to prevent overheating the vacuum's battery pack.

This complicates the charging scenario more than I anticipated. Now the plan is to swtich between two charger circuits on the station, one for each battery pack, and a latching relay onboard the robot to dictate which battery pack gets the incoming charge current.


  4.  Fabricate prototype robot base to test system interfunctionallity.

As one can see in the very first picture with the two robot bases, the design changed somewhat. The alpha design was for ease of vacuum testing but was not feasible for the prototype. The robot is intended to stay under 6" x 6". As it stands it will measure just a hair over 5" sq. With the vaccum flat it was hard to easily remove the vacuum to empty out the debris with the batteries and/or circuit board likely to be above the vacuum itself. Plus the collection area for the debris is not that big.

I decided to turn the vacuum on its end and have it draw air through a nozzle into an intermediary debris chamber that would be emptied by opening a door on the front of the robot, eliminating the otherwise necessary disassembly/reassembly process.

Pics of partially assembled vaccum stack:


The extra pieces are mostly to box off the vacuum exhaust, which will be directed out the top of the bot This will eliminate the exhaust blowing out the bottom of the robot, pushing the dust away as it approaches. The vacuum stack design is hard to describe. On the bottom of the vacuum (around the inlet) there will be a magnetic seal that will attach the vacuum to the debris box.

The nozzle is formed from a block of Delrin nylon (actually two sheets glued together) contoured to be able to glide over the uneven surfaces it will encounter. I used a rotary tool to get the basic shape seen in the above pics. I still have a little work to do. The "hose" between the debris box and nozzle will be a piece of collapsable foam that has a sealed inner lining. The foams job will be two-fold. One, to provide a sealed, unobstructed airway. Two, to extend and collapse as the nozzle follows surface imperfections. On level ground it will be slightly compressed allowing for 1/4" extenstion into depressions it drives over.

My first test was with some random open cell foam (as seem above) used to pack test tubes used at my work. I used an old soldering iron to melt out a hole to match the box's base plate and the nozzles opening. Initial impressions were that it was harder to compress that I thought it would be so I burnt out the excess materials from the corners. I then sealed the inner surface with silicone caulking. It took more silicone than I thought it would and it stiffened the foam to the point where the bot couldn't compress it down enough to make contact with the ground. I'm looking for less dense foam and plan to seal the inside with a tube of plastic wrap (eg, Saran Wrap).


 5.  Test IR communications protocol for charging station homing signal.

Successfully programmed and designed the IR beacon seeking parts. The charging station will have a cluster of IR LEDs intermittently putting out a signal. Ordinarily it is ignored by the robot until either battery pack goes low. The robot will then start looking for the IR signal through the transceiver mounted on the head. When the transceiver finds the IR signal the robot will begin a sequence to center in on the signal and head towards it.

The charging electrodes on the robot will be a metal ball caster for the ground contact and a spring-loaded pickup on the top of the robot for the positive. The charging station will be a negative metal sheet on the ground and a postive metal sheet overhang (oversimplified description). There will be reflectivity sensors on the ground sheet that will detect when the robot has moved onto the charger. When the sensors are activated, the PICAXE 08M will change IR codes to one that signals the robot to stop and continue monitoring the IR signal. The charge sequence will then begin. The robot will be activated via IR when the 08M receives an interrupt from the MAX712 charger that signals the charge is complete. The robot will then begin its "back out" sequence and then resume cleaning. But only while I'm at work. All will be controlled by an RTC like the DS1337 (if I can get over the inaccuracy from my noisy supply lines).

The popular 3V "mushroom" vacuum did prove to be underpowed so I swapped in another Mabuchi motor rated for more voltage and higher load. At stall it consumes 1.9A. No load (other than the vacuum impeller) and it consumes ~1A. My 2450mA batteries are much more happy with the situation.

I have also fashioned a different chassis, doing away with the square prototype version I was working with. The reason for the change is two-fold: One, I just didn't like the whole look of a box puttering around my place, and two, I was getting tired of working out how to get the bot to maneuver away from things it ran into. It was always catching its corners on other obstacles when backing up and it was giving me fits.


The new design:


The internals minus the battery packs (they will be on the sides next to the vacuum:



I used magnets to make an easy connection for the vacuum (the black is electrical tape to hold things down):

Insides, sans vacuum:

Pics with the outer shell removed to show the debris collection compartment:


Shell with the access panel to the debris compartment removed. I will secure it with magnets ala the vacuum connection:


Close up of the comparment. I grabbed some filter foam for freezer compressors from work (the black sparkly material) to catch the majority of the macro sized bits:


Pics with the foam peeled back (yes, it's two layers):


Shot of the underside of the beast:

I put the overly-complex vacuum nozzle to rest and went completely in the opposite direction. It's now as simple as possible by using one of the accessory brushes that came with one of the mini-vacs I've ordered. It's oversized considering the opening to the vacuum itself is much smaller but I've still yet to see the consequenses from going too big (read, hasn't been tested yet).

I'm currently working the bump sensors for the front:

They are two ultra-low force momentary tactile switches that will be supported with some silicone beads in key places between the bumper and bot body. There will be one for the left and for the right. These triggers should allow the bot to get as close to obstacles as possible to cover the most ground area.

I'm also working on the circuitry for the vacuum. It will be on its own 4AA NiMH pack with an ultra-LDO regulator keeping things at 4.5V (this eliminates the previous designs that used two MAX712s to charge a 2AA and a 4AA pack separately). All the bits are in my possession. Now I just need time and gumption to get this thing sucking!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

ah right, on the vacboks, the entre all four surfaces are bumper switches to avoid exactly that problem.... still has wimpy fans though.

Great project, "collected". I`ve been working on a vacuuming robot for a while now and have mocked up a few designs for the vacuum system. I used a vacuum identical to your "magic bug" there at first but later on found another 70mm centrifugal fan which works better. With the design I have come to realise a few things I wish I knew before.

First up, think of the biggest piece of rubbish you want the thing to be able to suck up. For me I would be happy with something the size of raw rice, so I am using a wide very thin slot. A slot gives better coverage than just a hole and if the slot is thin enough it doesn`t noticably reduce suction.

2nd, even if the suction of your vacuum isn`t real powerful, you can offset that by having a powered cylindrical brush just in front of the intake slot which lifts the dust off the floor... it`s much easier to suck it out of the air than off the floor because static makes it stick there.

3rd, use some kind of flaps on the rear and sides of the air intake to get maximum suction in the front where it`s more useful. Also if its got a spinning brush the flaps can help prevent dust flying up in the air.

All these points seem really obvious but they DO help I swear.. :)

It's great to here info on those who've endeavored on your mission already. In regards to your points:

1)This plan originated when I had a cat. His hair and litter were the targets of my hatred. He has since gone to The Great Catnip Field in the Sky but the Crumbot dream lives on. The pics of the Delrin nozzle are not the final unit yet. I was going to grind out a gap, maybe 6-10mm tall, that will flare out from the intake hole to the left and right edges on the front of the nozzle. It's slighty inspired by your average home vac floor attachment that has most of the nozzle on the ground with some slits to allow in turbulent air.

2) I was scheming on a helper brush of this nature. If it wasn't for the exceptionally low ground clearance of the chassis I would probably try to fabricate one (it makes good sense to use one). I was thinking of using a roller wheel in contact with the ground that would be geared to have the attached brush spin faster than the world going by. Again, the chassis I use prevents it. Kind of a bummer.

3) Hopefully the intake design of the nozzle, with keep the suction aimed towards the front, it will minimize vacuum leaks as much as it can around the other three sides. I'm counting on a lot of things to go right with this slippery Delrin nylon (like glide alond bumps, slide up and down the vacuum stack, and not scratch up sensitve items the robot might overrun). Thanks again for the comment. To be honest with you, your vacbot inspired my secondary debris chamber and made me go with the magicbug as well. It seemed like a clone of the mushroom with a lower height. Also I really like the intake you made, nice attention to details. The bump sensor on the front is as good as it gets for cleaning along those edges (read: jealousy lol).

Is the mushroom vac the improved 70m cent. fan you found? So it has much better vacuum you say. I might have to make some design changes if that's the case.

I used to have three kittens but my girlfriend only had one, and it was feeling lonely, so we now have two cats each. The cats love it when the floors are clean but they leave a lot of hair and mess behind and I'm lazy so I started looking for automated cleaning solutions.

It goes agains my principles to spend $400 on a roomba so I decided to make my own, and I ended up spending MUCH more than that on tools and materials, but I can now build more than just a cleaning robot...

I recently got a new handheld vacuum cleaner so I might make my own version soon.

This was a triumph! I'm making a note here: "Huge success!"


As Antonio said, cat hair is a good motivator for a robot vac. I wanted to prove to my wife robot building can be a useful hobby... hasn`t come to happen yet though :)

I went down the local recycle shop and picked up a busted "swivel sweeper" for $1, you might be able to find something similar. The battery and motor were done for but I cleaned the brushes and they work great. Problem I am trying to work around now is that the brush flicks rubbish out from under instead of picking it up. I`m mocking up a thing with 2 opposite rotating brushes to see if it works better right now.

The mushroom vac I got seems exactly the same size as yours. They are probably all from the same factory! This 70mm fan is something I ripped out of a toy that levitated on the floor.

Ah, the 70mm is from something else. I was wondering. I looked heavier into the mushroom variant and it didn't look any larger (diameter wise). It does look taller, almost twice as tall.

I'm looking harder at the larger eBay AA-powered vacuums right now. I don't feel satisfied with my current choice somehow...

I found this guy and some variants much like it on eBay. The whole thing looks really big compared to what I have now but I think I can hack off most of the mass.  I'm impressed at the impeller size and its hearty 3AA powerplant :)

I was curious if one of these has come into anyone's inventory, and if so, how did it perform. I'm really curious as to what motor it's using. Thanks fellas.

I bought one on The eBay just so I can say I did. It will be good times to have something to hack and make a mess with. Something to do the Ultraviolent on. Maybe something I'll loose some flesh over. Where's my bandsaw...

You guys make me want to do this too...

I've got so much on my plate now that I don't even have time to do half of it. So I'll delay the vacbot until Christmas. Oh well...

Good job, keep at it!

It`s quite fun trying to come up with a vacuuming robot. Thinking about air flow, how to filter it, where and how the particles are going to be removed from the air stream etc. keeping it low to the ground but still able to skim over rug edges or cables, detecting extra dirty spots on the floor, I could go on and on about it.