Expressif ?

Bonjour à toutes et à tous.

J'ai quelques éclaircissement à demander sur ce qu'on trouve sous le nom "Expressif 8266".

Comme d'habitude j'ai fait des recherches préalables et le syndrome :
"Plus ke j'en sais, moins ke j'comprend" a encore frappé.
Comme quoi ce n'est pas toujours bon de chercher à comprendre, en certaines situations c'était même commencer à désobéir :grin: .

Si je ne me suis pas mis le doigt dans l'œil jusqu'au coude :

  1. La base est un micro-contrôleur de référence Xtensia L106 32 bits 80Mhz (mais pas un ARM comme on peut le lire à tord) de la société Tensilica (racheté par Cadence).
  • Ce microcontrôleur n'est pas terminé : c'est une base à laquelle le client doit ajouter ses fonctions.
  • Ce microcontrôleur pour fonctionner demande de la flash dans un boîtier externe.

Expressif a ainsi ajouté l'UART,le SPI, le Wifi etc.
Au passage vous comprenez l’intérêt de Cadence pour ce CI --> il vend ses simulateurs.
C'est ce produit qui est commercialisé sous le nom ESP8266.

  1. Vendu en module avec la flash externe le produit change de nom et s'appelle ESP XX.
    Le nom "ESP XX" ne semble pas appartenir à Expressif mais à AI-Thinker.
    XX varie entre la version de circuit imprimé, la quantité de flash, le nombre de GPIO accessibles, etc

  2. Pour améliorer les performances l'ensemble ESP8266+Flash a été intégré dans un boîtier blindé.
    Pour rendre accessibles tous les GPIO disponibles le module blindé utilise des sorties circuit imprimé au pas de 2 mm (ouf on vire enfin ces absurdes 2,54mm).
    Je n'ai pas réussi à connaître qui a lancé le premier boîtier blindé.

  • Les produit Expressif sont commercialisés sous le nom "esp-wroom".
  • En "grande distribution" on trouve très majoritairement les produits de la société AI-Thinker (qui semble être proche de SeedStudio).
    Le dernier en date est le ESP12-f qui d'après le fabricant apporte une amélioration dans la conception de l'antenne par rapport au ESP12-e.

Nota --> il existe aussi une famille ESP30.

Fin de l'historique.

Mes interrogations sont les suivantes :

  1. Peut-on couper le Wifi par programmation (à la pince coupante je sais faire) si on n'en a pas besoin et que seul le micro 32 bits 80 MHz (160 MHz possible) intéresse ?
    Je désamorce de suite : il y a une autre vie possible que d'arroser toute la maison avec des ondes quand elles ne sont pas utiles.

  2. J'ai téléchargé avec le gestionnaire de carte le complément pour programmer un ESP XX avec l'IDE Arduino, je trouve un choix avec 19 possibilités !

Question :
Il y a un modèle qui semble intéressant : équivalent fonctionnel d'une nano avec un CH340 incorporé.
On le trouve sur Ebay sous le nom de NodeMcu.
Question 1: différences entre NodeMcu 0.9 et NodeMcu 1.0 ? (ou ESP 12 et ESP 12e )
Question 2 : est-ce directement programmable avec l'IDE arduino ou faut-il commencer par flasher quelque chose.
NodeMcu c'est du matériel, du logiciel, ou les deux ?

Merci de vos réponses.

Bonjour 68tjs, Bienvenue au club

Pas grand chose à ajouter/modifier à ton 'historique' !!!

Espressif : famille ESP32 (double coeur tensilica LX6 240MHz ), sujet 'chaud'....
Les deux principaux développeurs des outils ESP8266 pour IDE Arduino ont été embauchés par Espressif, ils bossent sur l'ESP32, d'où un ralentissement du développement ESP82666/IDE Arduino depuis l'été dernier.
L'Esp8266 a été précédé par une puce voisine (ESP8089) , esclave SPI, utlisée en puce WiFi sur diverses tablettes : Espressif semble avoir un certaine expérience en puces WiFi efficaces.
Une puce unique (ESP8285) intègre l'ESP8266 et une mémoire flash.

Oui le WiFi est désactivable par soft .(en particulier sous IDE Arduino)
par exemple :

WiFi.mode(WIFI_OFF);

NodeMCU désigne à la fois (confusion fréquente):
-un soft (firmware intérpréteur de code quasi 'LUA')

  • un Hardware astucieux (flashage sans manipulation des niveaux logiques sur 2 GPIO )+ des pulls-up ou pull-down là où il faut + une régulation 3V3 correcte.

Arduino : pas de préliminaires !!!
Un hardware NodemCU ou équivalent + IDE Arduino et compléments + un cable USB......ça roule.....
La commande 'téléverser le croquis' va dialoguer avec le bootloader implanté dans la petite ROM de l'ESP8266, effacer la mémoire Flash , implanter le code en mémoire Flash et passer la main à ce code.
C'est donc en quelque sorte ".....du passé faisons table rase....":slight_smile:

Dans la série des modules AI-Thinker ESP-12 il y a des variantes de qualité d'antenne imprimée, + probablement de routage de pistes sous le blindage, + de brochage : présence ou non des connections "SP8266-SPI FLash"

NodeMCU 0.9 , 1.0 ou plus : en plus des variantes de module ESP-12 implanté il ya des variantes du point de vue de l'écartement entre les deux rangées de pins. Ecartement large : moins pratique sur une breadboard.

perso : "Wemos D1 mini" puis, "Wemos D1 mini pro" (reprend l'astuce (2 transistors couplés) du schéma NodeMCU pour le flashage + "meilleur" régulateur série lowdrop désactivable).
Les cartes Adafruit, Olimex, Sparkfun sont aussi intéressantes avec tout ce qu'il faut comme composants passifs et comme régulateur.

En revenant aux sources comme tu le fais tu éviteras les nombreux malentendus, quipropos.... entre la puce ESP8266 elle même et les modules divers et variés dont ceux produits par AI-Thinker. idem pour le double sens de 'NodeMCU'

Bonjour,

Pour info, sur certaines cartes a priori évoluées (je pense notamment à certaines de chez Olimex ou Sparkfun), le flashage ne se fait pas nécessairement en un clic de souris. Il faut parfois faire un reset manuel.

Alors qu'avec le hardware NodeMCU, ça marche direct.

Merci de ta réponse.

NodeMCU désigne à la fois (confusion fréquente):
-un soft (firmware intérpréteur de code quasi 'LUA')

  • un Hardware astucieux

Tu confirmes ce que que je subodorais.

La commande 'téléverser le croquis' va dialoguer avec le bootloader implanté dans la petite ROM de l'ESP8266, effacer la mémoire Flash , implanter le code en mémoire Flash et passer la main à ce code.
C'est donc en quelque sorte ".....du passé faisons table rase....":)

Je ne suis pas certain d'avoir bien compris la dernière phrase :
Il y a du code en ROM donc inamovible. En "Sortie usine" il y a aussi des "choses" en flash qui sont virées par l'IDE arduino qui joue le coucou et qui s'installe à la place. Est-ce bien cela ?
Et bien évidement s'il venait l'idée de revenir en arrière il faudrait re-flacher.

En revenant aux sources comme tu le fais tu éviteras les nombreux malentendus

C'est dans les gènes : avec un nouveau composant je commence toujours par lire sa datasheet. Et seulement après je cherche s'il existe une bibliothèque, que j'utilise ou pas.

Il y a du code en ROM donc inamovible. En "Sortie usine" il y a aussi des "choses" en flash qui sont virées par l'IDE arduino qui joue le coucou et qui s'installe à la place. Est-ce bien cela ?
Et bien évidement s'il venait l'idée de revenir en arrière il faudrait re-flacher.

Exactement cela ....un petit code inamovible en ROM et la quasi totalité de la mémoire flash effacée et écrasée par l'lDE Arduino qui envoie le code proprement dit de l'application combiné au SDK Espressif. (Blink 'pèse' 222 ko)
Tranquilité : le bootloader en ROM n'est pas effaçable !! .......à moins que quelqu'un démontre qu'il est en fait dans une petite mémoire intrerne flash ou autre mal protégée !!

De mémoire (donc à prendre avec des pincettes !!) une petite zone en fin de mémoire flash est préservée lors des flashages, elle contient les données du dernier point d'accès valide... tu peux donc te retrouver avec un code sans indication de SSID ni mot de passe WiFI et une appli qui, continuant à utiliser par défaut les données antérieures se connecte à ce point d'accès validé auparavant s'il est présent.
Par contre la partie de mémoire flash servant à émuler une EEPROM est , c'est parfois dommage, effacée.

C'est dans les gènes : avec un nouveau composant je commence toujours par lire sa datasheet. Et seulement après je cherche s'il existe une bibliothèque, que j'utilise ou pas.

De bon gènes !!! Pas du tout le profil du pré-ado appelant Maman au secours quand il n'a pas réeussi à cloner du premier coup une vidéo Youtube (souvent douteuse car mise en ligne avec la seule motivation 'Prem !!)

al1fch:
De mémoire (donc à prendre avec des pincettes !!) une petite zone en fin de mémoire flash est préservée lors des flashages, elle contient les données du dernier point d'accès valide... tu peux donc te retrouver avec un code sans indication de SSID ni mot de passe WiFI et une appli qui, continuant à utiliser par défaut les données antérieures se connecte à ce point d'accès validé auparavant s'il est présent.

Je ne sais pas si la cause est la même, mais il y a encore un mois ou deux, alors que le problème a été relévé depuis au moins un an (voir deux) : si on utilise le mode AP dans un code, puis on upload un nouveau code en mode STA, et bien le mode AP reste actif. Et ça cause des problèmes divers (stabilité de la connexion entre autres).

Savez où peut-on trouver la liste des fonctions qui gèrent le produit ?

J'ai chercher les déclarations de fonctions ou de classes dans les fichiers h de l'IDE et je n'ai pas trouvé (je suis peut-être passé à coté) .
Merci.

en ligne içi :

http://esp8266.github.io/Arduino/versions/2.3.0/

https://github.com/esp8266/Arduino/blob/master/doc/libraries.md

Sur mon Ubuntu le gros des fichiers .h est içi :
.arduino15/packages/esp8266/hardware/esp8266/2.3.0/cores/esp8266
.arduino15/packages/esp8266/hardware/esp8266/libraries

Merci.

Je pense que ton ubuntu n'est différent de ma Debian.