ID unique pour chaque board (ESP8266)

Bonjour à tous,

Je dois upload un sketch sur plusieurs ESP8266.

J'essaye de trouver une solution pour donner un ID unique (type code hexa sur 5 bits) à chaque ESP8266 et idéalement au moment de l'upload du sketch.

Mon idée serait d'uploader l'ID dans l'EEPROM via Esptool et ensuite de le récupérer dans le programme via la librairie EEPROM.h

Problème: Est-ce possible d'uploader cet ID dans l'EEPROM via Esptool ? Si oui comment ?
J'insiste sur Esptool car il faudrait ensuite que je créé un script d'upload, donc solution IDE pas viable.

Merci.

Bonjour

Pourquoi donner un identifiant unique à un composant qui en possède déjà un ?

Pour information les ESP8266 disposent d'office d'un identifiant unique sur 32 bits.
Pour le lire à partir du code utiliser la fonction ESP.getChipId() :

ESP.getChipId() returns the ESP8266 chip ID as a 32-bit integer.

Source : Libraries — ESP8266 Arduino Core 2.7.2-7-g5d3af165 documentation

Esptool permet d'écrire en des endroits précis de la mémoire Flash.
En principe il est donc capable d'écrire dans la zone de mémoireFlash émulant une EEPROM .....à condition de pouvoir localiser cette zone (pas de véritable EEPROM dans un ESP8266 mais une EEPROM émulée en Flash)

Effectivement, j'avais lu l'identifiant unique, et le fait que l'EEPROM est émulée sur un ESP8266.

Néanmoins la partie upload d'un code généré indépendamment reste interessante.
La zone EEPROM semble etre situé apres le SPIFFS , mais comment la localiser exactement puisqu'elle semble etre dynamique ?

aucune idée simple er directe, je ne vois pas pour l’ESP8266 l’équivalent de la table de partition des ESP32 fixant debut et taille des plages d’adresses

dynamique ? pas évident pour un paramètre ‘Flashsize’ sélectionné dans le menu de l’IDE !!

Cette page donne une adresse à tester , décrite comme valable pour les cartes dotées d’un Flash de 4MB (exemples D1 Mini) EEPROM ou SPIFFS (module ESP8266) ? - Les Carnets de Byfeel

Une piste ? dans le fichier boards.txt les adresses de début et de fin de SPIFFS apparaissent pour chaque configuration sélectionnable dans le menu de l’IDE

une des options proposées pour la carte D1 MIni :

d1_mini.menu.eesz.4M1M.build.spiffs_start=0x300000
d1_mini.menu.eesz.4M1M.build.spiffs_end=0x3FA000
d1_mini.menu.eesz.4M1M.build.spiffs_blocksize=8192

Merci pour le lien et les infos al1fch.

Je regarde ça et je posterai la solution que j'ai prise.

Pour poursuivre le sujet, la solution vers laquelle je me dirige est celle du SPIFFS.

J'écrirai un programme qui mettra à jour un fichier type "UUID.txt" dans le repertoire /data du programme avant chaque upload et le programme ira chercher le contenu du fichier.

C'est ce qui me semble à ce stade la solution la plus simple à mettre en oeuvre.

Juste une remarque. L'arrêt du développement de SPIFFS amène l'équipe qui s'occupe de l'extension ESP8266 a orienter les utilisateurd vers un autre systeme de fichiers en Flash : LittleFS , il est déjà disponible avec des exemples.

novaecaine:
(…) type code hexa sur 5 bits (…)

:slight_smile: