Understanding the Available Settings in ESP8266 Download Tool

Hi all

3 days ago I successfully updated the Firmware of an ESP8266 module that I have, thanks to a huge help from a user here in the forum, called Juraj.

The module was purchased in 2016, and has 8Mb (1MB) memory, and so the latest Firmware from Espressif that I could Flash on it, was AT v1.6.2.

I created this thread because I am curious to understand the various settings in the Flashing tool's window.

Here is a screenshot of the window and settings that I used, and worked:

|414x500

The top part is pretty clear: Binary Files, and Addresses on the Flash chip to write them to.

But the not so obvious parts are for example:

"SPI Mode": I have seen some people flash with QIO, and other with DIO. In my case I used QIO, yet I wonder: What is the difference?

Crystal Frequency: All the tutorials that I saw, left it on 26M, but you can sometimes see boards that the crystal for the ESP8266 chip is visible (not covererd by a metal shielding, like in many Ai-Thinker modules), and the crystal appears to be other frequency than 26MHz..

For example:

|500x344

This board is a combination of Uno (ATmega328) + Wifi (ESP8266)

It's a bit hard to see in the picture, but the ATmega328 has a 16MHz crystal, and the ESP8266 has a 12MHz crystal.

So even in such a board you still choose "26M" when you flash the ESP8266?

Thank you for your help

the SPI setting depends on flash memory connection on the module/board

the 12 MHz crystal is for the USB chip
the crystal for the esp8226 is I think the thing down right

Juraj: the SPI setting depends on flash memory connection on the module/board https://en.wikipedia.org/wiki/Serial_Peripheral_Interface#Dual_SPI

Oh..

When selecting the "SpiAutoSet" Checkbox, which of these 4 settings does it auto set? - Crystal Frequency - SPI Speed - SPI Mode - Flash Size

I do know it sets Flash Size, because I saw it changing mine to 8Mb, like it should. But are the first 3 also set by it? (or do I need to know myself, for example, If my module/board is QIO/DIO)

Juraj: the 12 MHz crystal is for the USB chip the crystal for the esp8226 is I think the thing down right

Oh you're right.. the 12MHz is for the CH340...

I took the Uno+Wifi and Mega2560+Wifi boards that I have, and looked using a magnifying glass, and you are correct, the crystal there is 26MHz

card5: Oh..

When selecting the "SpiAutoSet" Checkbox, which of these 4 settings does it auto set? - Crystal Frequency - SPI Speed - SPI Mode - Flash Size

I do know it sets Flash Size, because I saw it changing mine to 8Mb, like it should. But are the first 3 also set by it? (or do I need to know myself, for example, If my module/board is QIO/DIO)

SPI mode is not detected, you must set it. DOUT should always work, but is the slowest option. QIO is the fastest (more lines).

Juraj: SPI mode is not detected, you must set it.

How would I know that my module/board is DIO and not QIO?

Also, when choosing the .BIN files to Flash, the files: - boot - esp_init_data_default have several versions of them:

When I flashed my module, naturally I chose the latest version of each, but did you ever had a situation where you chose not the latest?

card5: How would I know that my module/board is DIO and not QIO?

Also, when choosing the .BIN files to Flash, the files: - boot - esp_init_data_default have several versions of them:

When I flashed my module, naturally I chose the latest version of each, but did you ever had a situation where you chose not the latest?

both things are still a mystery (for me at least)

Why do you not just program the ESP device thru the Arduino IDE.?

You can write the whole code in the IDE and then compile and program.

I think I only used the original programming method about twice, then I just started to write all my ESP code in the IDE.

Juraj: both things are still a mystery (for me at least)

;)

Hiddenvision: Why do you not just program the ESP device thru the Arduino IDE.? You can write the whole code in the IDE and then compile and program.

I think I only used the original programming method about twice, then I just started to write all my ESP code in the IDE.

Hi Hiddenvision

The Arduino IDE is good for Flashing the ESP with a program that you write. But If you don't want to write a program that runs on the ESP, meaning you don't want to use the ESP as a Microcontroller, but only as a Wi-Fi module for another controller (e.g. the ATmega328), then the Arduino IDE will not help you in Flashing new AT Command firmware.. For that you need to use the Flashing tool..