ESP8266-01 flash

Bonjour,

Voici mon problème, j'ai tenté à de nombreuses reprises à flasher mon esp8266-01 version 1MB avec (tous les firmware possible), fichier blank, firmware AT v0.9.2.2 ou encore AT 1.1.1.0, mais aussi at-v1.5.4,fin breff vous avez compris, j'ai testé avec de nombreux firmware, mon but étant d'avoir de nouveau accès aux commande AT.

Tout à commencer quand j'ai téléversé un programme dans le module wifi, en tant normal je sais que c'est normal de ne plus avoir accès aux commande AT car cela écrase le firmware de base mais même après flashage cela ne marche toujours pas.

Pour le montage, j'utilise un FTDI avec un module d'alimentation eleego v2 et du coup la carte wifi 1MB, le brochage est bon je suppose car le flashing marche c'est pas le problème en sois je pense, j'ai utilisé le logiciel esp8266 download tool de chez expressive ainsi que espFlasher, les leds clignotes, aucune erreur lors de flashage du module.

Sachant que dans le moniteur série lors de l'allumage voici ce qui s'affiche en pièce joint.

Merci de m'aider je galère depuis fort longtemps :slight_smile:

Cordialement

Moniteur série.PNG

Pour flasher il faut faire un pull-down sur GPIO0
Essayez ensuite avec la console série à 9600 ou 57600

Un pull down c'est à dire ? Si il s'agit de mettre le GPIO0 sur reset c'est se que j'ai fais.

Le Baud 9600 j'ai essayé ca ne marche pas, je vais tenter en 57600 ce soir je vous tiens au courant.

Au boot le débit de la ligne série n'est pas standard (74880). Donc les premiers messages sont difficiles à voir.
Ensuite, le débit dépend un peu du firmware que tu programmes. Il faut faire quelques essais en changeant le baudrate dans le terminal et en faisant un reset ensuite.
Attention aussi au fait que suivant la version du firmware AT que tu programmes la syntaxe des commandes peut changer légèrement.

xeoniste:
Un pull down c'est à dire ? Si il s'agit de mettre le GPIO0 sur reset c'est se que j'ai fais.

GPIO et RESET SUR GROUND (commun à la carte, au FTDI etc) pour lancer le flash

attention au 3.3V

un article en anglais ici sur le flashage du firmware

Si il s'agit de mettre le GPIO0 sur reset c'est se que j'ai fais.

Attention pour activer le bootloader (passer le'ESP8266 en mode flashage) il faut que GPIO0 soit encore à la masse quand la RAZ remonte.
C'est cet évènement (GPIO0 = 0 + front montant de RAZ) qui permet à l'ESP8266 de récupérer le code envoyé par USB pour le stocker dans la mémoire Flash SPI qui l'accompagne nécessairement.

fdufnews:
Au boot le débit de la ligne série n'est pas standard (74880). Donc les premiers messages sont difficiles à voir.
Ensuite, le débit dépend un peu du firmware que tu programmes. Il faut faire quelques essais en changeant le baudrate dans le terminal et en faisant un reset ensuite.
Attention aussi au fait que suivant la version du firmware AT que tu programmes la syntaxe des commandes peut changer légèrement.

En effet j'ai ceci en Baud 74880 :

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

load 0x40100000, len 25020, Room 16
tail 12
chksum 0xef
ho 0 taille 12 Room 4
load 0x88888888, len -2004318072, room 12
flash read err, ets_unpack_flash_code
ets_main.c
"

Les firmwares flashés sont-il bien compatibles avec les 1MB de la carte ESP01 utilisée ?
Les paramètres utilisés dans le logiciel de Flashage d'Espressif sont-ils OK ?

Oui, alors j'ai supposé que ma carte soit une 1MB car elle est de couleur noir, j'ai pus lire que la versions 512k est de couleur bleue et la 1MB de couleur noir.

Les paramètres du logiciel espressif sont bonne oui je m'en suis assuré.

on voit apparaître ceci au démarrage

flash read err

au démarrage ll'ESP8266 n'arriverait pas à lire correctement une partie du code qui a été flashé en mémoire précédement
-mémoire flash défectueuse ?
-mauvais mode pour flasher la mémoire (DIO /QIO...) ?
-mauvaise adresse d'un des morceaux si le firmware se présente en plusieurs blocs ?
-alimentation 3,3V un peu trop faible ?

La taille de la mémoire Flash peut être confirmée en lisant la référence de la mémoire Flash (puce à 8 broches, souvent de marque Winbond , référence 25Q...... (ce qui suit Q indique la taille en Mbits.)

Mon alimentation est du 12v pour 300mA, avec le ftdi je l'alimente bien en 3.3v, j'ai essayer le mode QIO et DIO, le firmware se compose en un seul fichier.bin
Donc voilà

Je ne vois pas du tout...

S’il vous alimentez l’esp depuis les 3.3v de sortie du FTDI vous n’aurez pas 300mA de dispo, à peine 50 dans doute —> il faut alimenter l’esp séparément

Je l'est alimenté séparément avec le module breadboard.

Pourquoi pas téléverser checkflashconfig.ino (menu/exemples) pour repartir de quelque chose qui marche?

[EDIT]

Au temps pour moi. J'ai zappé que vous n'utilisez pas l'IDE Arduino.

kayel:
Pourquoi pas téléverser checkflashconfig.ino (menu/exemples) pour repartir de quelque chose qui marche?

[EDIT]

Au temps pour moi. J'ai zappé que vous n'utilisez pas l'IDE Arduino.

Je vais tester ça, oui je l'utilise IDE

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.