Thursday, July 2, 2026

Reviving a Dead Neato Vacuum with OpenNeato — Part X3: Opening the D3 and Wiring the ESP32

New here? This is Part X3 of the OpenNeato series. Part X1 explained why Neato D3–D7 robots lost their smart features when Vorwerk shut down the cloud. Part X2 covered flashing the ESP32 firmware and connecting to WiFi. This part covers the physical surgery: opening the D3, finding the debug port, and wiring the ESP32 in. By the end, the dashboard at http://neato.local shows live robot data.


A Note on This Part’s History

This part has a story behind it. The first attempt ended badly — the D3 was moved from the floor to the workbench with the case open, it slipped, and the main board cracked in two. Project over.

A replacement board was sourced secondhand and the project continued. The wiring guide below reflects what was actually learned across both attempts — including the correct debug port location, which turned out to be different from what earlier research suggested.


What You Need

  • Torx T10 screwdriver
  • 4x female-to-female jumper wires (much easier than soldering JST XH — lesson learned the hard way)
  • The ESP32-C3 from Part X2, already flashed and WiFi-configured
  • Patience


Opening the D3

Step 1 — Remove the dust bin. Pull the orange release tab at the back and slide the bin out.

Step 2 — Flip the robot upside down. You’ll see 4 Torx T10 screws on the bottom plate — remove all four.

Step 3 — Remove the bumper and brush roll. There are 4 more Torx T10 screws hidden underneath the brush assembly. The bumper needs to come off first to access them.

Step 4 — Separate the top shell. With all 8 screws removed, the top shell is held only by plastic clips. Start at the rear (curved) edge — press down on the lower body while lifting the top shell. Work around the perimeter. The clips release with a soft click. Go slowly — there are ribbon cables and wire harnesses connecting the top shell to the main board inside.

Step 5 — Photograph everything before going further. The inside of a D3 has a lot of wires. A photo taken before anything is disturbed is worth more than any written description.






Finding the Debug Port

Important correction from earlier research: the debug port is not the P32 test points on the right side of the main board. Those are signal test points, not the serial debug interface.

The actual debug port is a 4-pin JST-style connector on the left side of the main board — it already has a small white plastic housing, which makes it far easier to identify and work with than bare test points.



The pinout, confirmed on this D3 board, from left to right:

RX  │  3.3V  │  TX  │  GND

The board itself has these labels printed directly on the PCB next to the connector — no guesswork required.




Wiring: ESP32-C3 to Debug Port

Use 4 female-to-female jumper wires. Forget the JST XH cable — attaching individual jumper wires to the existing connector housing is far simpler than soldering, and completely reversible.

Connection table:

D3 Debug PortFunctionESP32-C3 Pin
RXSerial receiveGPIO 4
3.3VPower3.3V
TXSerial transmitGPIO 3
GNDGroundGND

One critical note: TX and RX cross over. The D3’s TX connects to the ESP32’s receive pin (GPIO 3), and the D3’s RX connects to the ESP32’s transmit pin (GPIO 4). This is standard serial wiring — but getting it backwards is the single most common mistake, and the symptom is the dashboard showing “Connecting to robot…” forever with no further progress.

If that happens: go to http://neato.local → Settings → Device, and swap the TX and RX GPIO numbers. No re-wiring needed — the pin assignment is configurable in software.








Powering Up

With the wiring complete, power on the D3. The ESP32 draws its power from the D3’s 3.3V line — no USB connection to a laptop needed. The LED on the ESP32 should light up within a few seconds of the D3 powering on.

Open a browser on any device on the same WiFi network and go to:

http://neato.local

If everything is correct, the dashboard loads with live data: robot status, battery level, and current mode.




Reassembly

Once confirmed working, reassemble in reverse order — top shell first, then brush assembly and bumper, then bottom screws. The ESP32 is small enough to tuck inside the case alongside the existing wiring, with just enough slack in the jumper wires to allow the shell to close cleanly.


Next up: Part X4 — Exploring the dashboard: manual drive, LIDAR map, and cleaning controls.