Skip to content

Latest commit

 

History

History
44 lines (26 loc) · 2.39 KB

README.md

File metadata and controls

44 lines (26 loc) · 2.39 KB

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

  • Many PNP Transistors will work; pay attention to the pinout of the specific transistor you choose to use.
  • Many pins can be the BRC pin; update roomba.yaml with the pin you choose.
    The example matches John Boiles' chosen pin D5/GPIO14.

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.

  • <example/esphome.yaml> - Contains the bits needed for ESPHome.
  • <example/homeassistant-vacuum.yaml> - Contains the bits needed to integrate as a "MQTT Vacuum" in Home Assistant.