Forum

Please or S’enregistrer to create posts and topics.

Tutorial mise à jour de la passerelle Winky Version ESP8266

Ce topic est écrit afin de supporter le tutorial pour programmer ou reprogrammer le firmware du Winky

Partie 1 : Comment brancher l’ESP8266 pour sa programmation

La première manipulation consiste à sortir le Winky de son boitier, pour cela, il suffit d’ouvrir le boitier plastique

Puis de sortir la partie électronique.

Maintenant, il faut enlever la carte supportant l’ESP8266 de la partie basse qui gère la puissance et la mise en forme des signaux.

Pour information, si vous avez le modèle avec une antenne externe (comme la photo ci-dessus), vous pouvez la laisser branchée sur l’ESP8266 (Sur les photos suivantes, je l’ai enlevée afin de voir les détails)

Maintenant, il faut brancher l’ESP8266 sur l’adaptateur de la façon suivante

Puis vérifiez que le jumper du FTDI est bien sur 3.3V (normalement à gauche comme sur la photo)

Puis il faut brancher l'adaptateur et le FTDI ensemble

Il faut branchez ensuite un cable Mini USB vers USB

Partie 2 : Téléversement du firmware: Variante Windows (Pour Linux et Mac, voir les liens juste en dessous)

Version Linux: https://miniprojets.net/index.php/forum/topic/programmation-de-la-passerrelle-winky/#postid-8

Version MAC: https://miniprojets.net/index.php/forum/topic/programmation-de-la-passerrelle-winky/#postid-9

Maintenant, il faut appuyer sur le bouton de l’adaptateur puis en le maintenant enfoncé, il faut brancher le câble USB à l’ordinateur

Normalement l’ordinateur devrait le reconnaitre automatiquement en émettant un son.

Vous pouvez relâcher le bouton et passer à la partie téléversement

Pour cette partie, vous pouvez récupérer les fichiers permettant la programmation ou reprogrammation du winky à l'adresse suivante:

https://gricad-gitlab.univ-grenoble-alpes.fr/ferrarij/winky/-/tree/main/WinKy_Programmation/Flash_ESP8266?ref_type=heads

Pour cela, une fois la page affichée, il faut cliquer sur le bouton Download

puis cliquer sur Zip de la fenêtre Download this directory

Une fois le dossier téléchargé, il faut le dézipper

Ensuite il faut aller dans le dossier extrait et double cliquer sur FlashESP8266.exe

Normalement, le programme va s’ouvrir et détecter le bon port com. Si cela n'est pas le cas, choissiez le port COM qui correspond à votre adaptateur.

Maintenant, il faut cliquer sur la flèche Firmware et choisir Winky_OneForAll_VXX.bin (Normalement, il n'y a qu'une version, les autres fichiers servent à nettoyer l'ESP8266 en cas de panne)

Maintenant, il faut cliquer sur Flash.

Le programme va commencer à flasher et vous aurez quelque chose comme cela.

Si tout se passe bien, à la fin, il affichera le message suivant :

Cliquez sur OK.

Partie 3: Mise à jour des données internes ou remontage Winky

Maintenant 2 choix s'offre à vous:

Option 1: Il ne s'agit que d'une mise à jour

S'il ne s'agit que d'une mise à jour, vous pouvez maintenant débrancher l’esp8266 et remonter le winky en suivant les étapes inverses à son démontage et vous pouvez le brancher sur le linky en suivant ce tutorial

https://miniprojets.net/index.php/forum/topic/tutorial-installer-le-winky-sur-le-linky

Option 2: Il s'agit d'une première mise en route ou d'une modification des données internes

Si cette option est choisie, il faut débrancher puis rebrancher l’usb sans appuyer sur le bouton afin de mettre le Winky en mode HotSpot

Si tout est ok, un nouveau réseau wifi nommé XKY va apparaitre

Il faut maintenant aller sur le réseau wifi XKY avec le mot de passe oneforall

Une fois connecté, il faudra aller sur un navigateur web et tapez l’adresse 192.168.4.1

Je vous invite à aller sur la page du forum dédiée aux explications de comment configurer votre Winky:

https://miniprojets.net/index.php/forum/topic/tutorial-configuration-du-winky/

Une fois toutes vos modifications et informations remplies correctement,  vous pouvez maintenant débrancher l’esp8266 et remonter le winky en suivant les étapes inverses à son démontage et vous pouvez le rebrancher sur le linky

 

Partie 2 : Téléversement du firmware (Variante Linux)

Ouvrir une fenêtre « Terminal »
Créer un environnement python virtuel
# mkdir ESP32 
# cd ESP32
# python3 -m venv esp32-env
# . esp32-env/bin/activate
Installer l’outil esptool
# pip install --upgrade esptool
Tester si esptool fonctionne
# esptool.py -h
usage: esptool [-h] [--chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6,esp32h2}]
               [--port PORT] [--baud BAUD] [--before {default_reset,usb_reset,no_reset,no_reset_no_sync}]
               [--after {hard_reset,soft_reset,no_reset,no_reset_stub}] [--no-stub] [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
               [--connect-attempts CONNECT_ATTEMPTS]
               {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,get_security_info,version}
               ...
esptool.py v4.6.2 - Espressif chips ROM Bootloader Utility
positional arguments:
  {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,get_security_info,version}
                        Run esptool.py {command} -h for additional help
    load_ram            Download an image to RAM and execute
    dump_mem            Dump arbitrary memory to disk
    read_mem            Read arbitrary memory location
    write_mem           Read-modify-write to arbitrary memory location
    write_flash         Write a binary blob to flash
    run                 Run application code in flash
    image_info          Dump headers from a binary file (bootloader or application)
    make_image          Create an application image from binary files
    elf2image           Create an application image from ELF file
    read_mac            Read MAC address from OTP ROM
    chip_id             Read Chip ID from OTP ROM
    flash_id            Read SPI flash manufacturer and device ID
    read_flash_status   Read SPI flash status register
    write_flash_status  Write SPI flash status register
    read_flash          Read SPI flash content
    verify_flash        Verify a binary blob against flash
    erase_flash         Perform Chip Erase on SPI flash
    erase_region        Erase a region of the flash
    merge_bin           Merge multiple raw binary files into a single file for later flashing
    get_security_info   Get some security-related data
    version             Print esptool version
options:
  -h, --help            show this help message and exit
  --chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6,esp32h2}, -c {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6,esp32h2}
                        Target chip type
  --port PORT, -p PORT  Serial port device
  --baud BAUD, -b BAUD  Serial port baud rate used when flashing/reading
  --before {default_reset,usb_reset,no_reset,no_reset_no_sync}
                        What to do before connecting to the chip
  --after {hard_reset,soft_reset,no_reset,no_reset_stub}, -a {hard_reset,soft_reset,no_reset,no_reset_stub}
                        What to do after esptool.py is finished
  --no-stub             Disable launching the flasher stub, only talk to ROM bootloader. Some features will not be available.
  --trace, -t           Enable trace-level output of esptool.py interactions.
  --override-vddsdio [{1.8V,1.9V,OFF}]
                        Override ESP32 VDDSDIO internal voltage regulator (use with care)
  --connect-attempts CONNECT_ATTEMPTS
                        Number of attempts to connect, negative or 0 for infinite. Default: 7.
Appuyer sur le bouton de l’adaptateur puis en le maintenant enfoncé, brancher le câble USB au PC :
Identifier le port USB :
# ls -l /dev/tty*USB*
crw-rw-rw-  1 root  wheel  0x9000002 15 oct 17:20 /dev/ttyUSB0
Recupérer le droit en écriture de votre USB :
sudo chmod a+rw /dev/ttyUSB0
Identifier la taille de la mémoire flash de l'ESP8266
# esptool.py -p /dev/ttyUSB0 flash_id
esptool.py v4.6.2
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a4:cf:12:f2:68:cb
Uploading stub...
Running stub...
Stub running...
Manufacturer: a1
Device: 4014
Detected flash size: 1MB
Hard resetting via RTS pin...
Télécharger le dernier firmware Winky_OneForAll_VXX_ESP8266.ino.generic.bin

https://gricad-gitlab.univ-grenoble-alpes.fr/ferrarij/winky/-/tree/main/WinKy_Programmation/Flash_ESP8266?ref_type=heads

Flasher le firmware :
# esptool.py -p /dev/ttyUSB0 write_flash 0x00000 ~/Downloads/Winky_OneForAll_VXX_ESP8266.ino.generic.bin
Voilà maintenant vous pouvez reprendre à l'étape 3 du topic principal

Partie 2 : Téléversement du firmware: Variante MAC

Pour information, cette variante a été écrite par un participant à l'expérience avec l'OTE et je le remercie vraiment pour cette aide.

Ouvrir une fenêtre « Terminal »
Installer python3
# brew install python3
# pip install --upgrade pip
Créer un enivronnement python virtuel
# mkdir ESP32 
# cd ESP32
# python3 -m venv esp32-env
# . esp32-env/bin/activate
Installer l’outil esptool
# pip install --upgrade esptool
Tester si esptool fonctionne
# esptool.py -h
usage: esptool [-h] [--chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6,esp32h2}]
               [--port PORT] [--baud BAUD] [--before {default_reset,usb_reset,no_reset,no_reset_no_sync}]
               [--after {hard_reset,soft_reset,no_reset,no_reset_stub}] [--no-stub] [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
               [--connect-attempts CONNECT_ATTEMPTS]
               {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,get_security_info,version}
               ...
esptool.py v4.6.2 - Espressif chips ROM Bootloader Utility
positional arguments:
  {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,get_security_info,version}
                        Run esptool.py {command} -h for additional help
    load_ram            Download an image to RAM and execute
    dump_mem            Dump arbitrary memory to disk
    read_mem            Read arbitrary memory location
    write_mem           Read-modify-write to arbitrary memory location
    write_flash         Write a binary blob to flash
    run                 Run application code in flash
    image_info          Dump headers from a binary file (bootloader or application)
    make_image          Create an application image from binary files
    elf2image           Create an application image from ELF file
    read_mac            Read MAC address from OTP ROM
    chip_id             Read Chip ID from OTP ROM
    flash_id            Read SPI flash manufacturer and device ID
    read_flash_status   Read SPI flash status register
    write_flash_status  Write SPI flash status register
    read_flash          Read SPI flash content
    verify_flash        Verify a binary blob against flash
    erase_flash         Perform Chip Erase on SPI flash
    erase_region        Erase a region of the flash
    merge_bin           Merge multiple raw binary files into a single file for later flashing
    get_security_info   Get some security-related data
    version             Print esptool version
options:
  -h, --help            show this help message and exit
  --chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6,esp32h2}, -c {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6,esp32h2}
                        Target chip type
  --port PORT, -p PORT  Serial port device
  --baud BAUD, -b BAUD  Serial port baud rate used when flashing/reading
  --before {default_reset,usb_reset,no_reset,no_reset_no_sync}
                        What to do before connecting to the chip
  --after {hard_reset,soft_reset,no_reset,no_reset_stub}, -a {hard_reset,soft_reset,no_reset,no_reset_stub}
                        What to do after esptool.py is finished
  --no-stub             Disable launching the flasher stub, only talk to ROM bootloader. Some features will not be available.
  --trace, -t           Enable trace-level output of esptool.py interactions.
  --override-vddsdio [{1.8V,1.9V,OFF}]
                        Override ESP32 VDDSDIO internal voltage regulator (use with care)
  --connect-attempts CONNECT_ATTEMPTS
                        Number of attempts to connect, negative or 0 for infinite. Default: 7.
Appuyer sur le bouton de l’adaptateur puis en le maintenant enfoncé, brancher le câble USB au MacBook :
Identifier le port USB :
# ls -l /dev/tty*usb*
crw-rw-rw-  1 root  wheel  0x9000002 15 oct 17:20 /dev/tty.usbserial-A50285BI
Identifier la taille de la mémoire flash de l'ESP8266
# esptool.py -p /dev/tty.usbserial-A50285BI flash_id
esptool.py v4.6.2
Serial port /dev/tty.usbserial-A50285BI
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a4:cf:12:f2:68:cb
Uploading stub...
Running stub...
Stub running...
Manufacturer: a1
Device: 4014
Detected flash size: 1MB
Hard resetting via RTS pin...
Télécharger le dernier firmware Winky_OneForAll_VXX_ESP8266.ino.generic.bin

https://gricad-gitlab.univ-grenoble-alpes.fr/ferrarij/winky/-/tree/main/WinKy_Programmation/Flash_ESP8266?ref_type=heads

Flasher le firmware :
# esptool.py -p /dev/tty.usbserial-A50285BI  --baud 1000000 write_flash --flash_size detect -fm dio 0  ~/Downloads/Winky_OneForAll_VXX_ESP8266.ino.generic.bin
Voilà maintenant vous pouvez reprendre à l'étape 3 du topic principal
Sebastien a réagi à ce message.
Sebastien