[{"uuid":"2c846e36-ba44-4370-b6dd-d7c9c477008a","slug":"programmer-esp32-avec-arduino-ide","title":"Programmer un ESP32 avec Arduino IDE","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2022-01-27 15:29:48","created_at":"2022-01-27 15:29:48","updated_at":"2022-01-27 15:29:48","tags":[],"plain":"Nous utiliserons la carte de développement (DevKit) NodeMCU ESP C3 avec un circuit intégré ESP-C3-32S soudé.\nCette carte peut être programmée avec Arduino IDE. Il va donc falloir mettre à jour l'IDE Arduino pour pouvoir l'adapter à ce nouveau module. L'IDE Arduino est très flexible. Comme pour la partie matériel, l'idée est de mettre à disposition de l'utilisateur un produit puissant, flexible et très simple à utiliser. Il va donc falloir passer par une étape de configuration qui va nous permettre de programmer sur notre module ESP comme sur un Arduino. Dans un premier temps, on va indiquer au programme que l'on a besoin d'installer une nouvelle carte (board) et préciser où l'on va pouvoir récupérer ces informations. Dans l'IDE, aller dans Fichiers=>Préférences. Une fenêtre intitulé Préférences. Dans le champs intitulé URL de gestionnaire de cartes supplémentaires , coller l'URL suivante :\n https:raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/packageesp32devindex.json Puis cliquer sur le bouton On va installer la carte correspondant au NodeMCU. Aller dans Outils => Type de carte => Gestionnaire de carte Le fenêtre de Gestionnaire de carte s'ouvre. Saisir dans le champ de recherche le nom . Cliquer à l'intérieur du cadre esp32. Un bouton Installer apparaît à côté de la version disponible. Cliquer dessus pour installer... L'installation des fichiers commence. L'IDE va aller récupérer le compilateur, des sources de librairies et tout ce qu'il faut pour pouvoir utiliser l'ESP8266 comme un Arduino. L'indicateur apparait. L'IDE est maintenant capable de compiler un logiciel pour l'ESP8266 et le téléverser sur votre carte. Maintenant, on indique à l'IDE d'utiliser les éléments pour la carte ESP32 Arduino . Aller dans Outils => Type de carte. Sélectionner dans la longue liste, ESP32C3 Dev Module. Enfin, il faudra sélectionner le port de communication. On pourra vérifier que la communication soit bien initialisée en utilisant Outils => *Get Board Info//"},{"uuid":"cb93c086-4b6f-4c32-82a5-208adb14d0bf","slug":"esp8266-panorama-du-soc-des-modules-et-des-cartes-de-developpement","title":"ESP8266 : panorama du SoC, des modules et des cartes de développement","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2022-01-28 10:47","created_at":"2022-01-28 10:47:26","updated_at":"2026-05-13 18:32:46","tags":[],"plain":"Présentation\r\n\r\nL'ESP8266 est un microcontrôleur économique intégrant nativement une interface Wi-Fi 2,4 GHz (IEEE 802.11 b/g/n) et une pile TCP/IP. Il est conçu et commercialisé par Espressif Systems, une société chinoise basée à Shanghai et présente à l'international (États-Unis, Inde, République tchèque, Brésil, Singapour).\r\n\r\nLancé fin 2014, l'ESP8266 a connu un succès très rapide grâce à un rapport prix / fonctionnalités sans précédent : pour quelques euros, il met à disposition un microcontrôleur 32 bits cadencé à 80 MHz et une connectivité Wi-Fi complète. Sa version la plus connue, l'ESP-01, est devenue la porte d'entrée standard vers l'IoT pour le grand public.\r\n\r\nLe SoC a depuis été complété par la famille ESP32 (cœur Xtensa LX6/LX7 dual-core, Bluetooth en plus du Wi-Fi), puis par les ESP32-Cx / ESP32-Sx / ESP32-Hx, mais l'ESP8266 reste massivement utilisé pour les projets simples et peu gourmands.\r\n\r\nTrois niveaux à ne pas confondre\r\n\r\nAvant d'entrer dans les spécifications, une clarification utile sur le vocabulaire — fréquemment mélangé dans la documentation amateur :\r\nNiveau | Définition | Exemples |\r\n---|---|---|\r\nSoC (System on Chip) | Le circuit intégré nu, vendu par Espressif. | ESP8266EX |\r\nModule | Un petit PCB qui embarque le SoC, sa flash, son antenne et un brochage standardisé. | ESP-01, ESP-12E, ESP-WROOM-02 |\r\nCarte de développement | Une carte plus large qui embarque un module + un USB-série + un régulateur + des boutons + des broches au pas standard. | NodeMCU, WeMos D1 mini, Adafruit HUZZAH |\r\n\r\nL'ESP-01 est donc un module (vendu par AI-Thinker), pas un SoC ni une carte de développement à proprement parler.\r\n\r\nSpécifications techniques du SoC ESP8266EX\r\n\r\nProcesseur\r\ncœur Tensilica Xtensa LX106, RISC 32 bits ;\r\ncadencé à 80 MHz par défaut, 160 MHz en mode overclock logiciel.\r\n\r\nMémoire\r\n32 Kio d'IRAM (instructions) ;\r\n32 Kio de cache d'instructions ;\r\n80 Kio de RAM utilisateur ;\r\n16 Kio de RAM système réservée à l'ETS ;\r\npas de ROM ni de flash interne : le code est chargé depuis une flash SPI externe (QSPI) pouvant atteindre 16 Mio, généralement comprise entre 512 Kio et 4 Mio sur les modules vendus.\r\n\r\nRadio Wi-Fi\r\nnorme IEEE 802.11 b/g/n (2,4 GHz uniquement) ;\r\nchiffrement WEP, WPA, WPA2 (mais pas WPA3) ;\r\nmodes station, point d'accès et mixte (STA+AP) ;\r\nbloc RF intégré (TR switch, balun, LNA, PA, matching network) — le module n'a besoin que de son antenne.\r\n\r\nPériphériques\r\n17 GPIO théoriques au niveau du SoC (mais beaucoup sont préemptées par la flash SPI ou non exposées sur les modules courants) ;\r\nSPI matériel ;\r\nI²C logiciel (bit-banging, pas de contrôleur dédié) ;\r\nI²S avec DMA ;\r\nUART matérielle complète sur des broches dédiées ; un second UART en émission seule peut être activé sur GPIO2 ;\r\nun ADC 10 bits unique, par approximations successives, lisible sur la broche TOUT/ADC0.\r\n\r\nAlimentation\r\ntension d'alimentation 3,0 à 3,6 V (nominal 3,3 V) ;\r\npics de courant pouvant atteindre environ 300 mA lors des émissions Wi-Fi.\r\n\r\nModules à base d'ESP8266\r\n\r\nDeux familles principales coexistent. AI-Thinker a inondé le marché avec la série « ESP-0x / ESP-1x », pendant qu'Espressif a publié sa propre gamme « ESP-WROOM » plus tardive.\r\n\r\nModules AI-Thinker\r\n\r\n\r\n\r\nAI-Thinker a produit une longue série de modules, qui se distinguent essentiellement par leur facteur de forme, leur antenne (PCB, céramique, IPEX), leur nombre de broches exposées et la taille de la flash soudée.\r\n\r\nLes plus connus :\r\nModule | Particularités |\r\n---|---|\r\nESP-01 | Le plus compact, 8 broches, antenne PCB, 1 Mo de flash sur les versions noires. Le plus économique, mais GPIO très limités. |\r\nESP-01S | Version améliorée de l'ESP-01, généralement 1 Mo de flash et LED câblée différemment. |\r\nESP-07 | 16 broches, antenne céramique + connecteur IPEX pour antenne externe, blindage RF. |\r\nESP-12E / ESP-12F / ESP-12S | Format SMD 22 broches, blindé, antenne PCB. Base de la quasi-totalité des cartes NodeMCU et WeMos. |\r\n\r\nLes autres références (ESP-02 à ESP-11, ESP-13, ESP-14) existent mais ont peu percé en pratique. La plupart sont aujourd'hui difficiles à trouver et n'ont pas d'intérêt particulier face aux ESP-12x.\r\n\r\nModules Espressif\r\n\r\n\r\n\r\nEspressif a publié sa propre gamme « WROOM » certifiée FCC/CE, souvent privilégiée pour les produits commerciaux :\r\nModule | Antenne |\r\n---|---|\r\nESP-WROOM-02 | PCB |\r\nESP-WROOM-02D | PCB (version révisée) |\r\nESP-WROOM-02U | Connecteur U.FL pour antenne externe |\r\nESP-WROOM-S2 | Variante avec SDIO |\r\n\r\nListe détaillée et historique des modules sur Wikipédia : \r\n\r\nCartes de développement\r\n\r\nLes cartes de développement embarquent un module ESP8266 et tout le nécessaire pour démarrer immédiatement : convertisseur USB-série, régulateur 3,3 V, boutons RESET et FLASH, broches au pas de 2,54 mm, parfois LED utilisateur.\r\n\r\nNodeMCU\r\n\r\n\r\n\r\nLa carte la plus populaire de la famille. Elle existe en plusieurs révisions :\r\nv0.9 : module ESP-12, format « large » 47 mm de large ;\r\nv1.0 (DEVKIT v1.0) : module ESP-12E, USB-série CP2102, format normalisé ;\r\nv3 (« LoLin » et clones) : module ESP-12E ou ESP-12F, USB-série CH340. C'est la version la plus répandue, bien que la numérotation « v3 » soit purement commerciale (non officielle).\r\n\r\nLa carte expose la plupart des GPIO du module sous des noms D0 à D8 propres à NodeMCU, qui ne correspondent pas directement aux numéros GPIO de l'ESP8266. Une table de correspondance est indispensable :\r\nÉtiquette NodeMCU | GPIO ESP8266 |\r\n---|---|\r\nD0 | GPIO16 |\r\nD1 | GPIO5 |\r\nD2 | GPIO4 |\r\nD3 | GPIO0 |\r\nD4 | GPIO2 (LED interne) |\r\nD5 | GPIO14 |\r\nD6 | GPIO12 |\r\nD7 | GPIO13 |\r\nD8 | GPIO15 |\r\n\r\nWeMos D1 mini\r\n\r\nFormat compact (34 × 25 mm), module ESP-12F, USB-série CH340. Compatible mécaniquement avec un large écosystème de shields empilables (relais, OLED, batterie, capteur DHT…). C'est aujourd'hui la carte la plus utilisée pour des projets domotiques.\r\n\r\nAdafruit HUZZAH\r\n\r\nCarte haut de gamme avec module ESP-12E, régulateur 500 mA, niveau logique compatible avec une logique 5 V via résistances de pull-up. Idéale pour prototyper de manière fiable, mais plus chère et nécessite un FTDI externe sur la version sans USB.\r\n\r\nEspressif ESP-12E (module)\r\n\r\nLe module ESP-12E n'est pas une carte de développement à proprement parler : c'est le module SMD soudé sur la majorité des NodeMCU et WeMos. Son brochage est cependant utile à connaître lorsqu'on veut concevoir sa propre carte autour de lui.\r\n\r\n\r\n\r\nDOIT ESP-12F\r\n\r\nCarte de prototypage à base de module ESP-12F, comparable à une NodeMCU v3, parfois vendue sous le nom DOIT DevKit V1.\r\n\r\nPour aller plus loin\r\nL'ESP-01 : présentation et premiers pas\r\nPremier programme ESP-01 : afficher les informations système\r\nESP8266 : commandes AT\r\nDocumentation officielle Espressif : \r\nArticle Wikipédia (en anglais), plus complet : \r\n```"},{"uuid":"82dbe86a-e6ae-4040-be62-0d7f600958ac","slug":"references-et-bibliographies-arduino-et-esp","title":"Références et bibliographies Arduino et ESP","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2022-01-28 08:08:43","created_at":"2022-01-28 08:08:43","updated_at":"2022-01-28 08:08:43","tags":[],"plain":"Livre Arduino, Maîtrisez sa programmation et ses cartes d'interface (shields) [[https:amzn.to/3G7yIQu|]]\nde Christian Tavernier\nCommander le livre\nCommander le Kindle Notes de l'éditeur : Après un bref rappel de ce qu’est un microcontrôleur et une présentation des différentes versions d’Arduino, cet ouvrage fournit tous les éléments nécessaires à la conception et à la mise en oeuvre de nombreuses applications performantes avec notamment :\nla présentation complète de la syntaxe du langage de programmation ;\nplusieurs dizaines de schémas d’interfaces avec les dispositifs les plus divers (afficheurs, moteurs, relais, capteurs, bus I2C, SPI, Ethernet, etc.) ;\nplusieurs dizaines d’exemples de programmes types permettant la mise en oeuvre de ces interfaces.\nAccessible sans connaissances préalables en électronique ou en programmation, cette nouvelle édition mise à jour s’adresse aussi bien à l’amateur passionné, qu’au professionnel désireux d’intégrer des Arduino dans ses applications. Chacun pouvant y trouver selon son niveau le degré d’information requis. Commentaires : Surement le meilleur ouvrage. Démarche très étudiée et les informations sont pertinentes. Il aborde de façon très claire et bien structurée la programmation de l'Arduino puis la réalisation de circuits.\n-- Livre Mouvement, lumière et son avec Arduino et Raspberry Pi [[https:amzn.to/3ucTZpD|]]\nAvec 30 projets ludiques (Serial makers) de Simon Monk\nCommander le livre\nCommander le Kindle Notes de l'éditeur : Cet ouvrage à vocation pratique explique comme créer et contrôler des mouvements, de la lumière et du son à l'aide d'un Arduino et d'un Raspberry Pi. Avec à l'appui 30 projets ludiques à réaliser, il détaille comment utiliser ces deux plates-formes pour contrôler des LED, des moteurs de divers types, des bobines, des dispositifs à courant alternatif, des pompes, ou encore des systèmes d'affichage ou de production de sons. Il se clôt par des projets permettant de contrôler des mécanismes et des systèmes avec Internet, faisant ainsi pénétrer le lecteur dans le monde des objets connectés. Le maker, qui aura déjà eu l'occasion d'utiliser un Arduino ou un Raspberry Pi pour mesurer le monde réel à l'aide de capteurs, passera ici à l'action en découvrant les bases de l'automatisation. Dans ce livre, vous apprendrez notamment à :\ncréer un système d'arrosage automatique de vos plantes avec Arduino\nmettre au point un rafraîchisseur de boissons\nfabriquer une marionnette qui danse en fonction de vos tweets\nconcevoir un éclateur aléatoire de ballon Téléchargez le code source des programmes Arduino et Raspberry Pi présentés dans cet ouvrage sur www.serialmakers.com Commentaires : Toutes les explications sont claires et précises. Idéal pour débuter mais aussi pour l'utilisateur confirmé.\nLes comparaisons Arduino - Raspberry PI sont très utiles. \n-- Livre Arduino pour la domotique [[https:amzn.to/3G8tl3e|]]\nde Marc-Olivier Schwartz\nCommander le livre\nCommander le Kindle Notes de l'éditeur : Cet ouvrage est un guide pas-à-pas de projets concrets avec des exemples de code, des schémas et des photos pédagogiques.\nIl se termine par une introduction à l'impression 3D pour réaliser soi-même les boîtiers dans lesquels encastrer circuits et capteurs.\n-- Livre Arduino le guide complet [[https:amzn.to/3o7F0Jv|]]\nUne référence pour ingénieurs, techniciens et bricoleurs de John Malcolm Hughes\nCommander le livre\nCommander le Kindle Notes de l'éditeur : Le livre le plus complet sur Arduino et son environnement de programmation. JM Hughes est ingénieur système et possède 30 ans d'expérience dans le domaine de l'électronique. Il est spécialisé dans le domaine de l'aérospatiale. Il a piloté le projet informatique associé au Phoenix Mars Lander, la sonde spatiale qui s'est posée sur la planète Mars en 2008. Au programme :\nLa famille Arduino\nLe micro-contrôleur AVR\nProgrammer Arduino\nUtiliser le langage C et C++\nLes bibliothèques Arduino\nLes modules d'entrées/sorties\nÉlaborer 4 projets grandeur nature Commentaires : Ce guide ressemble plus à un inventaire des produits (shields) disponibles avec les différentes cartes ARDUINO qu'à un ouvrage sur les possibilités de ces cartes de développement.\n-- Magazine français Hackable Né en 2014, Hackable est un magazine destiné aux professionnels et particuliers souhaitant découvrir et progresser dans les domaines de l’électronique numérique et de l’embarqué. Il fournit un contenu riche. Le contenu du magazine est conçu de manière à permettre une mise en pratique directe des connaissances acquises et apprendre tout en faisant.\n-- Livre Arduino, Applications avancées [[https:amzn.to/3g2sXZt|]] Claviers tactiles, télécommande par Internet, géolocalisation, applications sans fil... (Technologie électronique) de Christian Tavernier\nCommander le livre\nCommander le Kindle Notes de l'éditeur :** Ce livre présente des montages électroniques programmables complexes et ambitieux. Il aborde ainsi des concepts et des interfaces dits \"évolués\" tels que :\nla connexion aux réseaux (notamment à Internet) que ce soit en mode filaire ou sans fil, \nl'utilisation de modules GSM pour exploiter Arduino via un téléphone mobile,\nl'utilisation de cartes mémoire SD\nle couplage à des modules GPS pour réaliser des applications géolocalisées,\nl'utilisation de la synthèse et de la reconnaissance vocale. Les programmes nécessaires à leur mise en oeuvre sont fournis dans les suppléments en ligne de l'ouvrage.\nUn premier chapitre de \"remise à niveau\" permet à ceux qui n'auraient pas lu le premier ouvrage d'aborder néanmoins celui-ci sans difficulté."},{"uuid":"ac8515ca-400e-43dc-b5bb-08aa5e6689b5","slug":"premier-programme-esp-01-afficher-les-informations-systeme","title":"Premier programme ESP-01 : afficher les informations système","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-12-12 22:28","created_at":"2020-12-12 22:28:56","updated_at":"2026-05-13 18:30:19","tags":[],"plain":"Objectif\r\n\r\nLe sketch ci-dessous est un petit utilitaire de diagnostic : une fois téléversé sur un ESP-01, il publie toutes les dix secondes sur la console série un état détaillé du microcontrôleur — identifiant, fréquence, tension d'alimentation, version du SDK — ainsi qu'un état de la mémoire flash. C'est l'équivalent d'un couplé à un pour l'ESP8266.\r\n\r\nCet exemple sert deux objectifs :\r\nvalider la chaîne complète (adaptateur, mode flash, IDE, board package) en réussissant un premier téléversement ;\r\nidentifier précisément le module en main : la flash réelle ne correspond pas toujours à ce qui est annoncé par le vendeur, et il peut être utile de le constater avant d'aller plus loin.\r\nPrérequis : un ESP-01 programmable depuis l'IDE Arduino. Voir les articles dédiés à l'adaptateur USB-série et à la configuration de l'IDE pour l'ESP-01.\r\n\r\nLe programme\r\n\r\n\r\n\r\nTéléverser et lire la sortie\r\n\r\n1. Sélectionner .\r\n2. Régler le port série sur celui de l'adaptateur.\r\n3. Placer l'ESP-01 en mode flash (jumper GPIO0 ↔ GND), téléverser, retirer le jumper, redémarrer.\r\n4. Ouvrir le moniteur série à 115200 bauds, fin de ligne NL & CR.\r\n\r\nSortie attendue (les valeurs varient d'un module à l'autre) :\r\n\r\n\r\n\r\nLecture des informations\r\n\r\nBloc ESP8266EX\r\nInformation | Méthode | Commentaire |\r\n---|---|---|\r\nNuméro de série du SoC | | Entier 24 bits dérivé de l'adresse MAC du module. Identifie de manière unique un ESP8266 donné. |\r\nFréquence du CPU | | 80 MHz par défaut, peut passer à 160 MHz avec ou via les options de carte de l'IDE. |\r\nAlimentation | | Tension VCC en millivolts. Nécessite et que la broche TOUT (ADC0) soit laissée libre. |\r\nVersion du core | | Version du board package esp8266 by ESP8266 Community. C'est lui qui fournit l'API Arduino utilisée ici. |\r\nVersion du SDK | | Version du SDK NONOS d'Espressif, utilisé en interne par le core. Ne pas confondre avec la version du core. |\r\n\r\nLecture de la sortie d'exemple : le module est un ESP8266 cadencé à 80 MHz, alimenté à environ 3,47 V (légèrement au-dessus du nominal de 3,3 V, ce qui reste dans la plage tolérée 3,0–3,6 V), compilé avec le board package 2.7.4 (basé sur le SDK NONOS 2.2.2).\r\n\r\nBloc Flash\r\nInformation | Méthode | Commentaire |\r\n---|---|---|\r\nNuméro de série de la flash | | Concaténation du manufacturer ID et du device ID renvoyés par la commande JEDEC. Utile pour identifier la puce flash réellement soudée. |\r\nFréquence | | Vitesse de l'horloge SPI en Hz. 40 MHz est la valeur standard ; 80 MHz est possible mais instable sur certains lots. |\r\nCapacité effective | | Taille physique de la puce flash, lue dans son JEDEC ID. C'est la vérité matérielle. |\r\nCapacité paramétrée | | Taille que l'IDE a annoncée au firmware (paramètre Flash Size dans ). Doit correspondre à la capacité effective. |\r\nTaille du sketch | | Place occupée par le programme actuel. |\r\nMémoire disponible | | Place restante utilisable pour un téléversement OTA. Pas la RAM libre — pour cela utiliser . |\r\n\r\nDans la sortie d'exemple, la flash physique fait 1 Mo (1 048 576 octets) et l'IDE a été paramétré avec la même valeur : c'est cohérent.\r\nPiège classique : si et diffèrent, le module est mal configuré dans l'IDE. Les conséquences vont de plantages aléatoires au refus de monter le système de fichiers SPIFFS/LittleFS. C'est l'un des intérêts principaux de ce sketch : détecter ce désaccord avant d'investiguer un comportement étrange.\r\n\r\nVariante : ajouter quelques infos utiles\r\n\r\nQuelques méthodes complémentaires qu'il peut être pertinent d'ajouter au programme selon les besoins :\r\n\r\n\r\n\r\nCes valeurs sont particulièrement intéressantes pour diagnostiquer des plantages : indique si le module a redémarré sur un watchdog, un brown-out, un reset matériel ou une exception logicielle.\r\n\r\nPour aller plus loin\r\nL'ESP-01 : présentation et premiers pas\r\nAdaptateur USB vers ESP-01 : activer le mode programmation\r\nESP8266 : commandes AT\r\nDocumentation officielle de l'API du core Arduino : \r\n```"},{"uuid":"3f750a3a-fad0-4089-98e5-79c8b4287ea2","slug":"esp8266ex-restore-commandes-at","title":"Réinitialisation d'un ESP-01 : restauration du firmware AT","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-12-13 14:35","created_at":"2020-12-13 14:35:26","updated_at":"2026-05-13 18:15:11","tags":[],"plain":"Introduction\r\n\r\nL'ESP-01 est un petit module Wi-Fi très répandu, construit autour du microcontrôleur ESP8266EX fabriqué par Espressif. À sa sortie d'usine, il est livré avec un firmware (le programme interne du circuit) qui permet de le piloter à l'aide de commandes textuelles simples appelées commandes AT. Ce firmware peut être effacé ou corrompu, par exemple après avoir téléversé un programme Arduino ou MicroPython sur le module. Ce document explique comment remettre l'ESP-01 dans son état d'origine afin de retrouver l'usage des commandes AT.\r\n\r\nQuelques notions préalables\r\n\r\nAvant de commencer, il est utile de clarifier quelques termes.\r\n\r\nUn firmware est le logiciel embarqué dans un composant électronique. Contrairement à un programme installé sur un ordinateur, il s'écrit directement dans la mémoire flash du microcontrôleur et s'exécute au démarrage du circuit.\r\n\r\nUn fichier binaire (extension ) est le résultat de la compilation d'un code source écrit dans un langage évolué, généralement le C. Une fois compilé, le fichier ne contient plus que des instructions destinées au processeur, illisibles directement par un humain. Il n'est pas nécessaire de les modifier : ils se téléversent tels quels dans le microcontrôleur.\r\n\r\nLa mémoire flash de l'ESP8266EX est divisée en zones. Chaque binaire doit être écrit à une adresse mémoire précise, sans quoi le module ne saura pas où trouver le code à exécuter au démarrage. Sur l'ESP-01, la mémoire est généralement organisée en 512k + 512k, ce qui signifie que la flash totale de 8 Mbit (1 Mo) est partagée en deux zones de 512 ko : l'une pour le programme actif, l'autre réservée aux mises à jour à distance (OTA).\r\n\r\nÉtape 1 — Télécharger le firmware AT officiel\r\n\r\nLe firmware est mis à disposition par Espressif sur son site officiel :\r\n\r\nhttps://www.espressif.com/en/products/socs/esp8266ex/resources\r\n\r\n\r\n\r\nDans la section , choisir la version ou plus récente. L'archive ZIP téléchargée contient plusieurs binaires destinés à l'ESP8266EX.\r\n\r\nQuatre fichiers sont particulièrement importants :\r\nbootv1.7.bin — le chargeur de démarrage (bootloader), premier programme exécuté à la mise sous tension ;\r\nuser1.1024.new.2.bin — le programme AT proprement dit, qui interprète les commandes envoyées par la liaison série ;\r\nespinitdatadefaultv08.bin — les données d'initialisation (paramètres radio, calibration) ;\r\nblank.bin — un fichier rempli de zéros, utilisé pour réinitialiser certaines zones de la flash.\r\n\r\nUne copie de ces binaires pour la configuration ESP8266EX 512k+512k est disponible ici :\r\n\r\nhttps://gitlab.com/cedricAbonnel/esp/-/tree/master/esp01/esp8266exatbin\r\n\r\nÉtape 2 — Identifier le port série de l'ESP-01\r\n\r\nL'ESP-01 ne se connecte pas directement à un port USB : il faut passer par un adaptateur USB-série (souvent un module FTDI ou CH340). Une fois branché, l'ordinateur expose ce périphérique sous la forme d'un fichier dans .\r\n\r\nPour repérer ce fichier, exécuter dans un terminal :\r\n\r\n\r\n\r\nParmi les entrées affichées, celle qui nous intéresse est généralement /dev/ttyUSB0 (parfois si plusieurs adaptateurs sont branchés, ou selon le modèle).\r\n\r\nUne astuce utile : exécuter la commande une première fois sans l'adaptateur, puis une seconde fois après l'avoir branché. La nouvelle entrée qui apparaît est celle du module.\r\n\r\nÉtape 3 — Préparer le téléversement avec esptool.py\r\n\r\nesptool.py est l'outil officiel d'Espressif, écrit en Python, qui permet de communiquer avec la mémoire flash de l'ESP8266EX. S'il n'est pas déjà installé, on peut l'obtenir via :\r\n\r\n\r\n\r\nAvant le téléversement, l'ESP-01 doit être placé en mode programmation : la broche GPIO0 doit être reliée à la masse (GND) au moment de la mise sous tension. Sans cette manipulation, le module démarre normalement et refuse l'écriture en flash.\r\n\r\nÉtape 4 — Téléverser les binaires\r\n\r\nLa commande suivante écrit les quatre binaires aux bonnes adresses mémoire :\r\n\r\n\r\n\r\nDécortiquons les options :\r\nindique le port série identifié à l'étape précédente ;\r\nest la sous-commande d'écriture en mémoire flash ;\r\nprécise le mode d'accès à la flash (Quad I/O, le plus rapide, supporté par l'ESP-01).\r\n\r\nChaque valeur hexadécimale (, , etc.) qui précède un nom de fichier indique l'adresse mémoire à laquelle l'écriture doit commencer. La table de correspondance officielle pour une flash de 8 Mbit organisée en 512k+512k est la suivante :\r\n\r\n\r\n\r\nL'adresse correspond aux paramètres système, et à la zone RF système : les remplir de zéros () garantit un démarrage propre.\r\n\r\nSi tout se passe bien, esptool affiche la progression du téléversement et confirme la réussite de l'opération. C'est le moment d'apprécier le travail accompli :\r\n\r\n\r\n\r\nÉtape 5 — Vérifier le bon fonctionnement\r\n\r\nAprès le téléversement, retirer la connexion entre GPIO0 et la masse, puis redémarrer le module. Ouvrir une console série (par exemple avec , ou la console série de l'IDE Arduino) à la vitesse 115200 bauds :\r\n\r\n\r\n\r\nTaper la commande suivie d'un retour à la ligne. Le module doit répondre . La commande retourne la version du firmware installé, ce qui permet de confirmer la réussite de la réinitialisation.\r\n\r\n\r\n\r\nEn cas de problème\r\n\r\nQuelques pistes si la procédure échoue :\r\nAucune réponse d'esptool : vérifier que GPIO0 est bien reliée à GND au moment de l'alimentation, et que l'adaptateur USB-série fournit assez de courant (l'ESP-01 demande des pics jusqu'à 300 mA).\r\nRéponses illisibles dans la console série : la vitesse par défaut a pu changer selon la version du firmware. Essayer 9600, 74880 ou 115200 bauds.\r\nErreur de checksum ou de mode flash** : essayer à la place de , certains clones d'ESP-01 ne supportent pas le mode Quad I/O.\r\n\r\nConclusion\r\n\r\nCette procédure restaure un ESP-01 dans son état d'origine, prêt à recevoir des commandes AT depuis n'importe quel système capable de dialoguer en série : ordinateur, Arduino, Raspberry Pi, etc. Elle constitue également un bon exercice d'introduction aux notions de firmware, de mémoire flash et de programmation bas-niveau des microcontrôleurs."}]