Go Down

Topic: ESP8266 Wi-Fi module doesn't seem to respond (Read 84466 times) previous topic - next topic

HipTex

Nov 30, 2014, 02:43 am Last Edit: Nov 30, 2014, 02:44 am by HipTex
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
Code: [Select]
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?

rogerClark



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

2. 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 ?

3. 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


4. 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

Freelance developer and IT consultant
www.rogerclark.net

HipTex

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.

HipTex

#3
Nov 30, 2014, 06:10 pm Last Edit: Nov 30, 2014, 06:59 pm by HipTex
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

evildave_666

#4
Dec 01, 2014, 08:21 am Last Edit: Dec 01, 2014, 12:21 pm by 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, 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=<rate>), 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.


HipTex

#5
Dec 03, 2014, 12:11 am Last Edit: Dec 03, 2014, 01:08 am by HipTex
Quote
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

evildave_666

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.

HipTex

Quote
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..  :smiley-confuse:


PasiO

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."

flagtrax

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.

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

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 !
Freelance developer and IT consultant
www.rogerclark.net

flagtrax

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 !

flagtrax

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 :)

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.


flagtrax

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 :)

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.


Go Up