CleanBOT- Your DIY Floor Cleaning Robot




About: New ideas every day

The CleanBOT ( Remote Controlled Autonomous Floor Cleaning Robot) is designed to clean floor in two different ways: with vacuum or active mop. It has auto mode but you can also control it manually by using bluetooth connection and android app.

Most parts of the robot are made from electronics garbage for example:old inkjet printer.This allowed me to significantly reduce the cost of the robot . Current cost of the robot is between 50-60 $ it depends how many parts already you have.

In this inscrutable I will guide you through the steps that I've followed in building my robot.

Step 1: How It Works - Video

Step 2: Parts & Tools

Components: - You might find it difficult to find all the parts that I have used

  1. .2x DVD player,
  2. Some plywood,
  3. Some wires,
  4. PCB,s,
  5. Cooling fan,
  6. Old inkjet printer,
  7. Carbon filter,
  8. Sensors,
  9. Blower,
  10. Glue for wood,
  11. Solder,
  12. Gel battery 12V 7Ah,
  13. Some screws with nuts,
  14. Hinges,
  15. Springs
  16. Rotary wheel,
  17. Sealing tape,
  18. Heatsink for LM350,

Some electronic components:

  • 2x Buz11 Mosfet , Buzzer , 2/16 HD44780 display, 100nF ceramic capacitors,2x7805 voltage regulator,8x Fast Diodes 1N4149 , Atmega 32, Some LED,s and 200 Ohm resistors for them,
  • Some Goldpins,100k Ohm Resistors,4017 counter, 1k Ohm resistors,BC-548 transistor, 2x10k potentiometer7xButton, HC-05 bluetooth module,HCSR-04 sonar,
  • Sharp GP2Y0D810Z0F,Pololu #2460,1000uF and 220uF electrolytic capacitors,6x ARC-2 connectors,LM350 voltage regulator1uF electrolytic capacitor, 240 Ohm resistor, Sockets for chips, Analog servo, 10k Ohm resistors,

You can check the exact amount of elements like capacitors and resistors on the schematics.


  • Dremel
  • Handsaw
  • Screwdriver
  • Wood file
  • Burner for welding
  • Pliers
  • Hot glue gun
  • etc

Step 3: Some Hardware and Frame

I used 6 mm plywood which allows me to make strong and light robot frame. Some parts are connected with glue and some with wood screws.Later you can paint it in the way you like.

Step 4: Motors

Robot is driven by two high speed DC motors with gears which are from DVD player- they have enough torque to move the robot which weighs about 5kg. I made a separate PCB for motor controller using thermal transfer method. Motor controller is made on L298N dual H-bridge wich can handle up to 2 amps per channel. Using square wave with variable filling generated by the microcontroller i can control speed of the engines .Wheels and axes are made from Lego bricks as y can see in the picture above. In addition, the cooling fan was used to cool down overheating engines. On the front of the robot i used a rotary wheel which allows robot to turn in every direction.

Step 5: Vacuum Cleaner

Vacuum cleaner is the most important part of my robot wich allows it to clean every floor.

It consists of :

  • Vacuum chamber (B)
  • Suction element (A)
  • Seal between the floor and the suction element(C)
  • Blower speed regulator with radiator(made on LM350) (F)
  • Blower (G),
  • Lid which allows you to empty the vacuum chamber of the dust and other impurities(I)
  • Carbon filter wich stops dust (H)
  • Tray for larger impurities (D)
  • Element for directing an air flow (E)

How it works:

Dust and other impurities are sucked in to suction element and later they go to the vacuum chamber. I used element for directing an air flow (E) which allows to separate lighter impurities from heavier ones wich settle in the tray (D) Dust is stopped by carbon filter (H) .Blower (G) creates enough suction that allows smooth operation of the vacuum cleaner with a relatively small power consumption.

The arrows illustrate the direction of air flow on the illustration above.

Step 6: Active Mop

Used system is made to mop the floor accurately and efficiently . The whole mechanism is made from processed part of an inkjet printer.I had to shorten this part and weld it again. Principle of operation: The mop moves sideways (it bounces from the edges) its moved by belt connected to a motor. Active mop driver is very simple it uses 4017 integrated circuit , you can see schematics in the picture above.

Step 7: Battery

I decided to use big car battery, because its easy to charge,it haves high capacity(7Ah) and its very cheap. This solution haves also disadvantages : its big and heavy- so i had to use better engines. Robot can work on fully charged battery for about 6 hours. Lithium-ion batteries are also a good choice. But they are quite costly and require a dedicated charger.

Step 8: Sensors Intro

My robot is equipped with following sensors that allow it to operate in completely automatic mode: HCSR-04 Sonar mounted on servo, IR proximity sensor (pololu #2460), Sharp GP2Y0D810Z0F digital IR proximity sensor ,Some Bumpers. In next steps i ll show how this sensors work and what they are supposed to do.

Step 9: Bumpers & Thick Carpet Sonsor

1 Bumpers(impact sensors) -

One of the primary sensors in each autonomous mobile robot . Robot can detect a collision with an object that was not detected by other sensors to prevent the engines from burning. CleanBOT is equipped with 3 bumper zones:

  • A - Left Bumper
  • B - Right Bumper
  • C- Coupled front bumpers

When robot collides with an obstacle it performs the following exercises:

  • C * Crash of the front - the robot goes back and then performs measurements with ultrasonic sonar to find the best way and then continues moving forward until it reaches the next obstacle
  • A * Crash of the left - the robot rotates 90 degrees to the right and then continues moving forward until it reaches the next obstacle
  • B * Crash of the right - the robot rotates about 90 degrees to the left and then continues moving forward until it reaches the next obstacle

2. Thick Carpet Sensor

Robot stops and go back when it detects thick carpet that could cause blockage of the robot or burn engines. The principle is very simple: it is a piece of bent wire (B) attached to the front bumper plate (E). After moving to the carpet wire presses on the bumper mounted on hinges (A) that presses the button (C). In all of the bumpers i have used additional spring (D) which triggers the bumper back to its previous position.

Step 10: Stairs Sensor

I have used sharp GP2Y0D810Z0F for detection of the stairs . Sharp sensor allows to detect a drop to prevent the robot from falling down the stairs. It is a digital sensor operating in the range of d = 2<-->10cm when the floor is in the sensor field of view (low state is at output) When sensor detects stairs, state on the output will be high. Once stairs are detected, the robot immediately is going back to safe distance and then it will continue to operate.

Step 11: Sonar Mounted on a Servo

By using the servo attached to sonar I can take measurements in the range of 180 degrees .

The robot determines the distance from obstacles in any direction and then decides which side has more "space" and begins to drive to this place until it finds next obstacle. On fig 2 above robot measures 3 distances d1 is the longest one so robot ll go over there. Number of measurements depends on the program you have written.

Step 12: IR Proximity Sensor

Pololu #2460 38kHz is an additional sensor designed to detect the obstacles which have not been detected by Ultrasonic sonar it provides more control over the area in front of the robot. With this sensor, it is also possible to detect small obstacles standing right on the floor for example cables and other flat things.

Step 13: Display

LCD display is coupled together with a micro controller. On the screen are displayed all important messages for the user. For example when you enable auto mode via Bluetooth display shows the message: "Auto Mode Enabled"

Step 14: Bluetooth & Smartphone App

Bluetooth with a smartphone has been achieved through HC-05 module that allows to comunicate with the microcontroller using serial transmission.

App on smatphone works in the following way: when you press button smartphone send one byte of information (one char)which is received by micro controller . The micro controller also sends the same byte back to the smartphone to check transmission errors. It is possible to: connect to and disconnect from the robot, manual control, enable and disable: auto mode, active mop , blower.

Step 15: Robot Brain

Main PCB is based on an 8-bit micro controller AVR Atmega32 which have its own power supply section . I made this PCB also with thermal transfer method. Program is written in C (GCC) and its completely based on interrupts. To receive and transmit data to Bluetooth i used built in hardware USART. The micro controller is clocked at a frequency of internal resonator 8 Mhz. PWM signal for steering motors and servo is generated by hardware timers. Pulse length of sonar also is measured with a hardware timer. Blower is driven directly from main PCB by Mosfet transistor.



    • Classroom Science Contest

      Classroom Science Contest
    • Frozen Treats Challenge

      Frozen Treats Challenge
    • Backyard Contest

      Backyard Contest

    69 Discussions


    5 months ago

    what type of sensor is use forOpen MenuCleanBOT- Your DIY Floor Cleaning Robot


    Question 5 months ago on Step 3

    inhat type of sesor


    Question 6 months ago on Step 10

    How do you force vacuum to go over floor return air grille? Thanks.

    Graseo GranteoP

    Question 9 months ago

    Please can i get program and circuit diagram of full project with diagram of how to assemble the project


    10 months ago

    Is it possible for the AVR ATmega32 microcontroller to operate 7200 RPM DC Motor?


    1 year ago

    Hai can you make video and teach how to do the coding arduino and create app using mit app.. pleasd


    1 year ago


    This project was "abandoned" by me a long time ago. If you want to check my new projects please visit my website (I stopped publishing my projects on the instructables website) :


    1 reply

    3 years ago

    Hey MosfetN, thanks a lot for this Instructable. I am looking forward to start building this tomorrow, but cannot find your source code anywhere (you specified that it is in the last step, 15, but I cannot see the downloadable file). Could you provide me with the source code? I will probably do several modifications. Thank you beforehands.

    3 replies

    Reply 1 year ago

    Unfortunately, I can't share the code.


    Reply 3 years ago

    he has given only pdf files... are you taking about the same ?


    Reply 2 years ago

    by clicking the link below his username you can find the test program on his site:


    2 years ago

    whats d total cost incurred in making this?

    1 reply

    Reply 1 year ago

    I don't remember but i think it was something between 30$ and 50$.


    2 years ago

    I think you could save your self a bit of money, and make it more accurate by using a pi zero. It could create a image map of the room, and have that information stored along the process of its journey. Just a idea, what do you think?

    1 reply

    Reply 1 year ago

    Nowadays it not a bad idea ,but when i was making this robot there wasn't any Raspberry Pi Zero :)


    3 years ago

    how to detect if there is a dust or not in a floor??? pls reply

    its my project and and am not getting idea for that

    3 replies

    Reply 1 year ago

    CleanBOT doesn't detect any dust , this project is as simple as it could be. If you want to make dust sensor you probably can use some laser or IR diodes with some recievers (photodiodes / phototransistors) to sense the flow of particles.

    yash motiwalepravinp10

    Reply 2 years ago

    Can u give circuit diagram and program and how u made it ideas


    Reply 2 years ago

    Dust sensor? There are many different and all well-connected to the Arduino.