New here? This is Part X2 of a five-part series documenting the process of following the OpenNeato project by renjfk on GitHub — an open-source replacement for Neato's discontinued cloud service. This is not our project; we're simply building it and writing it up. The full project lives at github.com/renjfk/OpenNeato. Part X1 explains the problem this solves and which robot models are supported.
What We're Doing in This Part
Two things: buy the right hardware, and load the OpenNeato firmware onto it. By the end of this part, you'll have an ESP32-C3 board running OpenNeato firmware, connected to your home WiFi, and serving a dashboard at http://neato.local — even though it isn't physically connected to the Neato robot yet. The robot connection happens in Part X3.
What You Need to Buy
| Item | Notes | Approximate Cost |
|---|---|---|
| ESP32-C3 dev board (4MB flash) | Look for ESP32-C3FN4 or "Super Mini" variant. Must have 4MB flash built-in — not an external SPI chip variant. | ~$5 |
| JST XH 4-pin connector cable | For connecting to the Neato's debug port. Needed in Part X3, not this part. | ~$5 |
| USB-C data cable | Critical — see bug section below. | Probably already owned |
On choosing the right ESP32-C3 board:
The ESP32-C3 comes in several variants. For OpenNeato, the important spec is 4MB built-in flash (sometimes labeled ESP32-C3FN4). Some very cheap boards use external flash chips instead of integrated ones — avoid those, as the flashing process may behave differently. The "Super Mini" form factor is a popular and well-supported choice.
Flashing the Firmware
Step 1 — Download the flash tool
Go to the OpenNeato releases page: github.com/renjfk/OpenNeato/releases
Find the latest release (v0.14 at the time of writing, late June 2026 — still early beta). Click "Show all assets" if you don't see all the files. Download the version matching your operating system:
- Windows:
openneato-flash_Windows_x86_64.exe - macOS:
openneato-flash_Darwin_arm64orx86_64depending on your Mac - Linux:
openneato-flash_Linux_x86_64
On Windows, the file will land in C:\Users\[your username]\Downloads.
Step 2 — Connect the ESP32-C3 to your computer
Use a USB-C cable to connect the ESP32-C3 to your laptop. You should see a small red power LED light up on the board.
Step 3 — Run the flash tool
Open Command Prompt (Windows) or Terminal (Mac/Linux) and run:
cd C:\Users\[your username]\Downloads
openneato-flash_Windows_x86_64.exeThe tool will auto-detect the connected ESP32, download the correct firmware from GitHub, and flash it. This requires an internet connection — the tool pulls the firmware directly from the project's GitHub releases.
Step 4 — Configure WiFi
After flashing completes, the tool presents a menu with options. Select 1 to scan for nearby networks, choose your home WiFi, and enter the password.
One critical requirement: ESP32-C3 only connects to 2.4GHz WiFi. If your router broadcasts only 5GHz, or if your phone's hotspot defaults to 5GHz, the connection will fail. Most modern routers broadcast both bands — make sure you're selecting the 2.4GHz network specifically.
Step 5 — Verify
Open a browser on any device on the same network and go to:
http://neato.localIf you see "Connecting to robot..." — success. The firmware is running, WiFi is working, and the dashboard is live. The message appears because the ESP32 isn't wired to the Neato yet — that's Part X3's job.
Three Bugs That Cost Us Nearly Two Hours
This part looked simple on paper. In practice, three separate problems showed up in sequence — each one requiring a different fix. Worth documenting all three so you don't spend the same time we did.
Bug 1 — Double-clicking the .exe does nothing. For 40 minutes.
Running openneato-flash_Windows_x86_64.exe by double-clicking the file opened a black window that immediately closed or showed nothing at all. Waiting didn't help.
Fix: Run it from Command Prompt, not by double-clicking. The tool outputs status messages to the terminal — without a terminal open, those messages have nowhere to go and the window closes instantly. Always run flash tools from Command Prompt or Terminal.
Bug 2 — "No USB serial port found"
Running from Command Prompt gave a clear error: no USB serial port found. The ESP32 had a red LED on (power), but Windows didn't see any COM port.
Checking Device Manager showed no ESP32-related entry anywhere — not under Ports, not under Other Devices, nothing.
Driver installation attempts (CH340, CH343, CH9102) didn't help.
Fix: Replace the USB-C cable.
The cable being used was a standard USB-C charging cable — it had power lines but no data lines. This is a surprisingly common issue: many USB-C cables sold as "charging cables" physically cannot transfer data. The board receives power (LED on) but is invisible to the computer (no COM port).
Swapping to a cable known to carry data — the kind used for syncing a phone, or explicitly labeled "data + charging" — immediately resolved it. Device Manager showed USB Serial Device (COM3) the moment the new cable was connected.
If you hit "no USB serial port found," try a different cable before installing any drivers. It's the most common cause and the easiest fix.
Bug 3 — WiFi configuration fails: "connection timed out, no response from network"
After successfully flashing, the WiFi setup step failed repeatedly with connection failed timed out no response from network. The network name and password were correct. Rebooting the ESP32 (holding BOOT, pressing RESET, releasing BOOT) didn't help.
Two things to check here:
First, confirm the network is 2.4GHz. As noted above, ESP32-C3 doesn't support 5GHz. This turned out not to be the issue here — the network was already 2.4GHz — but it's worth verifying first.
Second, and this was the actual cause: the ESP32-C3 was sitting in a breadboard during the WiFi setup.
The ESP32-C3 Super Mini has a small ceramic SMD antenna that is extremely sensitive to nearby metal objects. The metal contacts inside a breadboard sit directly next to the board's pins — close enough to interfere with the antenna's signal, reducing WiFi range and stability to the point where connection attempts fail. This is a known issue with this board family: the breadboard's metal rails effectively detune the antenna.
Removing the ESP32-C3 from the breadboard — holding it freestanding in the air — and running the WiFi setup again connected immediately.
Keep the ESP32-C3 out of a breadboard during WiFi setup, and ideally during normal operation as well. Any metal object near the antenna area, including breadboard rails, jumper wires draped over the board, or even a hand held too close, can degrade WiFi performance.
Summary: What to Watch For
| Problem | Most Likely Cause | Fix |
|---|---|---|
| .exe closes instantly | Running by double-click | Use Command Prompt |
| "No USB serial port found" | Data-only cable, not charging cable | Swap to a data-capable USB-C cable |
| WiFi "timed out" | ESP32 in breadboard / 5GHz network | Remove from breadboard; use 2.4GHz |
With the firmware flashed and WiFi connected, the ESP32 is ready. Next: open the Neato D3, find the debug port, and wire the two together.
Next up: Part X3 — Opening the Neato D3 and connecting the ESP32 to the debug port.




