Anthias
mail
8 connectés     # # # # # # # #

e

Carte ESP32

vers Nextion

w


Introduction
Fiche constructeur de l'ESP32
Outils de développement ESP32
Sortie ESP32 en HDMI
Carte ESP32 /STM32 / Nextion
Le problème bloquant des alimentations
Programmes utilitaires « atomes » de tests
Documents Eagle
Le programme qui ne se charge pas
Conclusion

Maj : 27/08/24

Abstract :
ESP32 is a new and very powerful component created by Expressif society with its proprietary but complex development system. By chance there is a bridge works in Arduino environment more simple for beginners.
After years been working on the DUE, now really obsolete, I choose the ESP32 for my new designs, to begin in the IOT (Internet of things) on this and small cheap full of resources. I developed a simple interface card to integrate basic components, including Nextion, and two power supplies.
This card is a part of my project <Nextion> arduino

Résumé :
ESP32 est un nouveau composant très puissant créé par la société Expressif avec son système de développement propriétaire mais complexe. Par chance il existe un pont qui fonctionne dans l'environnement Arduino plus simple pour les débutants.
Après des années à travailler sur le DUE, désormais vraiment obsolète, j'ai choisi l'ESP32 pour mes nouveaux designs, pour débuter dans l'IOT (Internet of Things) sur ce petit et pas cher plein de ressources. J'ai développé une carte d'interface simple pour intégrer des composants de base, dont Nextion, et deux alimentations.

Cette carte fait partie de mon projet <Nextion> arduino

arduino  Introduction ESP32

Le dynamique constructeur Expressif a sorti les remarquables cartes ESP32, basées sur leur chip WROOM-32. C’est un produit très puissant qui surclasse les anciennes cartes Arduino historiques, pour un prix dérisoire, et comprend en standard le Wi-Fi et le Bluetooth ce qui ouvre tous les possibles. Cette page n’a pas l’ambition de décrire les performances de ce chip, il faut se plonger dans les très bons documents du constructeur Expressif pour s’étonner de tout ce qu’il contient et se dire qu’il va y avoir du travail pour en exploiter une partie pour nos petits besoins, et mettre le doigt ans l’IOT (Internet Of Things <des Objets>).
Vous trouverez en ligne l’ancien (2018) mais classique document de Neil Kolban, gourou de l’ESP32, c’est une mine d’informations : leanpub.com/kolban-ESP32

Heureusement pour nous, Expressif a développé un pont qui permet d’utiliser l’ESP32 comme les autres cartes Arduino, en utilisant l’IDE classique Arduino, plus restrictif mais plus abordable. Tous les autres outils, Eclipse, Visual Studio, PlatformIO, etc. sont aussi utilisables.

J’ai abandonné les DUE que j’utilisais depuis des années sur mes automates pour laisser la place aux ESP32S3, quitte à perdre tout le hardware précédent qui tournait très bien et à repartir sur un tout nouveau design pour l’intégrer.

Le chapitre suivant se contente de reprendre une fiche constructeur pour se faire une idée sur ce produit.

Haut de page

arduino  Résumé de la fiche constructeur de l'ESP32

• Microprocesseur dual core de 240 MHz pour les Cores ESP32-D0WDQ6
et ESP32-D0WD. 160MHz pour les Cores ESP32-D2WD et ESP32-S0WD
• 4MB de mémoire flash
• Mémoire flash embarquée : 16-Mbit pour le Core ESP32-D2WD
• Wi-Fi 802.11 b/g/n conforme à la norme IEEE 802.11 compatible avec les sécurités WFA, WPA/WPA2 et WAPI
• Bluetooth 4.0 LE et BR/EDR
• 32 Entrées/Sorties
• 26x E/S digitales (3.3V). Toutes les sorties peuvent être PWM
• 18x entrées analogiques
• 3x UART
• 3x SPI
• 2x I2S
• 2x DAC
• 2x I2C
• Consommation en mode sommeil (Deep Sleep mode) : 5 μA
• etc.

Je n’utilise plus qu’exclusivement les

ESP32 S3 Devkit V1

avec beaucoup plus de ressources

w

e

Haut de page

arduino  Outils de développement ESP32

Expressif offre un environnement ESP-IDF ayant bien plus de possibilités que l’IDE de base d’Arduino, mais qui demande un délicat apprentissage de cet outil puissant pour celui qui veut exploiter à fond l’ESP32.

Pour des ambitions de programmation plus modestes, il sera plus simple de se contenter de l’IDE basique Arduino ou mieux, Eclipse, ou mieux, Visual Studio Community.

1 La puissance du ESP32 et de l’IOT

Autant le développement du Nextion semble mort, autant celui d’Expressif est explosif !
 Le dynamique taïwanais a sorti une carte de développement complète, un «  Œil artificiel = caméra + ESP32 + PSRAM + Flash + ESP-WHO », qui envoie les images en Wi-Fi, avec les outils de reconnaissance faciale.
Il paraissait impossible jusqu’à présent d’imaginer une telle puissance en développant sur Arduino, mais pourtant, Expressif continue d'ouvrir la voie à l’intelligence artificielle des objets (IAdO) ou Artificial Intelligence of Things (AIoT), pour un prix dérisoire. Nous connaissions les solutions pour le Raspberry Pi sous Linux, mais pas sur Arduino.
Cela permet par exemple de ne pas avoir à faire porter une clef en collier aux enfants qui rentrent seuls à la maison après l’école, ils pourront ainsi ouvrir la porte en étant reconnus par la caméra.
Cherchez ESP-EYE sur votre moteur.

Haut de page

arduino  Sortie ESP32 en HDMI

Peut-on sortir en HDMI avec un ESP32 ?
Le HDMI est la voie royale des affichages, il existe pléthore d’afficheurs pour Raspberry et tous les tailles de moniteurs, il n’y a plus de limites pour les beaux graphiques.

Voir cette page pour ce qui semblait la solution ultime : Atom PSRAM display Sortie en HDMI sur Arduino nextion

Je décris dans mes pages l’alternative Nextion, ce qui n’est probablement pas la meilleure idée car les limitations sont nombreuses et la polyvalence bien plus faible pour un coût élevé.

r

Haut de page

arduino  Carte universelle ESP32 ou STM32 vers Nextion

Mise à jour Juin 2023
J’ai une vingtaine de cartes qui tournent, surtout avec des ESP32 Devkit V1 de chez AZ Delivery en 2*19 pins. Je bascule maintenant toutes mes nouvelles cartes sur le très performant ESP32 S3 d'Expressif.

 

Pour rendre ces platins plus universelles, elle supportent les STM32 qui sont aussi des circuits remarquables, produits à plus d’un milliard d’exemplaires par ST Microélectronics, que l’on trouve cachés dans tous les objets du quotidien. Les cartes de développement STM32 se trouvent aux prix délirants de 2 Euros, c’est aussi un chip très puissant, mais à la différence de l’ESP32, il n’a pas de Wi-Fi et Bluetooth.

Ce tutorial explique la délicate mise en service du STM32 sous Arduino : Tutoriels Arduino nextion

s

STM32

Ces deux familles existent en divers brochages, au maximum 42 pins, et en deux largeurs, 600 mils pour les STM32 (15.24 mm = 6 * pas de 2.54 mm ) et 1000 mils (25.4 mm = 10 * pas de 2.54 mm) pour les ESP32.
Cela est résolu par une grille banalisée qui pourra recevoir une implantation quelconque (hors divers autres variantes exotiques...).

Cela implique obligatoirement qu’aucune liaison (ports et alimentations) ne peut être câblée en dur vers le support de la carte choisie, chaque variante ayant des brochages différents !
A titre anecdotique, mes derniers ESP32 sont en 2*19 pins, d'autres en 2*15 pins, mais il en existe aussi en 2*20 et en d’autres longueurs et largeurs plus exotiques.
Il faudra bien différencier les cartes configurées pour ne pas se tromper en ne mettant que le support de la bonne taille pour un câblage donné.

Les alimentations seront strappées sous les supports vers des rails communs.
Les liaisons se font avec des pins à wrapper, ou du fil émaillé auto dénudant, pour configurer chaque variante à la demande, il n’y a pas moyen de faire mieux.

Cette carte contient les multiples prises et composants annexes, comme pour mes anciennes cartes DUE, il n’y a pas de problème d’implantation, sauf pour les alimentations.

Les caractéristiques impressionnantes de l'ESP32 m’ont conduit à développer des cartes qui exploitent toutes les entrées-sorties et communiquent vers le Nextion en 2 fils (+alimentation), mais les dernieres versions câblent en dur seulement le S3.

En plus des nombreuses prises pour les éléments extérieurs (en SPI, I2C, One Wire pour DS18SB20 , commande "blackout", etc.), les cartes incorporent divers périphériques :
 Une horloge RTC (Real time clock) DS3231 fournissant le temps de référence avec une remarquable stabilité (quelques secondes par an si sa température reste assez stable autour de 20°). Cette horloge fournit un top toutes les quatre minutes par interruption (sortie SQW ).
Elle est associée à une EEPROM 512koctets (qui remplace la 32 k d’origine).
-Un lecteur de micro SD pour archiver et exploiter l’historique.
 Un buzzer qui est capable de jouer la musique, mais qu'il n'est utilisé ici que pour émettre quelques bips, en particulier un très court toutes les 2 minutes un plus long toutes les heures (silencieux en mode blackout).
-Le capteur barométrique BME280  (I2C).
-Des sorties sur des drains de Mosfets pour commander des actions internes (alimentation du Nextion) et externes (chauffage, volets,…)
Remarque : Pour économiser l'énergie et sauver la planète, le signal "blackout" coupe tout affichage si personne n'est en face du Nextion pour l'admirer, soit 500 mA sous 5V, il suffit de le reseter quand une présence est détectée par les capteurs infra-rouges et radars. Tout le reste étant en sommeil entre les interruptions, la consommation moyenne est quasi nulle sur le 12 V.
-Pour certaines applications, malgré que le Nextion soit totalement capable de les intégrer (mais il n’est pas présent sur toutes les cartes !), je rajoute cinq leds CMS et trois boutons poussoirs, et afin de ne pas gaspiller huit broches du ESP32, cela sera géré par l’increvable port PCF8574 en I2C (CMS). Deux autres poussoirs attaquent directement deux entrées GPIO.

-Un récepteur et un émetteur (simple led) infrarouge pour d’autres applications.

- En externe sur les prises i2C et SPI :
Convertisseur ADC ADS1115, 4 canaux 16 bits, capteur de lumière SFE_TSL2561, autre capteur température + humidité AHT41, capteurs de courant à effet Hall,
GPS NEO6M pour la position en mobile, c’est un autre moyen supplémentaire pour connaitre l'heure,
et de nombreux autres périphériques ....

Haut de page

arduino  Les alimentations

Le jack d’entrée est classique comme pour la famille Arduino en 5.5 / 2.1 mm, accepte entre 8 et 30 Volts pour fournir les alimentations sur la carte.

-Un 3.3 V permanent pour les microcontrôleurs d'une centaine de milliampères (généralement la consommation sera plus faible).
Il est en effet préférable d’alimenter les circuits directement en 3.3 V pour des problèmes de rendement, par exemple pour une consommation en 3.3 V de 100 mA :
Rendement d’une pompe down converter en 12 V -> 3.3 V = presque 90%
Consommation sur le 12 V = 100 mA * (3.3 /12) / 0.9 = 30 mA
En passant par le 5 V :
Rendement d’une pompe en 12 V -> 5 V = presque 90%
Régulateur linéaire de la carte LM1117 5V -> 3.3 V (perte sèche par dissipation thermique de 1.7 * .1 = 0.17 watt)
Consommation sur le 12 V = 100 mA * (5 /12) / 0.9 = 46 mA
C’est 50% de courant en plus, valeur très importante quand on travaille les modes faibles consommation en alimentation autonome.
-Un 5 V, 500 mA pour le très vorace Nextion, qu’il faut couper à la demande par un Mosfet.
Cette page traite des alimentations incorporées dans la version 2 de cette carte : alim_MP1584

J'ai validé ma carte avec tous ses périphériques et connecteurs en laissant le plus possible de zones banalisées avec des trous au pas de 2.54 mm

1 Version 2 de la carte

Avec l’expérience acquise sur cette première implantation imparfaite, une version 2 améliorée incorpore les alimentations.
C’est chaque fois le même problème, pendant que l’on monte la première carte qui vient d’arriver, toute une série de modifications et d’améliorations apparaissent, et la version suivante est plus aboutie.
Cela n’est pas un gros investissement, les chinois produisent une dizaine de cartes d’excellente fabrication pour moins de 20 Euros tout compris, livrées dans la semaine, à ce prix-là, on à le droit de se tromper…

J’ai cherché à faire le plus petit possible, la première version était au format 10*8 cm
Cela s’est avéré être une erreur, les suivantes sont au format de 10*10 cm (limite de taille pour rester dans le premier prix de fabrication).
Ces deux cm de plus permettent de moins tasser et de rajouter les deux alimentations et d’autres prises.

Mais les dernieres versions câblent en dur seulement le S3.

e

Haut de page

arduino  Programmes utilitaires « atomes » de tests

Pour chacune de mes cartes j’associe dans une directorie toute une série de tests qui permettent de vérifier un a un chaque composant au fur à mesure de l’installation.
Pendant ces tests le courant d’alimentation est toujours contrôlé. Ces petits outils de tests sont les plus simples possible et n’utilisent aucune bibliothèque personelle.
Ils permettent de débugger le hardware (pistes coupées, soudures baveuses…).
Certains sont simplement dérivés d’un exemple arduino, voici les premiers pour cette carte :

Liste adresses I2c
Mise à l’heure RTC DS3231
Affiche RTC DS3231
EEPROM 24c512 (32 kO)
PCF8574 + leds et boutons
BMP280 HP buzzer
Commande Mosfets
Créneaux programmables sur pins de sortie
OneWire
Diverses mises en sommeil
Etc..
Il est en effet inutile de persister à débuger son programme si la carte à des problèmes de hardware.

Le logiciel est maintenant en conformité avec les nouveaux standards du C++, en créant une collection de classes de tailles raisonnables et leurs outils de tests afin de réduire au minimum le .ino de base.
Pour information, ma vieille version qui tournait sur les DUE est autour des 4000 lignes. La partie Nextion, rajoute 2000 lignes, ce gros tas devient confus et était impossible à maintenir.

Haut de page

arduino  Documents Eagle

1 Remarque sur les leds CMS

Ces nouvelles leds CMS au format 1206 (pas de 0.1 pouce) ont un rendement surprenant et sont mêmes visibles avec quelques dizaines de microAmpères.
Suivant la couleur, ces leds ont des luminosités très différentes à résistance (et non courant) identique.
Il est difficile d’équilibrer les résistances pour obtenir des luminosités proches suivant les couleurs, et de plus cela dépend de l’observateur, car chacun a une perception différente.
Par défaut une résistance de 3.3 K sera installée au départ. Une forte augmentation du courant n’amène qu’un gain réduit en luminosité !
Les leds jaunes et bleues sont les moins brillantes et peuvent demander plus de courant. Les vertes et blanches sont les plus brillantes (à R constant)

Résultat des tests, alimentation à 3.3 V, résistance série de 3.3 kOhms puis 10 kOhms :

Il est intéressant de comparer ces leds simples aux leds programmables, voir la page WS2812 nextion

Test
leds CMS
Tension
résistance
3,3 kOms
Tension
Led
3,3 kOhms
Courant
3,3 kOhms
µA
Tension
résistance
10 kOms
Tension
Led
10 kOhms
Courant
10 kOhms
µA
red 1,544 1,756 473 1,55 1,73 160
Green 0,933 2,367 288 1,059 2,244 111
Blue 0,758 2,542 235 0,81 2,493 86
Yellow 1,457 1,843 447 1,504 1,598 155
White 0,718 2,582 223 0,758 2,545 81

Il faut remarquer les tensions très variables des leds (de 0.7 à 1.5 V) et les courants extrêmement faibles pour des visibilités très correctes (de 0.2 à 0.5 mA avec 3.3k, le tiers avec 10k) !
La led jaune a un rendement très inférieur aux autres, il faut diminuer sa résistance pour monter le courant.

 

Les 5 leds et les 3 poussoirs sont branchés sur les 8 ports du circuit I2C PCF8574 en CMS (qui supporte 20 mA par I/O, il y a de la marge).


La ligne d'interruption branchée sur une entrée de l'ESP32 réveille le circuit si un des trois poussoir est activés.

Toutes les lignes ouvertes sont tirées au + par une dizaine de kOhms pour éviter les déclenchements intempestifs d’interruption par des parasites.
En milieu perturbé, il faudra ajouter un petit filtrage capacitif pour casser les pics induits par effet d’antenne sur chaque entrée.

Deux poussoirs supplémentaires SW& et SW2 sont rajoutés pour réveiller lors d’un sommeil profond par action directe sur deux entrées GPIO.

1 Remarques sur le GPS

En option, un GPS NEO6M trouvait sa place sous la carte. Il a été supprimé pour minimiser le taille du circuit, mais pourra se retrouver en piggy-back.
Les trames NMEA183 donnent la position et l’heure, mais la RTC DS3231 est très stable, et l’heure est aussi disponible en WiFi sur un serveur de temps.

leds

 

1 Remarques sur l'alimentation

L’alimentation est protégée par une diode en inverse et un fusible en série, cela évite de mettre une diode série qui fait perdre 0.7 V et plombe le rendement de conversion.
En temps normal, des straps au pas de 2.54 mm sont enfichés entre l’arrivée du jack d’alimentation extérieure (12Vo) et les départs vers les deux convertisseurs (JP3v3 pour l'ESP32, JP5v pour le 5v 0.5 A du Nextion).
Chaque strap peut être remplacé par un ampèremètre ou un shunt pour mesurer un courant particulier, par exemple via un INA 219 qui fournira l’information en I2C. Cela est très utile pour travailler les modes "sommeil" et vérifier les différentes étapes de baisses de la consommation.

Les condensateurs réservoirs et filtrages ne sont pas oubliés, ils sont sur la carte annexe d’alimentation, qui comprend aussi un Mosfet pout éteindre le Nextion trop gourmand en mode blackout.

(à droite, le petit haut-parleur buzzer pour la musique d’ambiance).

1 Conversion 5 V vers 3.3 V

Attention les entrées du ESP32 ne supportent pas le 5 Volt, comme par exemple la sortie TX du Nextion !
Il faut faire une conversion, le plus élégant est avec un petit Mosfet, le plus rustique par un pont diviseur 2/3.
Cette carte comprend trois ponts de conversion, l’entrée du signal 5 V est sur JP5Vx au travers d’une résistance 4.7 kOhms, le point commun avec la 10 kOhms à la masse est la sortie JP3Vx, en 3.3 V.  
Le Nextion accepte un signal 3.3 V sur son entrée RX.

 

12v

1 Remarques sur les prises I2C

Quatre prises I2C banalisées reçoivent de nombreux accessoires dont le capteur de pression BMP280 flottant au bout de quelques centimètres de câble, et de nombreux autres périphérique sur cartes externes (qui dupliquent les prises) suivant les besoins.
L’horloge RTC a sa propre prise avec sa sortie d’interruption.
L’expandeur de ports PCF8574 est en dur sur la carte (voir au-dessus).
Les lignes i2C doivent être tirées au <+> par des résistances entre 4.7 k et 10 k.
Elles ne sont pas sur le schéma Eagle, car incorporées à la platine DS3231, mais il faut bien vérifier à l’ohmmètre (alimentation coupée !) qu’elles existent.

 

1 Remarques sur les prises OneWire

Plusieurs prises sont prévues pour les entrées OneWire des multiples capteurs de température DS18B20 en divers endroits.

En principe une seule ligne OneWire peut gérer tous les capteurs en étoile, mais il a été prévu des signaux séparés car les lignes très longues plantent de manière aléatoire les autres capteurs, malgré des filtrages d’alimentation soignés en bouts de lignes.
Il est ainsi possible de lancer plusieurs instances sur des lignes indépendantes pour isoler les problèmes et comme le temps d’attente est très long pour d’obtenir une mesure (0.7 seconde), cela permet de lancer les commandes décalées sans multiplier les attentes.

La prise vers le capteur de la chaudière a un fil de plus pour commander l’activation par un Mosfet P. Il est simple de couper un dispositif par le négatif avec un Mosfet P, mais couper par le point chaud est plus délicat car il faut fournir une tension élevée (non disponible basiquement) sur la gate d'uv Mosfet N.

Une autre ligne OneWire récupère l’information de l’activité solaire plus girouette et anémomètre.
J’ai renoncé au pluviomètre trop délicat à maintenir. En option entrée de mesure de radiations.

i2c

 

1 Les supports universels

Les implantations sont au pas de 2.54, avec les espacements comme représentés.
Les rangées J00 et J12 reçoivent les pins à wrapper à la demande.

Pour un ESP32, supports en J01 et J11 (10 * pas de 2.54 mm ).


Pour un STM32, supports en J03 et J09 (6 * pas de 2.54 mm ).

 

slots

1 La carte finale équipée

Carte montée version 1908 sans les alimentations.

Le format est de 10*8 cm

C’est une variante ESP32 en 36 pins
Le baromètre BMP280 est monté en l’air (pour ne pas être influencé par la température du CI), prise blanche I2C 1/4.
Un seul capteur de température DS13b20 est monté en l’air sur ce proto, prise 5/5 One Wire.
Remarquez les 5 leds et 3 poussoirs en bas, sur le PCF8574
Les deux poussoirs horizontaux attaquent directement les GPIO.

Comme déjà signalé, aucune liaison (ports et alimentations) ne peut être câblée en dur vers le support de la carte choisie, ce qui explique l’obligation du wrapping pour relier l’ESP32.

La carte a été profondément testée et n’a aucun problème connu. Ces cuivres nus, avec éventuellement les éléments critiques spécifiques (PCF8574, poussoirs…), sont disponibles pour qui en fera la demande.

Tous mes documents sont aussi disponibles sous Eagle.

nu

ci

Cliquez pour agrandir

1 Les fausses alimentations

Pour mes premières cartes, j’ai commandé sur eBay une dizaine de cartes d’alimentation (down converters), basées sur l’excellent MP1584EN pour 5€ les dix, prix semblant imbattable.
L'une doit fournir le 3.3 V (environ 70 mA en tout) pour l’ESP32, l’autre le 5V commuté 500 mA pour le Nextion, depuis le jack 12V.
L’étude du datasheet m’a montré que la consommation à vide (mode sommeil) devrait être inférieure à 1 mA sur le 12 V.
Lors des tests, très mauvaises surprises, deux constatations contraires aux spécifications !
Pour 5 V,  500 mA, le chip chauffe très anormalement, rendement médiocre.
Pour 3.3 V, sortie en l’air consommation à vide de 23 mA sur le 12 V, au lieu des moins du 1 mA attendu !
Devant ces résultats catastrophiques j’ai examiné de plus près les cartes.
Sur tous les sites eBay, Bangood,…, la photo de la carte montre bien un vrai chip, bien implanté comme sur le datasheet du MP1584EN.
Malheureusement, les cartes envoyées ne sont pas du tout les mèmes, comme vous pouvez le voir sur les photos, ce n’est absolument pas un vrai chip, mais un faux piratage chinois sans sérigraphie, aux pattes dans un ordre tout différent et aux performances lamentables.

Vrai : Vin pin 7, Self  (SW) pin 5, GND pin 5…
Faux: Vin pin 2, Self  (SW) pin 3, GND pin 4…

Il semble n’exister aucun chip connu de convertisseur qui réponde à ce brochage farfelu.
L’idée était d’exploiter les modes sommeil pour travailler à des courants moyens très faibles, c’est évidement exclu avec cet ersatz défectueux.

C’est de la tromperie, produit pas cher mais inexploitable.

Après échanges dans le forum Arduino, il m’a été signalé que ceux-ci sont des vrais : fr.aliexpress.com/...
Je viens de recevoir ces 15 vrais modules de chez AliExpress, livrés en 15 jours, pour une somme totale de 7.69€, soit 0.50€ la pièce, que dire à cela….
Je répète : Les faux consommaient 23 mA à vide !

Ces vrais modèles consomment 0.24 mA à vide soit 100 fois moins.
En charge, sur résistance 10 ohms, 3.3V 330 mA, avec en entrée 13.3V 101.6mA
Le rendement est donc : (3.3 * 0.330) / 13.3 * 0.1016) = 0.8 : Excellent rendement de 80%

Encore une fois : <Attention aux lamentables contrefaçons>

Il faut remplacer le fragile potentiomètre par deux résistances fixes ou le noyer dans une goutte de cire de bougie pour le protéger.

mp

Cliquez pour agrandir

1 Les liaisons en wrapping


Pour information, tout le câblage des pins à wrapper (pour ce chip spécifique),  
est décrit dans une bibliothèque décrivant tout le hardware,
dont voici un petit extrait provisoire indiquant les premières connexions à effectuer pour débuter les tests.

//////// Wrapping pins for model : DOIT ESP32 DEVKIT V1 ///////////

#define LED_BUILTIN 2 // Native blue led

// Wrapping pins

#define BUZZER 12 // Small loudspeaker (Violet 7 G)
#define PIO_INT_PIN 18 // PCF 8574 (Bleu 12 G)
// 21 // SDA (Yellow 14 D)
// 22 // SCL (Green 17 C)
#define CLOCK_INT_PIN 23 // DS3231 (Blanc 18 D)
//#define ORDER_HEAT xx // ?? Gate Mosfet Heating
//#define INF_BLACKOUT xx // ?? 0 = sleep, info from ATTiny ()
#define DALLAS_ONE_WIRE 15 // One Wire (Gris 6 D)

Haut de page

arduino Le programme qui ne se charge pas

Les ESP32 sont pleins de surprises, les platines sont toujours basées sur une des multiples variantes de l’excellent WROOM-32 d’Expressif, mais chaque intégrateur fait son adaptation ensuite.
Sur certaines platines après la compilation, le transfert est bloqué : Connecting ….____....____....____
Il faut alors faire un long appui (cinq secondes) sur le poussoir <Enable> pour lancer le transfert.
Sur d’autres, mieux conçues, c’est inutile, le reset se fait tout seul, que le terminal soit ou non activé.

Cela peut provenir aussi d’un câble USB trop long et fin, à trop forte impédance, changez de câble et testez d’autres ports USB2 et USB3, parfois les ports natifs passent mais pas ceux sur cartes additionnelles.
Une petite modification sur les platines résout le problème en retardant le reset après chargement.
Il suffit de souder un condensateur entre la pin <EN> et la masse au coin de la carte comme montré sur cette photo. Curieusement la valeur de ce condensateur dépend des cartes !
Pour certaines, c’est inutile, pour d’autres 220 nanoFarads suffisent, pour d’autres 2 microFarads, il faut tester en commençant petit.

boot

Haut de page

arduino  Conclusion

Ce n’est pas simple de transposer des dizaines de gros programmes tournant sur une configuration éprouvée (à base de DUE), vers un nouvel environnement (à base d’ESP32), en s’adaptant à l’IOT (Internet des Objets), mais il faut savoir évoluer pour survivre dans un monde des microcontrôleurs en mutation permanente.
Je regrette simplement d'avoir basculé sur le STM32 et l’ESP32 aussi tard, en ayant été resté figé sur la DUE.

Je n’utilise plus qu’exclusivement les

ESP32 S3 Devkit V1

avec beaucoup plus de ressources

Vous trouverez en pages <électronique>, les détails sur l’utilisation de cette carte avec le Nextion arduino

 

© Christian Couderc 1999-2024     Toute reproduction interdite sans mon autorisation


* Page vue   21711   fois       IP : 3.236.112.101

 Haut de page         Dernière retouche le 28 Août 2024 à 08 h         Retour page précédente

   Collector