ESP12E Help. How Do I Start This Damned Thing?

I’ve been working on a project for the past few months to add MQTT to my old Roomba 560 vacuums. So far, I’ve been successful in getting the code working (Hats off to @johnboiles to his work on this one. I owe you a beer.), I’ve been able to flash the firmware to a NodeMCU board, put it all together on a breadboard (with a 2N3906 PNP on the Roomba’s TX because it doesn’t seem to want to put out a consistent signal), and get it working. However, having a breadboard slapped on top of my Roomba isn’t exactly how I want to use this thing in production. So, I’ve gotten a few ESP12E modules, a really kick ass burner fixture for the ESP12, and I’ve been able to get a couple of boards flashed with the firmware. When I sit them in the burner fixture and turn them on, they join the network, subscribe to MQTT, and start looking for sensor input from the Roomba. Cool, just need to pull them off, and wire them in. Well, here’s where I’m getting stuck.

I’ve hooked the ESP12’s into the Roomba using some DC-DC converters and when I give them power, nothing happens. Now, I know there’s an EN pin that needs to be pulled high, and I’ve tried bridging that with a 10k resistor to VCC, but there’s still nothing happening. Digging through some random spec files that I’ve found, it looks like I need to pull a couple of other pins, but I’ve tried every combination to no success. If I put the ESP12 back on the burner fixture, it’ll boot up fine, connect to wifi, subscribe to my MQTT broker, and start looking for the Roomba sensors. So, It’s not like I’m frying the boards or anything, I made sure to watch the DC-DC converters I was using for a while on my oscilloscope to make sure that it’s feeding a stable 3.3v before I even soldered it in, and then reverified the voltage again a few times while I’ve been trying to get it to work.

Surely, there’s some stupid step that I’m simply overlooking. The only thing I have soldered to the ESP12 right now is the 3.3v & ground. Besides the data communication pins, what am I missing here?

Note that Ive used Wemos D1 boards and ESP-01 boards,

But based on what I can tell
GPIO 0 and 2 should be high
GPIO 15 should be low

Reset and CH_PD should be high

If all else fails, check the voltages on all the pins when its plugged into your burner fixture, and then see what they are when plugged into Roomba.

Good luck
Randy

2 Likes

@randytsuch’s response is correct from what I have in my notes. I think there’s an internal pull-up on GPIO2 so you might not need that one.

@Apocrathia thanks for the kind words and please keep us updated as your project progresses!

It was GPIO2! I kept seeing conflicting information on it. I knew between 0 and 15 one had to be high and the other low, but it just didn’t seem to do anything. I figured I would just quit being stubborn and finally ask for help. This is my first time working with the ESP8266 and it’s been a bit of a challenge. Either way, I now have a Roomba running that I launched from Home Assistant!

You guys are awesome. Thanks for your help! I need to make a schematic in Fritzing to post, just in case anyone else is having trouble figuring the ESP12 out for this purpose… It looks like the ESP12E does not have an internal pull-up on GPIO2.

1 Like