forked from davidecavestro/ESPHomeRoombaComponent
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
8 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,25 @@ | ||
# 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](https://github.com/johnboiles/esp-roomba-mqtt), but I want all my IoT devices driven by ESPHome. | ||
The inspiration is [Mannkind ESPHomeRoombaComponent](https://github.com/mannkind/ESPHomeRoombaComponent), that became deprecated due to dependency updates. | ||
In addition I did not want the Roomba device to communicate over MQTT, it instead registers a service call for commands, and expose sensors through `roomba.yaml`. | ||
|
||
## 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](http://www.irobot.com/~/media/MainSite/PDFs/About/STEM/Create/Create_2_to_5V_Logic.pdf) | ||
## Alternative Wiring Guide | ||
One might find this [alternative wiring guide](https://i.stack.imgur.com/aaifY.jpg) easier to get started with. It has fewer parts required and uses a PNP transistor. | ||
Both the wiring diagrams for brc and IR modes will be supplied in this repo shortly. | ||
|
||
## 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](example/roomba.yaml#L13) with the pin you choose. | ||
The example matches John Boiles' chosen pin D5/GPIO14. | ||
*Depending on your Roomba model, you might be unlucky as me and have a bug that does not allow the device to wake from brc pin when it goes into passive mode during trickle charging. To circumvent this I copied my code from a previous general controller I had stationed in the kitchen for 433mhz and IR controlling that sends the start code with and IR led to the roomba, it need a clear sight of the roomba IR sensor over a short distance. | ||
|
||
## Placement | ||
|
||
The Wemos D1 mini is small enough to [fit into the compartment by one of the wheels](https://community-home-assistant-assets.s3.dualstack.us-west-2.amazonaws.com/optimized/2X/a/a258c7253f8bd3fe76ad9e7aa1202b60bd113d74_2_496x600.jpg). | ||
_Source:_ [Add wifi to an older roomba](https://community.home-assistant.io/t/add-wifi-to-an-older-roomba/23282) community project thread on the Home Assistant forum. | ||
The Wemos D1 mini is small enough to [fit into the compartment by one of the wheels](https://community-home-assistant-assets.s3.dualstack.us-west-2.amazonaws.com/optimized/2X/a/a258c7253f8bd3fe76ad9e7aa1202b60bd113d74_2_496x600.jpg). | ||
But using a esp-01 or esp-12 series and some single braid wire I have managed to fit it all under the top lid without bulging or deformeties, the only visual defect is my led that is pointing at the IR reciever. | ||
|
||
|
||
## Software Setup/Use | ||
|
||
Take a look at the example directory for a fully working example. | ||
Copy the contents of the `ESPRoombaHomeComponent.h` and `example/roomba.yaml` into your esphome config folder, change accordingly. | ||
|
||
* <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. | ||
Flash onto new device and connect circuit. |