ESP8266 troubleshooting

Got one of these little boards for christmas, and can't get any response from it. Board is this one:

I'm powering it using a separate 3.3V supply in a breadboard:

RX and TX pins connect to the arduino (tried RX-->RX and RX-->TX). GND and GPIO_0 connect to breadboard ground, VCC and CH_PD connect to breadboard 3.3V. As soon as I supply power to the ESP8266, the red led stays on and the blue led flashes for a moment. After that, there is no response from the board.

I've tried connecting it to both an UNO and a NANO. Both boards have the Bare_Minimum sketch loaded, and in the serial monitor I have set Both NL & CR, and tried baud rates from 300 to 230400. Sending "AT" via serial does not return any response, and there is no flash from the blue LED on the ESP8266.

Any ideas? I'm tearing my hair out.

Post a diagram showing exactly how everything is connected. A photo of a pencil drawing is probably best.

Post the program you are trying.

What is the ESP8266 talking to?

Have you looked at the ESP8266 Forum?

...R

My drawing skills are sub par. As I wrote: RX and TX pins connect to the arduino RX and TX pins. GND and GPIO_0 connect to breadboard ground, VCC and CH_PD connect to breadboard 3.3V. The only wires between the arduino and the ESP8266 are the RX and TX wires.

For the program, I loaded bare_minimum into the arduinos:

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

then I opened the Serial Monitor, set the baud rate and comm type, and typed "AT". That's it - it's the simplest test I found after extensive googling, and still no response from the serial monitor and no flash from the blue LED on the board.

GPIO_0 connect to breadboard ground

That could be your problem. Connect it to 3.3V, perferably via 10K.

Grounding GPIO_0, at startup/reset, puts the esp-01 into flash mode. It is expecting a program upload, rather than running it's current program, which is what responds to the AT commands.

Grrrmachine:
The only wires between the arduino and the ESP8266 are the RX and TX wires.

There's another problem: you have to connect the grounds together (Arduino GND to ESP GND).
Also, you need a 2kΩ resistor between RX and ground, if you don't want to risk blowing up the ESP by applying 5V to a 3.3V pin.

Pieter

Thanks for the help, but no luck so far. I've wired GPIO_0 to 3.3v via a 10k resistor, and joined the arduino's gnd to the breadboard (and therefore ESP) ground.

What I can see is odd behaviour across the LEDs. When everything's powered up, the Uno's RX led glows faintly, and it switches off if I disconnect the TX wire. If I update the baud rate in the Serial monitor, the ESP8266's power LED changes brightness momentarily.

So something's clearly happening between the two devices. I'm just not getting anything from my AT commands.

Grrrmachine:
My drawing skills are sub par.

Don't worry - none of us will care.

But a drawing is essential because it is much too easy to misunderstand a verbal description of wiring connections. Also without a drawing it is impossible to see if something is missing.

...R

RX and TX pins connect to the arduino RX and TX pins.

Have you tried reversing these, RX to TX in each case?

Don

For using the Arduino Uno as a USB to Serial converter, RX to RX, and TX to TX are the right connections.

In the case where the Arduino Uno is the one sending AT commands, you have to swap them.

Still no joy. I've ditched the arduinos and tried communicating with the ESP8266 using an FTDI board, wired up like this:

but still no response from AT commands sent via the IDE. However, I notice that if I unpower the CH_PD pin (by pulling the wire out of the breadboard) then reconnect it with the Serial Monitor open, I see a load of garbage text at all baud rates except 74880, which shows this:

 ets Jan  8 2013,rst cause:1, boot mode:(3,6)

load 0x40100000, len 1856, room 16 
tail 0
chksum 0x61
load 0x3ffe8000, len 776, room 8 
tail 0
chksum 0x00
load 0x3ffe8310, len 552, room 8 
tail 0
chksum 0x7b
csum 0x7b
csum err
ets_main.c

but still no response from AT commands. So I guess the ESP8266 is actually working, and the problem exists between keyboard and chair...

I would try reflashing the AT firmware.

PieterP:
I would try reflashing the AT firmware.

I agree. It's just possible you have overwritten the AT software by accident, while connecting GPIO0 to ground and uploading sketches to the Uno. Google for the instructions on how to do that.

PieterP:
I would try reflashing the AT firmware.

Might be simpler to buy a new ESP8266 - considering their low price. :slight_smile:

...R

You can get simplified ESP8266 flashing devices for about $2.00 plus shipping, USD on ebay.

OR...

This flashing circuit was built from directions from a post by Pert.
Of all I tried, it was not only the easiest and simplest...it also works.

Just had a thought. I don't mean to insult you, but I must ask...

Do you understand how the holes on a breadboard are connected underneith? How have you inserted the esp-01 into the breadboard? There's no way to do it correctly without some form of adaptor. You can buy them, or you can make your own, as I did.

Robin2:
Might be simpler to buy a new ESP8266 - considering their low price. :slight_smile:

...R

Looks like that's the way to go. My reflashing attempts have failed too (esp8266 flasher.exe "failed to connect"), and at this point I've wasted two of my free holiday days on something I could replace for a few pounds, if the shops were open/postman was delivering. Seems this is just a duff one.

Might be a good occasion to try programming it with the Arduino IDE:
A Beginner's Guide to the ESP8266

I suggest building the circuit from chapter 2, then installing the Arduino Core (chapter 3, takes less than 2 minutes) and finally uploading the Blink example (manual reset and manual programming, see chapter 6).

If that doesn't work (after a few attempts), I'd just toss it.

Pieter

Grrrmachine:
I've wasted two of my free holiday days on something I could replace for a few pounds,

That's the trade-off. Time vs money

...R