ESP8266 Wi-Fi module doesn't seem to respond

Just received my ESP8266 Wi-Fi modules. They are fairly new to the market so not a lot of support (or it's in Chinese) Wanted to see if they can be used in applications where more commonly Bluetooth modules are used as they have Wi-Fi direct feature.

Setup:
Module -> Arduino
TXD : RX
RXD : TX
VCC : 3.3v
GND : GND

However I can't seem to be able to get any response back from the module. I have a sketch which constantly loops Serial.println("AT+GMR"); and I can tell the Wi-Fi module is receiving it because the TX led is flashing, but I get no response back from the module (expecting firmware version back as a response).

What baffles me the most is that when I open serial monitor, I'm getting a constant feed of:

AT+GMR
AT+GMR
AT+GMR
AT+GMR
AT+GMR

I would expect to see nothing due to the TX/RX lines occupied by the Wi-Fi module.

Tried this with 2 different modules so its definitely not a faulty module. Any ideas?

  1. How are you powering the module, it takes 200mA at times.

The only way to power it is from its own regulator i.e take 5V from the Arduino and feed into a 3.3V regulator LM1117T etc and then feed power to the module

  1. The module is only supposed to be 5V tollerant on its data lines (though it seems to be), are you using a resistor divider to drop the TX signal down to 3.3V for the RX input ?

  2. The nominal speed on early firmware(s) is 115200, so unless you are using a Mega with multiple spare hardware Serial ports, or something equivalent, it won't communicate

Personally I recommend getting a USB to serial adaptor from a reliable / quality source, not some cheap rubbish

  1. On most modules, you need to pull one pin to 3.3V in order for it to power-up, check that you have pulled that pin to 3.3V or it wont work.

Seehttp://www.espruino.com/ESP8266

If all that fails, there is a chance its broken, but it seems unlikely

  1. Powering it from the 3.3v of the arduino uno. I'll try powering it from a separate power supply.

  2. Yes, I've tried this but I'll try it again now that I'm powering from a separate source.

  3. I'm not using a mega, however I should be able to just use it with the normal TX/RX of the uno. The idea is that when Serial.avaialble > 0 (i.e. the module responded) an LED will flash.

  4. It powers up from just vcc and gnd (red led comes on), do you mean I need to pull one of the pins in order for it to function properly? Either way I've tried pulling all the remaining pins (4 in the middle) to high but have seen no difference in behaviour.

OK so after a lot of messing around I've finally managed to configure it. The first problem I had is described above and the solution to that was (as rogerClark mentioned) that I wasn't providing enough power/current to the module. After switching to an external power supply I managed to talk to the module but any of the commands I sent had no effect. I started suspecting that the baudrate used to talk to this module was not the one mentioned in all the guides and support pages that are out there on the web. So I did the following:

  • Remove MCU from arduino uno
  • Wire ESP8266 RXD to arduino RX
  • Wire ESP8266 TXD to arduino TX
  • Wire ESP8266 VCC to arduino 3.3v
  • Wire ESP8266 GND to arduino GND
  • Connect ESP8266 CH_PD to ESP8266 VCC (not sure if this has any effect, might actually try testing without)
  • Connect the arduino to an external 5V power supply
  • Connect the arduino via USB to the computer
  • Open arduino IDE and bring up serial monitor

From here on I tried sending "AT" multiple times, using a different baudrate each time. The only baudrates which gave me back an "OK" were 9600, 14400 & 28800, the rest was gibberish.

So there you have it, a lot of guides out there telling you to use baudrate 115200 or 57600, turns out mine only works with 9600, 14400 & 28800 thus I can only conclude that there is no definitive baudrate for this module and you just have to use trial and error to find out which works for yours.

UPDATE:
From the looks of things, you can't password protect this module. i.e. anyone can connect to it in AP mode.
Turns out you can configure the password, it's just the AT command sheet is poorly put together hence I had to do some tinkering to figure out how it works:

AT+CWSAP="modulenamehere","longpasswordhere",channel#,protectiontype
Password must be 8 bytes minimum otherwise ERROR comes up. For protection type:
0,1 is no protection (even if u define a password it wont be effective)
2 is WPA
3 is WPA2
4 is WPA/WPA2

Data lines are not 5V tolerant. It won't burn out the chip (at least not right away) but you'll get unexpected resets, etc. until you put in a voltage divider or level shifter on the RX line (I used a TI PCA9306).

Other tidbits:

  • There's a lot of example code out there that waits for "ready" after a reset. On the firmware that ships on most modules these days it returns "Ready".
  • Recent firmware defaults to 9600bps (but is changable by AT+CIOBAUD=), however all bootloader diagnostics prior to the firmware actually starting operate at 115200bps. I actually changed my operating speed back to 115200 so that mojibake due to line speed mismatch doesn't garble the "Ready" response.

Data lines are not 5V tolerant. It won't burn out the chip (at least not right away) but you'll get unexpected resets, etc. until you put in a voltage divider or level shifter on the RX line (I used a TI PCA9306).

Thanks for the advise. I only need to drop the voltage from the pin that sends the signal from the arduino, right?

UPDATE:

Just tested this by adding a voltage divider to arduino TX line. With the VD the blue LED which indicates traffic stays permanently on and I get no response from the module when I send AT commands. I'm using firmware 0018000902-AI03


Vin == Arduino TX
Vout == ESP RX
R1 == 1K
R2 == 2K

HipTex:
Thanks for the advise. I only need to drop the voltage from the pin that sends the signal from the arduino, right?

UPDATE:

Just tested this by adding a voltage divider to arduino TX line. With the VD the blue LED which indicates traffic stays permanently on and I get no response from the module when I send AT commands. I'm using firmware 0018000902-AI03


Vin == Arduino TX
Vout == ESP RX
R1 == 1K
R2 == 2K

Yes, the level shifting is only needed on the arduino-TX -> ESP-RX line, the ESP-TX 3.3v is recognized properly as a logical high on a 5V arduino.
Are you tieing CH_PD and GPIO0 high and putting a pullup resistor on RST? Otherwise the module won't boot.

Are you tieing CH_PD and GPIO0 high and putting a pullup resistor on RST? Otherwise the module won't boot.

Only CH_PD, but the module boots just fine.. :confused:

Hi had to Ground GPIO15

evildave_666:
Data lines are not 5V tolerant. It won't burn out the chip (at least not right away) but you'll get unexpected resets

Hey, do you have a source on that? I was able to communicate directly with UNO's RX/TX pins when trying things out, but obviously wouldn't want to burn my ESP.

I found this in the data sheet, but not sure if I understand it correctly. I've been under the impression, that some chips (not necessarily ESP), while working at 3.3V VDD are still tolerant to 5V logic.

"All digital IO pins are protected from over-voltage with a snap-back circuit connected between
the pad and ground. The snap back voltage is typically about 6V, and the holding voltage is 5.8V.
This provides protection from over-voltages and ESD."

Hello all,
I have received the external antenna, 5 pin version of this Module and am having similar difficulties I have properly powered up the module, and my cell phone can "see" it on a list of networks. There are no led's on this particular module. I have it externally powered, and I'm using an arduino uno r3 as a usb to serial converter by using a method described on the rancidbacon website. This method simply has one remove the 328p chip from the uno and use the serial port to connect to the 8266 module, and use the IDE serial monitor to communicate. I have tried with the reset lead pulled low and high with out any change. When trying to send AT commands via the serial ports through an arduino IDE monitor, I am unable to see any response come back. What I do see is the command I sent being returned. IE: AT returns AT not "OK".I have tried all baud rates available.Has anyone successfully used this module yet? I could sure use information on how to configure and use this module. I have searched the internet and most of the information refers to other similar modules using the 8266 chip. I have gone to the electro dragon site as well without help. Any help you can provide would be greatly appreciated.

Re: ESP-05

Are you using a voltage divider from TX on the Arduino, otherwise you are giving the ESP-05 too much voltage on its RX pin

Although it may work for a while you stand a chance of damaging the module if you don't use a voltage divider

When you say you powered up the module, what did you power it with, the 3.3V from the Arduino doesn't deliver enough current to guarantee correct operation of the device as it takes between 50 and 200mA when working, which is more than the Arduino can supply.

As you can't easily access any of the GPIO lines in order to upload new firmware etc into the module, you are really stuck with whatever unknown firmware came with the module.

If its the Old AT command set version, it works at 115200 but the new one I think defaults to 9600 (but can be changed with an AT command)

Personally, I would not buy this module because the lack of connections makes it very limited and problematic to use.

ESP-03 seems quite popular and if you want to do anything apart from connecting to the Arduino, you need a ESP-12 or similar, as even to use low power mode requires access to more of the GPIO pins.

and the ability to reflash the firmware is virtually essential at the moment as it changes all the time.

If you have a very steady hand, you could solder extra wires directly to the device (I had to do this on an ESP-01 and and ESP-03) but its very hard to do !

rogerClark:
Re: ESP-05

Are you using a voltage divider from TX on the Arduino, otherwise you are giving the ESP-05 too much voltage on its RX pin
YES
Although it may work for a while you stand a chance of damaging the module if you don't use a voltage divider

When you say you powered up the module, what did you power it with, the 3.3V from the Arduino doesn't deliver enough current to guarantee correct operation of the device as it takes between 50 and 200mA when working, which is more than the Arduino can supply.
NO if you read my post you'd see i stated it was exteranlly powered. and YES with 3.3v

As you can't easily access any of the GPIO lines in order to upload new firmware etc into the module, you are really stuck with whatever unknown firmware came with the module.
THERE ARE NO GPIO LINES ON THIS MODEL SEE THE ATTATCHED JPG

If its the Old AT command set version, it works at 115200 but the new one I think defaults to 9600 (but can be changed with an AT command)

Personally, I would not buy this module because the lack of connections makes it very limited and problematic to use. I BOUGHT THIS MODEL FOR 2 REASONS 1 THE EXTERNAL ANTENNA, 2 PRICE.

ESP-03 seems quite popular and if you want to do anything apart from connecting to the Arduino, you need a ESP-12 or similar, as even to use low power mode requires access to more of the GPIO pins.

and the ability to reflash the firmware is virtually essential at the moment as it changes all the time.

If you have a very steady hand, you could solder extra wires directly to the device (I had to do this on an ESP-01 and and ESP-03) but its very hard to do !

Thankyou Roger for the response please see my reply's below.

Are you using a voltage divider from TX on the Arduino, otherwise you are giving the ESP-05 too much voltage on its RX pin

YES
Although it may work for a while you stand a chance of damaging the module if you don't use a voltage divider

N/A

When you say you powered up the module, what did you power it with, the 3.3V from the Arduino doesn't deliver enough current to guarantee correct operation of the device as it takes between 50 and 200mA when working, which is more than the Arduino can supply.

NO if you read my post you'd see i stated it was exteranlly powered. and YES with 3.3v

As you can't easily access any of the GPIO lines in order to upload new firmware etc into the module, you are really stuck with whatever unknown firmware came with the module.

THERE IS A PROCEDURE FROM THE MANUFACTURER FOR FLASHING.

If its the Old AT command set version, it works at 115200 but the new one I think defaults to 9600 (but can be changed with an AT command)

Personally, I would not buy this module because the lack of connections makes it very limited and problematic to use.

I BOUGHT THIS MODEL FOR 2 REASONS 1 THE EXTERNAL ANTENNA, 2 PRICE.

ESP-03 seems quite popular and if you want to do anything apart from connecting to the Arduino, you need a ESP-12 or similar, as even to use low power mode requires access to more of the GPIO pins.

THIS UNIT WILL CONNECT TO ANY SERIAL DEVICE.

and the ability to reflash the firmware is virtually essential at the moment as it changes all the time.

THERE IS A PROCEDURE FROM THE MANUFACTURER FOR FLASHING.

If you have a very steady hand, you could solder extra wires directly to the device (I had to do this on an ESP-01 and and ESP-03) but its very hard to do !

THIS MODEL IS ABOUT THE SIZE OF A THUMB NAIL THE TRACES BARELY WIDE ENOUGH TO SEE WITHOUT MAGNIFICATION. I'VE HAND WIRED QUITE A FEW BOARDS IN MY LIFE BACK IN THE PRE-PC DAYS WHEN WE ALL BUILT OUR OWN BOARDS. I WOULDN'T ATTEMPT MODIFYING THIS RASCAL. KUDOS TO YOU FOR BEING THAT STABLE :slight_smile:

Bottom line I fould the issue; there was a jumper missing on the breadboard tying the uno ground to the external 3.3v supply ground. Since the uno was being powered via the usb cable there was a difference in ground potential and of course noise.

Thankyou Roger for the response please see my reply's below.

Are you using a voltage divider from TX on the Arduino, otherwise you are giving the ESP-05 too much voltage on its RX pin

YES
Although it may work for a while you stand a chance of damaging the module if you don't use a voltage divider

N/A

When you say you powered up the module, what did you power it with, the 3.3V from the Arduino doesn't deliver enough current to guarantee correct operation of the device as it takes between 50 and 200mA when working, which is more than the Arduino can supply.

NO if you read my post you'd see i stated it was exteranlly powered. and YES with 3.3v

As you can't easily access any of the GPIO lines in order to upload new firmware etc into the module, you are really stuck with whatever unknown firmware came with the module.

THERE IS A PROCEDURE FROM THE MANUFACTURER FOR FLASHING.

If its the Old AT command set version, it works at 115200 but the new one I think defaults to 9600 (but can be changed with an AT command)

Personally, I would not buy this module because the lack of connections makes it very limited and problematic to use.

I BOUGHT THIS MODEL FOR 2 REASONS 1 THE EXTERNAL ANTENNA, 2 PRICE.

ESP-03 seems quite popular and if you want to do anything apart from connecting to the Arduino, you need a ESP-12 or similar, as even to use low power mode requires access to more of the GPIO pins.

THIS UNIT WILL CONNECT TO ANY SERIAL DEVICE.

and the ability to reflash the firmware is virtually essential at the moment as it changes all the time.

THERE IS A PROCEDURE FROM THE MANUFACTURER FOR FLASHING.

If you have a very steady hand, you could solder extra wires directly to the device (I had to do this on an ESP-01 and and ESP-03) but its very hard to do !

THIS MODEL IS ABOUT THE SIZE OF A THUMB NAIL THE TRACES BARELY WIDE ENOUGH TO SEE WITHOUT MAGNIFICATION. I'VE HAND WIRED QUITE A FEW BOARDS IN MY LIFE BACK IN THE PRE-PC DAYS WHEN WE ALL BUILT OUR OWN BOARDS. I WOULDN'T ATTEMPT MODIFYING THIS RASCAL. KUDOS TO YOU FOR BEING THAT STABLE :slight_smile:

Bottom line I fould the issue; there was a jumper missing on the breadboard tying the uno ground to the external 3.3v supply ground. Since the uno was being powered via the usb cable there was a difference in ground potential and of course noise. Thanks again.

Well it worked for a couple hours anyway. I walked away and left it powered up to come back to. it ran for a few hours. I was watching my cell phone and could see it as a network entity, then when I came back to do some more work it was not responsive, I checked the cell phone and it had disappeared there to. It seems to be stone cold dead. I had level a shifter on it's receive lead, but left the transmit alone agreeing with most that the uno has no issues with 3.3v level high. I never looked at the uno serial recieve pin 0 when not being used and assumed it floated. When this module appeared to fail I checked the voltage on that pin at 5v. Hmmm not exactly a float voltage. At any rate the ESP-05 seems to have bitten the dust. I think I'll try Roger's suggestion and try the ESP-03 or similar.........Thoughts?

I have not tried it, but I really like the look of this one

http://www.ebay.com.au/itm/1x-ESP8266-Serial-Port-WIFI-Wireless-Transceiver-Module-Send-Receive-IO-Lead-Out-/291327699005?pt=AU_B_I_Electrical_Test_Equipment&hash=item43d47be83d

I also have something like this http://www.ebay.com.au/itm/5-pcs-Lot-ESP8266-Serial-Wireless-WIFI-Module-Transceiver-ESP-07-/171565963075?pt=AU_B_I_Electrical_Test_Equipment&hash=item27f220d743

which are smaller and have an external antenna option

Really what matters is which pins you need access to, and what size you need.

PS. Not sure why yours has packed up.

If you are definitely only supplying 3.3v and using level conversion, I'm surprised its packed up.
Note. I forget which pin it is, but the lower power standby mode seems to be a hack where it uses one of the pins to reset its self, so if you want to use low power / sleep mode etc, make sure you check which GPIO pin is connected to reset in this mode, otherwise you won't be able to use that feature.

Re: Packed up after a few hour, I've not seen any postings elsewhere that show them as unreliable.
I've not run mine for more than a few hours, so I can't really comment on reliability for personal experience

Hey Roger,
As an update I can tell you that I disconnected it and let it sit for a while. I have a new breadboard module and thought that might be a problem so I connected directly to the header pins using some jumpers with female connectors. First just the 3.3 and GRD. Nothing got hot, no smoke :stuck_out_tongue: . I opened the wifi settings on the cell phone and it showed up again. Definitely began to think there was a fluke in the breadboard rail somewhere. But when I hooked up the TX/RX leads and tried to get to the AT commands again, it died (slowly) again. Not sure what's going on but it would seem something's overheating, even though it feels stone cold. It's running right now; at least that portion the phone sees . I can connect to it with the cell phone, but I can't get through the serial port side of it. I've checked, double checked, triple checked the wiring to make sure the data lines were hooked up at least according to the pin-out provided by the vendor. Now I can't really say if it's DOA or another issue is hiding in the mix. I'm leaving it cook at the moment and at least in the last 20 minutes it hasn't dropped off the cell phone list. I think my next step will be to buffer both data lines (TX/RX) and see what that does.

@flagtrax

I'd recommend buying a cheap USB to Serial adapter and use that instead of the Arduino for initial testing.

Both of the USB to Serial adapters I have, seem to deliberately have TX voltage of 3.3V for High, hence there is no need for level shifting.

So if you get one that says it outputs 3.3V as well as 5V, I think its most likely that the TX voltage will be 3.3V
(The USB to Serial adapters , don't output enough current for the ESP8266, I have some 1117 regulators which I solder onto the ESP8266's so I can supply them with 5V

"I'd recommend buying a cheap USB to Serial adapter and use that instead of the Arduino for initial testing."

Hi Roger,
Yeah I agree with that. I was looking at a few already. It would also be less wear and tear on the uno.
Update: As I mentioned in the wee hours, the module came back up after sitting unpowered for a while. I "cooked" it for about 2 hours without issues (without tx/rx leads connected). But unlike before when I hooked the leads up (verified the same as before) it stayed up. I have nothing left but confusion on that. I' simmer it some more today and see..........As far as updating, and changing baud rates via at commands, I may have been led astray. I have not been able to send any command relating to baud yet and I am hesitant to try flashing at this point. That being said, the current firmware is 0018000902-AI03. It seems there are many sites out there with different versions of firmware, so I'm not sure of compatibility or the rev level of this one. I am currently trying to find from the seller who the manufacturer is. I have been getting a lot of information from Electrodragon, who appears to be a maker of various modules.