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.
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.
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é.
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à
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
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.
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.
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 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.