New here? This is the start of Phase 3. If anything here feels unfamiliar, earlier parts of the blog have the full context — but you don't need them to follow along here.
Before anything else — an important disclaimer that applies to all of Parts X1 through X5: this is not our project. Everything in this five-part series is a write-up of building, wiring, and using OpenNeato, an open-source project created by developer renjfk on GitHub. We didn't write this firmware, didn't design this hardware bridge, and aren't claiming any credit for the engineering behind it. What follows is simply a documented account of following renjfk's instructions, on our own Neato D3, at the point this was attempted — late June 2026, while OpenNeato was still in early beta.
If this topic interests you, the full project lives here: github.com/renjfk/OpenNeato. Go support the actual author.
With that fully on the record, let's talk about why this project exists at all.
How a Perfectly Good Robot Vacuum Became "Dumb" Overnight
In late 2025, Vorwerk — the company that owns Neato Robotics — shut down Neato's cloud servers. Not a bug, not an outage. A deliberate decision to discontinue the backend that every Neato app and every Neato robot from the D3 through D7 generation depended on.
The robots themselves didn't change. The hardware is identical to the day it was manufactured. What disappeared was the connection — the cloud service that the mobile app used to send commands, store maps, and manage schedules. Cut that connection, and a genuinely capable robot vacuum gets demoted to something much less interesting.
Here's specifically what broke:
All saved maps and no-go zones vanished. Every map you'd built by letting the robot clean your home over time — gone. The robot no longer recognizes virtual walls or designated cleaning zones. Without that memory, it defaults to cleaning the entire space indiscriminately, every single time. Want to keep it out of the home office? Close the door. That's the new "zone control."
Manual button presses only. The only way to start a cleaning session is to physically press the Play button on the robot itself or on the charging dock. No app, no remote trigger, no voice assistant integration — none of it works anymore.
Scheduling is gone. Setting the robot to clean automatically every morning at 9am, or on a Tuesday/Thursday/Saturday rotation — that entire feature depended on the cloud relaying schedule data to the robot. With the cloud dead, so is the schedule.
No new maps, ever. Move the robot to a new house, rearrange the furniture, anything that would normally trigger a remap — none of that can be saved anymore. The robot can still technically navigate room to room using its onboard LIDAR, but it has no persistent memory of what it's already mapped.
In short: a $300–500 robot vacuum, reduced to "press a physical button and hope it doesn't get stuck under the couch."
Why You Can't Just "Update" Your Way Out of This
The obvious question is whether Neato (or Vorwerk) could simply push a firmware update that removes the cloud dependency. They could. They haven't. Vorwerk has not open-sourced any part of the original Neato software, and as of this writing, there's no indication that an official fix is coming.
That leaves the burden on the owners of these robots — and on whoever in the community decides to reverse-engineer a path forward. Several independent projects have emerged to fill this gap. The one this series follows is OpenNeato.
What OpenNeato Actually Does
The core idea is refreshingly simple: instead of routing commands through Neato's (now-dead) cloud, OpenNeato moves all control local — onto your own home network, with zero dependency on any external server.
How it works, mechanically:
A small, inexpensive ESP32 microcontroller board plugs directly into a debug/USB port already present inside the Neato robot. That ESP32 acts as a bridge — it speaks the robot's internal serial protocol on one side, and serves a local web page on the other. Open that web page from any phone or laptop on the same WiFi network, and you have a control panel. No internet connection required, no account, no app store.
What gets restored, according to the project's current feature set:
- A dashboard showing live robot status and battery level
- Core cleaning controls — start a full clean, pause, resume, or send the robot back to its dock
- A manual drive mode with a virtual joystick and a live map rendered directly from the robot's onboard LIDAR sensor
- Safety alerts — bumper hits, wheel-lift events, motor stalls — surfaced in real time on the dashboard
That's a meaningful chunk of what the original app offered, running entirely without Neato's infrastructure.
Which Robots This Works On
Supported: Neato Botvac D3 through D7.
Not supported: D8, D9, D10 — these use a different control board, and their serial debug port is password-locked at the firmware level. If you own one of these newer models, this particular project won't help; a different approach would be needed.
This one detail also makes the topic worth covering for anyone searching for help: a meaningful number of D3–D7 owners are sitting on robots that became "dumb" overnight, with limited official guidance on what to do next.
What Setup Actually Looks Like (Preview)
OpenNeato includes a command-line flashing tool — openneato-flash — that auto-detects the connected ESP32 board, downloads the correct firmware directly from the project's GitHub releases, and flashes it without requiring any separate development environment setup. For anyone wanting deeper smart-home integration, the project also exposes HTTP commands that can plug into Home Assistant.
That's the rough shape of what's ahead in this series:
- Part X2 — Buying the ESP32, flashing the firmware, configuring WiFi
- Part X3 — Finding the debug port inside the Neato, wiring the ESP32 to it
- Part X4 — First boot: dashboard, manual drive, live LIDAR map
- Part X5 — Full cleaning cycles, auto-dock, scheduling, and phone notifications
To be clear one more time before closing this part: none of what follows in X2 through X5 is original engineering on our part. It's a transparent account — bugs, wrong wiring, confusing menus and all — of following someone else's excellent open-source work, on real hardware, in real time.
Next up: Part X2 — Buying the board and flashing the firmware.