ESP 13 wifi shield with DOIT firmware issue

Hi, I am new to Arduino and started to play with OSOYOO robotic car kit. It comes with an Arduino clone and an ESP 13 wifi shield with DOIT firmware in it. I am pretty sure, its the DOIT one, as it is written on the shield and I get a response on 192.168.4.1 providing the config page.
The shield is placed on Arduino as expected. USB cable connected to Arduino. No extra power, just the
USB.
And come the issues:

  1. If I plug the USB cable to my PC, only the red LED on the shield lights up.
    I have to push the "RST" button on the shield to get the blue LED light up too.

  2. I use the guide at Quick Start | ESP8266-Based Serial WiFi Shield for Arduino----User Manual, or the OSOYOO guide at ESP8266 UART WIFI Shield use guide « osoyoo.com, which are almost the same. Even if the blue LED lights up, I connect to the "DoitWiFi_Config" wifi network and click submit. Exactly as described in steps 1 to 3. However, I do not get any further, as the blue LED doesn light up any more and the wifi with SSID "DoitWiFi_Config" cannot be found any more.

  3. Moreover, if I change anything on the config page, say the SSID to "MyShield" instead of "DoitWiFi_Config", this does't get saved!!

Well, my question to you, if I may dare to ask, would be:
a) Does any of you similar experience and any solution for this? Or am I doing anything wrong?
b) Is there a way to flash the firmware in the ESP8266 to the AT one, that would work with this shield?
I have looked through many post in several forums, but did not find anything, that would work.

Thanks for help.
Milan

milanbx:
a) Does any of you similar experience and any solution for this? Or am I doing anything wrong?

It sounds like maybe the ESP8266 is not being supplied with enough current. During network communication it requires a lot of current and if it doesn't get it then it might result in strange symptoms like you are seeing. On the other hand, I don't trust that DOIT firmware so it is worth trying the AT firmware, which I think you'll end up preferring in the end anyway.

milanbx:
b) Is there a way to flash the firmware in the ESP8266 to the AT one, that would work with this shield?
I have looked through many post in several forums, but did not find anything, that would work.

I wrote detailed instructions specifically for flashing AT firmware to the DOIT shield:
https://forum.arduino.cc/index.php?topic=466167.msg3208886#msg3208886

Hi, thanks for such a quick response. I will try to use external power source (2 Lion batteries) first.
However, as I agree with you regarding the firmware, I will try to get thru your firmware update instructions and hopefully I will succeed. I will get back here as son as I am finished with it, or if I get in trouble.
Thanks again.

I should mention those instructions were written some time ago. The specific download links are now to outdated versions (though I also provided general links at the introduction of the instructions). You should use the latest version (currently 2.2.0) of the NONOS SDK from here:
https://www.espressif.com/en/support/download/sdks-demos

And the latest version (currently 3.6.4) of the Flash Download Tool from here:
https://www.espressif.com/en/support/download/other-tools

The rest of the instructions should still be applicable to the new versions.

OK, I will, thnx. Btw, the extra power source did not change anything :slight_smile:

Hmm, your procedure says: "In the Download Path Config section:..." The new flash tool doesn't have this and provides tabs. A "SPIDownload" tab could be the right one, OK?

Moreover, the new NONOS SDK has 2 versions of "esp_init_data_default.bin": v05 and v08. Which one to use?

And what about boud? 115200? And should I set the same speed in Windows Device Manager for this port (COM12 in my case)?

And the Flash Size - 4MBit?

milanbx:
"In the Download Path Config section:..." The new flash tool doesn't have this

Ah, I see they've made some changes to the tool. That's this section:

milanbx:
A "SPIDownload" tab could be the right one, OK?

Yes, I believe so.

milanbx:
Moreover, the new NONOS SDK has 2 versions of "esp_init_data_default.bin": v05 and v08. Which one to use?

In the reply following those instructions I whined about a similar thing. Espressif makes some effort but in the end their documentation is still lacking some important details (such as no mention of what the various tabs on the Flash Download Tool are for). I haven't looked into this specific ambiguity but my instinct is that you should just use the newest version, so esp_init_data_default_v08.bin.

milanbx:
And what about boud? 115200?

It doesn't matter. Higher baudrate will make the flashing process faster but at the extremes might fail. It really doesn't take very long anyway. That would be more important to someone who was flashing a lot of chips.

milanbx:
And should I set the same speed in Windows Device Manager for this port (COM12 in my case)?

No. Don't mess with that.

milanbx:
And the Flash Size - 4MBit?

That will be set automatically because you checked the SpiAutoSet box. You don't need to worry about anything in the SpiFlashConfig section of the tool other than checking SpiAutoSet.

:frowning: Something went wrong, same as denisio's reponse #31 in topic Arduino Leonardo and duinotech Wifi Shield - Installation & Troubleshooting - Arduino Forum.
Please, see attached screenshots.

Sorry to hear. I'll try to dig out my DOIT shield and try it out with the new AT firmware and Flash tool later on to see what my results are. In the meantime maybe someone else here can give some advice.

Pretty sure that the flash size on the ESP-13 is not 4Mbit. You need to change that in the Flash Downloader tool.

Even the lowly ESP-01 is 8Mbit.

I dug out my DOIT shield to use as a reference for your photo and I spotted the problem. Counterintuitively, when you're using an Arduino board as a USB-TTL serial adapter the correct connections to make are:

Arduino Shield
TX (pin 1) TX0
RX (pin 0) RX0

Now you're probably thinking "that can't be right, we always connect RX-TX, TX-RX". You need to remember that the markings on the silkscreen on your Arduino board are referring to the pins on the primary microcontroller (ATmega328P on your board). When using the board as a USB-TTL serial adapter you're not communicating between the ATmega328P and the ESP8266. You're communicating between the USB-TTL serial adapter chip (ATmega16U2 on your board) and the ESP8266. Since the USB-TTL serial adapter chip is connected to the ATmega328P chip RX-TX, TX-RX, the pin 1 marked as "TX" on the silkscreen is actually the RX pin of the USB-TTL serial adapter and vice versa with pin 0.

The other thing you should do before attempting the AT firmware flashing process again is to disconnect the ESP8266 from your Arduino board and then upload the File > New sketch to the board to make sure there is no code running on the ATmega328P that will cause it to attempt serial communication and thus interfere with communication between the USB-TTL serial adapter chip and the ESP8266.

I followed the instructions I wrote with the latest AT firmware and Flash Download Tools and it worked fine for me on the first try.

ieee488:
Pretty sure that the flash size on the ESP-13 is not 4Mbit. You need to change that in the Flash Downloader tool.

When you check the "SpiAutoSet" checkbox in the Flash Download Tool it will automatically detect all the correct settings in the "SpiFlashConfig" section of the tool and set them before starting the flashing process. The only time you would need to manually configure those settings is if your ESP8266 module uses a flash chip that is not in the tool's database. It's a really nice feature since most sellers don't provide more than the most vague details about the ESP8266 modules/boards and you can't see which flash chip is used when it's under the metal shield. They use these module identifiers but it's rare to find any specs on them and you really have no guarantee they would be accurate anyway beyond the fact there is an ESP8266 on there. I despise the use of the "M" unit when describing flash size. How freaking hard could it be to just write megabyte or megabit so there's no possibility of confusion (I don't trust an eBay seller to get Mb vs MB right and they'd probably write it as "mb" anyway)?

ieee488:
Even the lowly ESP-01 is 8Mbit.

Those are traditionally 4 Mbit:
https://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#summary_table
I have heard that some ESP-01 have 8 Mbit flash. I seem to remember the blue boards are 4 Mbit and the black boards are 8 Mbit. Even though the ESP-01 has the flash chip exposed it seems hard to find a datasheet for those chips and really you can't count on the Chinese sellers to send you exactly what you saw in the listing photo.

Hi guys, thank you for all hints, I will proceed with them further later today.

Hi again! Well, I have uploaded a new (empty) sketch to Arduino and switched the RX/TX pairs (Arduino TX to shield TX0 and RX to RX0) as advised, but the result is still the same :frowning: I have also double-checked the wiring.
Any new ideas, what could be wrong?
Thnx

YES!!! It seams, that I have succeeded finally!! Dont ask me why, but I have done following:
After clicking the START button on the DOWNLOAD TOOL, the console started to print "....._____....." as usually. And during this I HAVE PUSHED THE RESET BUTTON ON THE SHIELD and the flashing process began! See attached screenshot when done.
I will complete the rest of your instructions to find out, if I have really succeeded completely.
Thanks again!

Well, I am not there yet completely, I think. After removing the D0-to-GND wire and powering up again, and running Adruino IDE with serial monitor following happened:

  1. The serial monitor show that the shield sends permanently some data.
  2. At speed of 115200 baud, the serial monitor shows something like this:
    n⸮n⸮⸮ll⸮⸮c ⸮⸮ o⸮b⸮⸮⸮b sc⸮⸮⸮b bll⸮⸮n ⸮o⸮⸮⸮nl⸮|b...
  3. If I change the speed to 74880 baud, it show following, again and again:

ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22
2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 4Mbit(256KB+256KB)
jump to run user1 @ 1000
rf_cal[0] !=0x05,is 0xFF
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 2592, room 16
...

  1. If a send the AT+GMR command, nothing changes.

Can anyone please tell me, if the ESP works fine, as expected, or not?

milanbx:
And during this I HAVE PUSHED THE RESET BUTTON OD THE SHIELD and the flashing process began!

The reset thing is definitely a part of many ESP8266 flashing instructions. I never found it necessary, I think because I connect D0 to GND before powering the shield.

At speed of 115200 baud, the serial monitor shows something like this:
n⸮n⸮⸮ll⸮⸮c ⸮⸮ o⸮b⸮⸮⸮b sc⸮⸮⸮b bll⸮⸮n ⸮o⸮⸮⸮nl⸮|b...

Try flashing it again, but this time change the filename boot_v1.6.bin to boot_v1.7.bin.

Well, I did have the D0 to GND too and still need to puch the RST.
And I have also tried the boot_v1.7.bin, but with the same result.

Start working back through previous AT firmware versions to see if you find one that works for you. You can find NONOS SDK 2.1.0 and 2.0.0 here:

OK, thanks, will try.