Home

Awesome

Unsupported

Due to a botched surgery, I no longer have a Roomba 650. Leaving it for for future DIYers.

Roomba Component for ESPHome

A barebones bit of glue between ESPHome and Mike McCauley's Roomba library that enables control of a Roomba 650 via MQTT.

Last tested with ESPHome 1.13.x and Mike McCauley's Roomba Library 1.3.

The inspiration is John Boiles' esp-roomba-mqtt project, but I want all my IoT devices driven by ESPHome.

Hardware

Wiring Guide

John Boiles' wiring guide was the basis for my setup.

The main difference is that John Boiles' repo uses a voltage divider on the Roomba's TX pin, while I used a PNP transistor. I used a transistor because the voltage divider was not working for me, and I found a Roomba Create document with the following information:

In some cases, the drive strength of a Roomba TX line is not enough to drive the RX line of another board (for example, in some revisions of Arduino). In this case, a simple PNP transistor (2N2907A, 2N3906, or 2N4403, among others) can be used to provide enough “drive” for the Arduino.

Source: Roomba Create® 2 to 5V Logic

Alternative Wiring Guide

One might find this alternative wiring guide easier to get started with. It has fewer parts required and uses a PNP transistor.

Special Notes

Placement

The Wemos D1 mini is small enough to fit into the compartment by one of the wheels.
Source: Add wifi to an older roomba community project thread on the Home Assistant forum.

Software Setup/Use

Take a look at the example directory for a fully working example.