ESP8266-01 flash

J'ai téléversement l'exemple checkflashconfig.ino, voici ce que ça à donné :

"esptool.py v2.6
2.6
esptool.py v2.6
Serial port COM4
Connecting....
Chip is ESP8266EX
Features: WiFi
MAC: 84:f3:eb:5b:0f:7d
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Flash params set to 0x0020
Compressed 267680 bytes to 195056...

Writing at 0x00000000... (8 %)
Writing at 0x00004000... (16 %)
Writing at 0x00008000... (25 %)
Writing at 0x0000c000... (33 %)
Writing at 0x00010000... (41 %)
Writing at 0x00014000... (50 %)
Writing at 0x00018000... (58 %)
Writing at 0x0001c000... (66 %)
Writing at 0x00020000... (75 %)
Writing at 0x00024000... (83 %)
Writing at 0x00028000... (91 %)
Writing at 0x0002c000... (100 %)
Wrote 267680 bytes (195056 compressed) at 0x00000000 in 17.3 seconds (effective 123.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin..."

Ce n'est pas "CheckFlashConfig.ino", mais c'est mieux, c'est esptool.py.

Vous ne pouvez pas balancer tout à l'adresse 0x00000000. Sous Linux il y a un "readme.md" pour dire quoi téléverser et où. Sous Windows je ne sais pas.

Dans la commande ci-dessous, je mets boot_v1.5.bin à l'adresse 0x00000, user1.1024.new.2.bin à l'adresse 0x01000, etc.

Vous aurez sûrement des fichiers plus récents.

kl@PBStretch:~/Electronics/ESP-DOC/ESP/esptool-master$ sudo esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 115200 write_flash 0x00000 boot_v1.5.bin 0x01000 user1.1024.new.2.bin 0xfc000 esp_init_data_default.bin 0x7e000 blank.bin 0xfe000 blank.bin
esptool.py v2.3.2-dev
Connecting....
Chip is ESP8266EX
Features: WiFi
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Flash params set to 0x0020
Compressed 3232 bytes to 2336...
Wrote 3232 bytes (2336 compressed) at 0x00000000 in 0.2 seconds (effective 115.3 kbit/s)...
Hash of data verified.
Compressed 408388 bytes to 293527...
Wrote 408388 bytes (293527 compressed) at 0x00001000 in 29.5 seconds (effective 110.7 kbit/s)...
Hash of data verified.
Compressed 128 bytes to 77...
Wrote 128 bytes (77 compressed) at 0x000fc000 in 0.0 seconds (effective 66.1 kbit/s)...
Hash of data verified.
Compressed 4096 bytes to 26...
Wrote 4096 bytes (26 compressed) at 0x0007e000 in 0.0 seconds (effective 2027.7 kbit/s)...
Hash of data verified.
Compressed 4096 bytes to 26...
Wrote 4096 bytes (26 compressed) at 0x000fe000 in 0.0 seconds (effective 2047.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
kl@PBStretch:~/Electronics/ESP-DOC/ESP/esptool-master$

Voici un exemple de fichier "readme.md":

# BOOT MODE
## download
### Flash size 8Mbit: 512KB+512KB
    boot_v1.2+.bin              0x00000
    user1.1024.new.2.bin        0x01000
    esp_init_data_default.bin   0xfc000 (optional)
    blank.bin                   0x7e000 & 0xfe000

### Flash size 16Mbit: 512KB+512KB
    boot_v1.2+.bin              0x00000
    user1.1024.new.2.bin        0x01000
    esp_init_data_default.bin   0x1fc000 (optional)
    blank.bin                   0x7e000 & 0x1fe000

### Flash size 16Mbit-C1: 1024KB+1024KB
    boot_v1.2+.bin              0x00000
    user1.2048.new.5.bin        0x01000
    esp_init_data_default.bin   0x1fc000 (optional)
    blank.bin                   0xfe000 & 0x1fe000

### Flash size 32Mbit: 512KB+512KB
    boot_v1.2+.bin              0x00000
    user1.1024.new.2.bin        0x01000
    esp_init_data_default.bin   0x3fc000 (optional)
    blank.bin                   0x7e000 & 0x3fe000

### Flash size 32Mbit-C1: 1024KB+1024KB
    boot_v1.2+.bin              0x00000
    user1.2048.new.5.bin        0x01000
    esp_init_data_default.bin   0x3fc000 (optional)
    blank.bin                   0xfe000 & 0x3fe000

# NON-BOOT MODE
## download
    eagle.flash.bin              0x00000
    eagle.irom0text.bin          0x10000
    blank.bin
        Flash size 8Mbit:        0x7e000 & 0xfe000
        Flash size 16Mbit:       0x7e000 & 0x1fe000
        Flash size 16Mbit-C1:    0xfe000 & 0x1fe000
        Flash size 32Mbit:       0x7e000 & 0x3fe000
        Flash size 32Mbit-C1:    0xfe000 & 0x3fe000
    esp_init_data_default.bin (optional)    
        Flash size 8Mbit:        0xfc000
        Flash size 16Mbit:       0x1fc000
        Flash size 16Mbit-C1:    0x1fc000
        Flash size 32Mbit:       0x3fc000
        Flash size 32Mbit-C1:    0x3fc000
 
## compile
    modify eagle.app.v6.ld, as
    irom0_0_seg :                         org = 0x40210000, len = 0x6C000
    

> NOTICE: UPDATE is not supported in non-boot mode; 4Mbit Flash is not supported in non-boot mode;

# Update steps
1.Make sure TE(terminal equipment) is in sta or sta+ap mode

    AT+CWMODE=3
    OK

2.Make sure TE got ip address

    AT+CWJAP="ssid","12345678"
    OK
    
    AT+CIFSR
    192.168.1.134

3.Let's update

    AT+CIUPDATE
    +CIPUPDATE:1    found server
    +CIPUPDATE:2    connect server
    +CIPUPDATE:3    got edition
    +CIPUPDATE:4    start start
    
    OK

> NOTICE: If there are mistakes in the updating, then break update and print ERROR.

J'ai l'impression que c'est toujours compliqué pour moi...
Donc il faut que je fasse une autre méthode avec esptool, python ect.. ?

C'est quoi votre OS, Windows?

Si vous êtes sous Windows, je suppose que vous avez trouvé un logiciel graphique pour flasher.
Un truc sensé rendre le flashage plus façile, et qui utilise esptool.py.

Et ça marche.

Seulement, vous ne lui dites pas quoi flasher, ni où.
Vous écrivez de l'adresse 0x00000000 à 0x0002c000 et des poussières, mais vous écrivez quoi?

Le fichier readme.md me dit que pour un ESP avec 1M de flash il faut que je mette quatre fichiers à des adresses indiquées, avec blank.bin deux fois.

Je fais où on me dit de faire.

Je ne connais que la ligne de commande sous Linux ou l'IDE Arduino pour flasher les ESP.

Si vous utilisez quelque chose comme ci-dessous il suffit de remplir les cases avec les noms de fichiers que vous avez, avec les bonnes adresses, et vous récupererez vos commandes AT.

Votre circuit pour téléverser a l'air de marcher. De 0x0000 à 0x0002c000 vous devez avoir la version SDK de "checkflashconfig" et si vous ouvrez le terminal et appuyez sur reset vous devez voir des informations à l'écran.

Vous trouverez les noms de fichiers pour récupérer les commandes AT quelque part dans la doc. Ils seront similaires à ceux que j'ai dans ma ligne de commande et ceux dans l'image.

Alors oui je suis bien sous windows, ce que je comprends pas c'est où chercher les fichier.bin, euh le seul fichier que j'ai c'est le firmware que j'ai téléchargé apars. La documentation c'est celle du logiciel qui explique le fonctionnement du logiciel ?

Vous avez probablement des fichiers plus récents sur votre ordi, et même windaube doit avoir un utilitaire pour les trouver.

Avec les fichiers trouvés sur la page indiquée, ça donne la sortie suivante et les commandes AT marchent.

kl@PBStretch:~/esptool-master$ esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 115200 write_flash 0x00000 boot_v1.1.bin 0x01000 user1.bin 0xfc000 esp_init_data_default.bin 0x7e000 blank.bin 0xfe000 blank.bin
esptool.py v2.3.2-dev
Connecting....
Chip is ESP8266EX
Features: WiFi
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Flash params set to 0x0020
Compressed 1712 bytes to 1295...
Wrote 1712 bytes (1295 compressed) at 0x00000000 in 0.1 seconds (effective 107.0 kbit/s)...
Hash of data verified.
Compressed 220984 bytes to 139261...
Wrote 220984 bytes (139261 compressed) at 0x00001000 in 16.6 seconds (effective 106.4 kbit/s)...
Hash of data verified.
Compressed 128 bytes to 72...
Wrote 128 bytes (72 compressed) at 0x000fc000 in 0.0 seconds (effective 64.8 kbit/s)...
Hash of data verified.
Compressed 4096 bytes to 26...
Wrote 4096 bytes (26 compressed) at 0x0007e000 in 0.0 seconds (effective 2065.2 kbit/s)...
Hash of data verified.
Compressed 4096 bytes to 26...
Wrote 4096 bytes (26 compressed) at 0x000fe000 in 0.0 seconds (effective 2049.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
kl@PBStretch:~/esptool-master$

J'ai mis les même adresse que sur la doc. Voici se que ça me donne:

"
ets Jan 8 2013,rst cause:2, boot mode:(3,7)

ets_main.c "

C'est dèja mieux j'ai l'impression mais ça n'arrange pas le problème.

Plus de "flash read error", c'est effectivement mieux!

La sortie terminal comme dans poste #15, ça donne quoi?

Et une copie (lisible) de la fenêtre avec les cases remplies, comme dans poste #19.

Une fois flashé il faut ouvrir le terminal et choisir "Les deux, LF,CR" et mettre le clavier en majuscules. Après, réset et change baudrate jusqu'à ce que vous voyez le mot "ready".

Tapez AT et envoyer et vous devez voir la réponse OK.

Le terminal:

"main.py:96: wxPyDeprecationWarning: Using deprecated class PySimpleApp.
('self.chip: ', 'ESP8266')
RF option applied...

test offset : 0 0x0
case ok
test offset : 4096 0x1000
case ok
test offset : 507904 0x7c000
case ok
test offset : 516096 0x7e000
case ok

CONNECT BAUD: 115200

.Uploading stub...
Running stub...
Stub running...

crc_efuse_4bit: 0
crc_calc_4bit: 0
48bit mac"

La fenêtre de flash en pièce joint.

Sur la page du lien que je vous ai donné il y a un readme.txt.

Oui je l'est lus j'ais fais exactement se que se qu'il y'a écrit.

xeoniste:
Oui je l'est lus j'ais fais exactement se que se qu'il y'a écrit.

blank_1MB.bin?

Autant envoyer un selfie de son cul.

J'abandonne.

Mais non, je l'est juste remplacer un moment, je voulais essayer d'autre fichier, sinon je lest bien fais avec les fichiers de la doc avant.

Si je met le fichier blank.bin de la doc ça le donne:

" ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 612, room 16
tail 4
chksum 0xef
load 0x88888888, len -2004318072, room 4
flash read err, ets_unpack_flash_code
ets_main.c
"
Si je met le blank1mb.bin de la capture ca me donne le :

"
ets Jan 8 2013,rst cause:2, boot mode:(3,7)

ets_main.c "

Voila pourquoi j'ai changé.

kayel:
Autant envoyer un selfie de son cul.

On dit un selfion quand on est poli :slight_smile:

Ok,je,sors...

@xeoniste:

  1. Vu d'ici, votre circuit de flashage a l'air bon.
  2. Votre module ESP aussi.
  3. Votre utilitaire pour flasher aussi.
  4. L'alimentation, peut-être aussi.

Si vous avez des doutes sur 1,2,3 ou 4, il faut les éliminer.

Après, il suffit de flashez les bons fichiers aux bonnes adresses.

C'est tout.

J-M-L:
On dit un selfion quand on est poli :slight_smile:

:slight_smile: :slight_smile: :slight_smile:

J-M-L:
Ok,je,sors...

Attendez moi...

J'ai quelques problèmes de compréhension des différents cas indiqués dans le fichier "readme.md".

Que signifient les cas suivants ?

  • Flash size 8Mbit: 512KB+512KB
  • Flash size 16Mbit: 512KB+512KB
  • Flash size 16Mbit-C1: 1024KB+1024KB
  • Flash size 32Mbit: 512KB+512KB
  • Flash size 32Mbit-C1: 1024KB+1024KB

Ok pour la taille de la mémoire (8, 16 ou 32Mbit).
Je suppose que 512KB+512KB c'est les deux espaces de travail permettant la màj dans un pendant que l'autre tourne et de booter ensuite sur l'espace màj, ou quelque chose comme ça.
Alors je ne comprends pas pourquoi flasher une 16Mbit en 512+512, il y a donc de la place non utilisée, non ?
Pareil pour 32Mbit et 512+512 ou 1024+1024.

Je pense que j'ai besoin de vos lumières.

Merci d'avance.

kayel:
Voici un exemple de fichier "readme.md":

# BOOT MODE

download

Flash size 8Mbit: 512KB+512KB

boot_v1.2+.bin              0x00000
   user1.1024.new.2.bin        0x01000
   esp_init_data_default.bin   0xfc000 (optional)
   blank.bin                   0x7e000 & 0xfe000

Flash size 16Mbit: 512KB+512KB

boot_v1.2+.bin              0x00000
   user1.1024.new.2.bin        0x01000
   esp_init_data_default.bin   0x1fc000 (optional)
   blank.bin                   0x7e000 & 0x1fe000

Flash size 16Mbit-C1: 1024KB+1024KB

boot_v1.2+.bin              0x00000
   user1.2048.new.5.bin        0x01000
   esp_init_data_default.bin   0x1fc000 (optional)
   blank.bin                   0xfe000 & 0x1fe000

Flash size 32Mbit: 512KB+512KB

boot_v1.2+.bin              0x00000
   user1.1024.new.2.bin        0x01000
   esp_init_data_default.bin   0x3fc000 (optional)
   blank.bin                   0x7e000 & 0x3fe000

Flash size 32Mbit-C1: 1024KB+1024KB

boot_v1.2+.bin              0x00000
   user1.2048.new.5.bin        0x01000
   esp_init_data_default.bin   0x3fc000 (optional)
   blank.bin                   0xfe000 & 0x3fe000

NON-BOOT MODE

download

eagle.flash.bin              0x00000
   eagle.irom0text.bin          0x10000
   blank.bin
       Flash size 8Mbit:        0x7e000 & 0xfe000
       Flash size 16Mbit:       0x7e000 & 0x1fe000
       Flash size 16Mbit-C1:    0xfe000 & 0x1fe000
       Flash size 32Mbit:       0x7e000 & 0x3fe000
       Flash size 32Mbit-C1:    0xfe000 & 0x3fe000
   esp_init_data_default.bin (optional)    
       Flash size 8Mbit:        0xfc000
       Flash size 16Mbit:       0x1fc000
       Flash size 16Mbit-C1:    0x1fc000
       Flash size 32Mbit:       0x3fc000
       Flash size 32Mbit-C1:    0x3fc000

compile

modify eagle.app.v6.ld, as
   irom0_0_seg :                         org = 0x40210000, len = 0x6C000

NOTICE: UPDATE is not supported in non-boot mode; 4Mbit Flash is not supported in non-boot mode;

Update steps

1.Make sure TE(terminal equipment) is in sta or sta+ap mode

AT+CWMODE=3
   OK

2.Make sure TE got ip address

AT+CWJAP="ssid","12345678"
   OK
   
   AT+CIFSR
   192.168.1.134

3.Let's update

AT+CIUPDATE
   +CIPUPDATE:1    found server
   +CIPUPDATE:2    connect server
   +CIPUPDATE:3    got edition
   +CIPUPDATE:4    start start
   
   OK

NOTICE: If there are mistakes in the updating, then break update and print ERROR.

Bonsoir

Il semble que les firmwares AT ne peuvent pas gérer les mémoires Flash SPI de grande capacité que l'on trouve sur certains modules ou cartes à base d'ESP8266.

Ces firmwares sont plus moins restés 'calés' sur les 'premiers pas' de l'ESP8266

Quand on abandonne les firmwares AT au profit d'un développement de code ESP8266 sous Arduino ou IDF d'Espressif on peut alors bien mieux exploiter ces capacités mémoire importantes en utilisant l'espace excédentaire pour loger un système de fichiers.

Merci beaucoup.
:wink: