A barebones ESPHomeLib Roomba Component
Due to a botched surgery, I no longer have a Roomba 650. Leaving it for for future DIYers.
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.
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
One might find this alternative wiring guide easier to get started with. It has fewer parts required and uses a PNP transistor.
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.
Take a look at the example directory for a fully working example.