Add wifi to an older roomba

HI can you please share your library if you have all activities showing correctly and some help steps,. Thanks in advance. I managed to get the data from the in ESPhome i just dont have activity and no oi mode. I used GitHub - davidecavestro/ESPHomeRoombaComponent at d4db1a22137eb4caaa1425fb828d9a64d1a9fe6b. Also i added the buttons for the commands. If anyone want’s i can do a noob tutorial step by step :slight_smile:

2 Likes

Hey you are right, I think I simply made a huge mistake wiring both Roomba RX and TX to the logic level converter.
Official irobot doc states:

The Create 2 serial port can take a 3.3V input on its RX or DD
lines as a “high” logic level, but it will output 5V on its TX line

OTOH from my understanding the buck converter is just for power, not for signals… am I wrong?

I’not an electronic expert, but reading the docs I would say that if you are using a 3.3V board, like and esp8266 you can send a 3.3V signal to the roomba (RX line) but the roomba will answer back with a 5V signal that may fry the esp8266. You still need a buck converter, at least on TX from roomba (but converting everything to/from 3.3V/5V seems a good approach to me).

I found these 2 schemas


image

that’s what I need? use the PnP?

or I can use the logic converter only for TX and wire directly the RX?

I’m going to restart from scratch ASAP with:

  • RX and TX pins on the ESP (not SofrwareSerial)
  • the logic level converter just for reading values from Roomba (eventually switch to PNP if needed).

Maybe i’m wrong, but I still plan to use the buck converter for power and the logic level converter just for signals.

2 Likes

I just wanted to post here that I did a quick and dirty fork of davidecavestro’s repository with a focus on being able to start/stop/dock the vacuum. It’s kind of a hack but it works. There’s a working example config included, some updated circuit diagrams, and a PCB file that may or may not be useful.

I’ve been using it for a little over a week with no problems so I thought I’d post it here. This thread has been incredibly helpful in getting my roomba connected to HA

2 Likes

Hi everyone,

I changed my code to use the ESPHome UART bus instead of initializing the serial communication in the component.

This means that you are able to choose the pins yourself and ESPHome will figure out if it needs to use a hardware or software serial (depending on the chosen pins).
I had to copy some of the methods from the Roomba library, but the rest of the library is no longer needed, so it does not have to be provided or be compiled anymore.

Let me know what you think of this approach.

4 Likes

Hi @Real-Time-Kodi ,

Thank you so much I’m now able to control my old roomba!!!

This is awesome i will try this as soon as i have my esp

Do you have the pinout for the roomba side ?

The pinout for the Roomba is rather easy and is mentioned in the create2 reference document.
But you can also see it up in this topic: (click)
In my schema’s I’m using a lot of labels to decouple the different components of the hardware design, but these four pictures should add some clarity:

image image
image

I’m using a 2N3906 transistor for the Roomba to ESP communication.
I couldn’t get it to work with a simple voltage divider.

I’m also planning to upload the gerber files and a parts list into my repo, but didn’t get around to it just yet.
So feel free to ask more questions.

2 Likes

I confirm I was able to get data from the Roomba using a 2N3906 transistor and your great ESPHome UART integration.

1 Like

Hi,

this is mine (awaiting shipment), I’m using 2n3906 PNP

Well, for some reason my Roomba serial port died.
I have no clue why.
After removing my chip and re-inserting it again a few minutes later (was working on a cover for the roomba), I think it short-circuited.
During the next day, somehow the Roomba battery got drained as it was still on the base station.
The ESP chip got hot, as well as the switching voltage regulator (TSR-1-2433) that supplies the 3.3V to my ESP.

After taking the custom PCB out of the Roomba again and placing the Roomba back on the base station, it began a battery recovery with a fast orange flashing clean button.

Then I put the custom PCB back into the serial port, but I can no longer send commands or receive data.
I also tried to put my prototype on the breadboard back in, but that doesn’t work either.
So it’s not the custom PCB, but the Roomba serial port that is broken.
I think the only way to resolve this is to repair the motherboard of the Roomba, or get a used one from a donor Roomba.
If anyone has any tips or advice, I’d like to hear it.

Furthermore, I added the schema and gerber files to my repo.
Check out the schema and gerber folders.

I am a noob… but I’d try with an oscilloscope (no experience though).
Or leveraging another UART - like the raspi one - in order to check if the serial still works.

1 Like

I don’t own an oscilloscope, but I should probably get one if I want to take this hobby any further indeed.
Thanks for the tip :slight_smile:

I want to share back the (almost) final step (i need now a small box to place the pcb)

thank you to all of you for the support!!!

2 Likes

Which model Roomba is that?
I never knew there were Roomba models with the serial port over on the top left :sweat_smile:.
(Seen from the top).
My serial port is on the right of the clean button.

Anyway…
Looks good! Well done.
Which voltage regulator did you choose eventually?

I’ve merged both UART support and some black magic from good old johnboiles’ repo to avoid BRC pin issues on Roomba 650 (in order to prevent this model to fall into a deep sleep that can be interrupted only manually pressing the CLEAN button or with an ugly relay).
So far so good: after two weeks no issues.

1 Like

I don’t know how to check the model, i saw 601 on the bottom label
I used this step down MP1584EN

image