Sur la photo de droite - le héros de l'occasion, puce PUYA P25Q80Les fournisseurs chinois ont commencé à utiliser la puce de mémoire flash PUYA. Cela a conduit à la panne des pilotes SPIFFS, qui sont généralement utilisés pour enregistrer les paramètres dans les modules ESP8266. De nombreux projets ont souffert. Il n'y a pas encore de solution.
Ce matin, j'ai commencé avec l'opération de routine de flashage du prochain lot de modules d'E / S IO-Node. Le cœur de l'appareil est le module ESP-07. Rien de grave.
Le premier module a été flashé, démarré, lancé dans l'interface web. Deux sorties relais et entrées discrètes ont commencé à fonctionner immédiatement. Cependant, en essayant de trouver des capteurs de température à 1 fil connectés, quelque chose d'étrange s'est produit. IO-Node a signalé qu'un capteur a été trouvé et suspendu.

De plus, il s'est bloqué de sorte que même après un redémarrage, la LED d'état ne clignote pas. Dire que j'ai été surpris, c'est ne rien dire. Le nouveau clignotement n'a pas aidé non plus.
Pensant que j'avais un module ESP-07 défaillant, j'ai repris le firmware de la carte suivante. Imaginez ma surprise lorsque le prochain tableau se comportait exactement de la même manière. De toute évidence, ce n'était pas une coïncidence.
En commençant à déboguer le code du micrologiciel, j'ai constaté que SPIFFS, le pilote du système de fichiers que nous utilisons pour stocker les paramètres, ne fonctionne pas.
Une recherche Google a montré qu'il s'agit d'un tout nouveau problème qui est apparu littéralement début janvier. Il y a des discussions
ici et
ici .
L'essence du problème est que les Chinois ont commencé à utiliser la nouvelle puce de mémoire flash PUYA P25Q80 (voir la première photo). Cette puce ne fonctionne pas exactement comme les puces Winbond précédentes et autres.
Ce qui se passe exactement n'est pas encore entièrement compris. Il est suggéré que lorsque vous essayez d'écrire une partie du bloc mémoire, le microcircuit passe en état d'urgence. Tout en enregistrant le bloc entier immédiatement, cela fonctionne correctement.
Soit dit en passant, si vous mettez des données dans SPIFFS pendant le micrologiciel initial du module ESP, les données de celui-ci sont lues correctement. Les erreurs se produisent uniquement lors de l'écriture dans la mémoire à partir du code du micrologiciel. Mais c'est un problème critique, car il est désormais impossible d'enregistrer les paramètres utilisateur.
Que faire
À l'heure actuelle, comme d'autres utilisateurs d'ESP8266, nous remplaçons PUYA par des puces Winbond. Il n'y a pas un tel problème avec eux. Et nous nous attendons à ce que la situation se développe - tout à coup, un correctif logiciel va apparaître. À long terme, nous libérerons notre module ou enroulerons tous ces microcircuits sur notre «carte mère» pour garder cette situation sous contrôle.
Il n'est pas commode que lorsque vous achetez des modules, on ne sait pas ce qui vous sera vendu - la puce est cachée sous un écran métallique et est visuellement inaccessible.