element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents Turning a Broken Robot Vacuum into a Network-Controlled Raspberry Pi 5 Rover
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Toptech-Voices
Engagement
  • Author Author: cstanton
  • Date Created: 15 Jun 2026 4:43 PM Date Created
  • Last Updated Last Updated: 18 Jun 2026 9:52 AM
  • Views 32399 views
  • Likes 5 likes
  • Comments 6 comments

Turning a Broken Robot Vacuum into a Network-Controlled Raspberry Pi 5 Rover

Clem takes a broken robot vacuum and transforms it into a modular, network-controlled platform powered by Raspberry Pi 5, tackling real-time control, power challenges, and GPIO quirks along the way

Time to Clean-Up!

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Network-Controlled Modular Robot Built from a “Rubbish” Vacuum Base

In this project, Clem takes what most people would consider e-waste,a broken vacuum robot, and transforms it into a capable, network-controlled robotics platform. What begins as a humorous premise quickly evolves into a thoughtful exploration of modular design, real-time control, and pragmatic engineering decisions.

As Clem himself frames it:

“Of course, the only sensible thing to do is to build a network controlled robot… out of a robot vacuum, because I had that since 2016.”

This blend of practicality and experimentation underpins the entire build.

image

From Overengineered to Practical

The project did not start with this stripped-back philosophy. Clem initially considered a fully custom design, complete with 3D-printed components and bespoke mechanics. However, this quickly proved too complex and time-intensive for the intended outcome.

Instead, he pivoted toward reusing an older robot vacuum platform,a decision grounded in efficiency.

“This was actually the first project that I did… it was just the vacuum… and this time, we’re powering it with a Raspberry Pi 5… and I want to have it real time controllable from any network device.”

The reused chassis provides motors, wheels, and a compact structure,allowing Clem to focus on control systems and modularity rather than mechanical fabrication. One of the defining features of this build is the use of DIN rails. While typically associated with industrial control systems, Clem repurposes them to enable rapid iteration and experimentation.

“I just slap on some DIN rails on the robot’s chassis… which means you can just attach whatever you want,sensors, controllers, additional dev boards.”

This approach transforms the robot into a flexible platform rather than a fixed design. Custom and community-sourced mounts support components such as the Raspberry Pi, motor drivers, bump sensors, and power systems. The addition of limit switches mounted on articulated arms introduces basic collision detection, something not explicitly detailed in the original blog draft.

A particularly practical addition is the DIN-mounted USB power interface. This allows Clem to separate logic and high-power systems:

“This allows me to disconnect the Raspberry Pi whenever I just want to power up all the 12-volt systems… I don’t have to worry about my Pi not shutting down properly.”

image

Core Hardware and Vision System

At the center of the system is a Raspberry Pi 5, paired with dual camera modules. These are configured to stream video simultaneously, widening the robot’s field of view.

“With two cameras, we can widen the field of view… which means it’s a lot easier to navigate around.”

The cameras themselves are NoIR (infrared-sensitive) modules, which introduces an unusual visual effect:

“Why are the colors off? Well… this is how the world looks if you can see infrared light.”

This choice has a practical advantage, improved low-light performance, making the robot viable for remote inspection tasks even in dim environments.

Power Delivery: Stability Over Elegance

Powering a Raspberry Pi 5 alongside motors is non-trivial, and Clem’s solution deliberately deviates from typical lightweight robotics design.

Rather than lithium-based batteries, he opts for two 6V sealed lead-acid batteries wired in series:

“The cheapest, heavyweight solution… is just classic lead-acid batteries… I actually need more weight… otherwise it will slip.”

This decision illustrates a key engineering trade-off: the added mass improves traction for the spring-loaded drivetrain while still delivering sufficient current.

Fine-tuning the voltage regulator proved critical. Clem highlights an often-overlooked nuance:

“I don’t measure that with a multimeter… I need to know what the Raspberry Pi sees… I want it to always see 5.0 to 5.1 volts.”

This insight is particularly valuable for anyone attempting similar builds, as it avoids common brownout issues under load.

image

A Deliberate Choice: No ROS, FastAPI and Real-Time Control

Unlike many robotics platforms, this build intentionally avoids ROS (Robot Operating System). Clem instead develops a lightweight, purpose-built system tailored to his exact requirements.

“I’m not using ROS… I just rather do it from scratch and just how I want it to be.”

This decision simplifies the software stack, reduces overhead, and keeps the system highly responsive, though it does place more responsibility on custom implementation. The robot is controlled over a network using a Python backend built with FastAPI and served via Uvicorn. This combination enables near real-time responsiveness.

“I wanted to have real time controls… using the keyboard arrows… Flask, Bottle… none of these would yield any form of real time controls.”

The final implementation exposes both HTTP endpoints for video streaming and a WebSocket interface for command control. The structure is clear in Clem’s code:

@app.websocket("/ws")
async def ws_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        cmd = await websocket.receive_text()
        if cmd == "forward":
            forward()
            await websocket.send_text("FORWARD")

Motor control is implemented using the GPIO Zero library, with simple high/low signals driving an L298N motor driver:

def forward():
    L1.on(); L2.off()
    R1.on(); R2.off()

This straightforward approach is also the result of trial and error. Clem encountered significant issues with GPIO behavior on the Raspberry Pi 5:

“Raspberry Pi 5 works a bit different GPIO-wise… none of them worked like I wanted them to… the LED function… that’s your friend.”

This reinforces a critical takeaway: abstraction libraries can sometimes be more reliable than lower-level attempts, particularly on newer hardware.

image

Video Streaming vs Responsiveness

While control latency has been minimized, video streaming introduces a new bottleneck.

“The bottleneck… is now the video stream… two times 640 by 480… there’s a lot of stuff going on.”

Lower resolutions improve responsiveness, but Clem chooses higher quality for usability. This trade-off highlights the challenge of balancing perception and control in networked robotics. Early testing revealed hardware limitations, notably incomplete wiring of the motor driver, preventing reverse movement:

“I couldn’t run the motors backwards… once I got stuck in a corner, I was stuck.”

Incremental testing allowed Clem to isolate and resolve these issues without overcomplicating the system early on. This iterative approach is consistent throughout the project. Despite its technical depth, the project retains a playful objective, retrieving a dropped tool:

“Of course the robot can just hand me a broom… it works… kind of.”

More importantly, Clem positions this build as a foundation for future work. The system is not yet autonomous, but it is designed to become so.

“Now we have a fully real-time controllable robot… but it’s not autonomous yet… what kind of sensors and processing power should we add?”

image

Looking Ahead

The modular DIN rail system, combined with network-based control and expandable hardware, makes this robot an ideal experimentation platform. Potential upgrades include:

  • Autonomous navigation using additional sensors
  • Integration with SLAM or lightweight mapping systems
  • Enhanced safety systems (e.g., physical kill switch)
  • Machine vision processing using the onboard cameras

By prioritising flexibility over perfection, Clem has created a system that is both functional and extensible. It’s a reminder that effective engineering often comes down to making the right compromises, and knowing when to abandon complexity in favour of progress.

As Clem demonstrates, sometimes the best robotics platform isn’t built from scratch, it’s rescued, repurposed, and re-imagined.

Supporting Links and Downloads

- DIN rail clip by PasticXYZ

- Low profile Raspberry Pi DIN Rail mount by Duckington

-  Episode 719 Resources - Turning a Broken Robot Vacuum into a Network-Controlled Raspberry Pi 5 Rover 

Bill of Materials / Parts

Product Name Manufacturer Quantity Buy Kit
RPI5-8GB-SINGLE Raspberry pi 1 Buy Now
Rechargeable Battery, 6 V, Lead Acid, 3.3 Ah, Quick Connect, 1 Multicomp pro 2 Buy Now
Battery Charger, Desktop, Lead Acid, EU, UK, ALCT Series, 230VAC Supply Voltage Ansmann 1 Buy Now
Isolated DIN Rail Mount DC/DC Converter, Railway, 4:1, 30 W, 1 Output, 5 V, 6 A MEAN WELL 1 Buy Now
Daughter Board, Raspberry Pi NoIR Camera Board, Version 2, Sony IMX219 8-Megapixel Sensor Raspberry pi 2 Buy Now
DIN Mounting Rail, Standard DIN Rail, Hellermanntyton Terminal Blocks, 2 m, 15 mm 1 Buy Now
Development Board, L298N, H-Bridge Motor Driver, Motor Control Seed/ various 1 Buy Now
Product Name
Broken Vacuum robot
 
  • remote control rover raspberry pi
  • lead acid battery robot build
  • python robotics project
  • e14presents_mayermakes
  • robotics power management battery design
  • fastapi robotics control
  • l298n motor driver project
  • dual camera robot streaming
  • real-time robot control web interface
  • raspberry pi 5 robot
  • gpio control raspberry pi 5
  • modula robot platform din rail
  • network controlled robot
  • pi camera streaming opencv
  • maker robotics platform diy
  • diy robot vacuum hack
  • friday-release
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply
  • mayermakes
    mayermakes 11 days ago in reply to DAB

    thank you!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes 11 days ago in reply to beacon_dave

    that was an inspiration for the concept, but I aim to keep it lower so the risk of toppling over is less (it dows wobble quite a bit). the original chemistry was NiCd at 12V (10x1,2 nominal)
    I havent really looked for the optimal battery, it wa smore driven by availability and price for now

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes 11 days ago in reply to Dipeshkachhi

    no I have thrown out those sensors way back in 2016 as I did not have the skills back then to reuse them (also thought some were broken). the only original parts are the chassis and actuators

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB 22 days ago

    Very cool project Clem.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • beacon_dave
    beacon_dave 23 days ago

    Looks like a useful platform that could be used for a number of projects. Reminds me a bit of the circular robotic bases you used to see in technical colleges the 70's/80's which used to rapidly grow vertically as each new sensor and its associated support electronics was added to the stack. The lead acid battery and motors were vital in keeping the centre of gravity low enough.

    What was the original battery chemistry in the robot vacuum ?

    Have you found any small lead acid batteries that last beyond a year or so ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Dipeshkachhi
    Dipeshkachhi 24 days ago

    Very cool hack! Did you manage to keep the vacuum's original sensors (like cliff sensors or bumpers) working with the Pi, or did you have to add your own?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube