~/renjfk $ open /artifacts/openneato
artifact / active
OpenNeato
Open-source replacement for Neato's discontinued cloud and mobile app.
Bare-metal C/C++ firmware on a single-core RISC-V ESP32-C3 (320 KB RAM, 1.6 MB per OTA slot) running a strictly non-blocking event loop over PlatformIO/ESP-IDF, bridging the Neato UART through a fully documented custom serial protocol. A zero-dependency Preact/Vite SPA, with Preact as the sole npm runtime dep, is gzipped and embedded directly into the firmware binary (PROGMEM), served over WiFi from the MCU itself with browser-based dual-partition OTA updates, SHA-256 integrity verification, and automatic rollback; the Go CLI flash tool auto-detects the chip variant for one-shot provisioning.
- created
- 21/03/2026
- updated
- 17/05/2026
> notes
It started with an email from Neato Robotics titled “Your robot was blocked” on 6 December 2025. I checked the mobile app and realized it was gone, even though support had been promised until 2028.
I was disappointed, but waited a bit in case they reversed the decision. They did not.
The community quickly rallied, and one alternative seemed promising. I had some experience with this from my previous Neato D85, where the robot can be controlled through a debug serial interface. But that solution required Home Assistant or another external service running on the network. I did not want that dependency.
So I decided to build my own solution from scratch. Two months and a lot of late nights later: OpenNeato.
What it is
OpenNeato is an open-source replacement for Neato’s dead cloud and mobile app. A tiny ESP32 board, around EUR 3, wires into the robot’s debug port and serves a complete web UI over WiFi.
No cloud. No app store. No account. No Home Assistant. No external dependencies.
What it does
- Dashboard with live robot status, battery level, and WiFi signal.
- House and spot cleaning with pause, resume, and dock controls.
- Manual driving mode with a live LIDAR map and virtual joystick.
- Cleaning history with recorded path maps, area coverage, and session stats.
- Seven-day scheduling managed entirely on the ESP32.
- Push notifications via ntfy.sh for cleaning, errors, and maintenance alerts.
- OTA firmware updates from the browser, so once it is inside the robot, USB is no longer needed.
- Dark/light theme, mobile-friendly UI, and browser-based access.
Setup takes minutes, not hours. openneato-flash auto-detects the board, downloads the firmware, verifies checksums, and flashes everything. WiFi configuration happens through an interactive serial menu right after.
It works with Neato Botvac D3 through D7. The frontend is embedded in the firmware binary, so a single OTA update covers both firmware and UI.
It is fully open-source, still early beta, and built for orphaned Neato owners who would rather revive useful hardware than throw it away.
There are a lot of perfectly good robots out there that just need someone to bring them back to life.