installation ESP-IDF [resolu]

Bonjour,

Je tente laborieusement d'installer l'ESP-IDF sur windows 10
La procédure en passant par l'installeur automatique a foiré 3 fois avec 3 versions différentes

J'ai donc décidé de faire les choses manuellement en suivant cette procédure:

https://docs.espressif.com/projects/esp-idf/en/stable/get-started/windows-setup-scratch.html#mconf-for-idf

Chaque étape est un tour de force car de nombreux lien sont brisés.
Actuellement je suis coincé à l'étape mconf/kconfig

Et le dépot sur github semble être pour du windows 32 bits

Vu que je suis en train de comprendre que 9a va continuer à être un umbroglio je préfère vous demander conseille.

Comment installez-vous cet ESP-IDF ?
Quelqu'un a-t-il une expérience pertinente?

Pourquoi précisément ESP-IDF ?
Que donnera de plus ESP-IDF par rapport à ARDUINO IDE ou mieux encore : PlatformIO ?

Pour programmer un ESP32 tu as deux possibilités. Soit utiliser ESP-IDF soit l'IDE Arduino. En général, sur ce forum, on utilise la seconde solution.

Hola oui je comprends mieux merci. Ce sont donc des outils équivalents.

La raison pour laquelle je tente d'installer l'ESP-IDE (je n'avais pas compris que c'est redondant avec l'IDE arduino) c'est que j'ai toute une série d'ESP32 qui ont des comportements erratiques et que je ne peux pas utiliser.

J'ai découvert hier que je devais/pouvais les réinitialiser en effaçant leur mémoire flash grâce à ce truc qui s'appelle esptool.

N'est pas lié à l'ESP-IDE ??

ESP-IDF pardon ... oulah !

Bonjour

Les extensions ESP pour l'IDE Arduino se suffisent a elles mêmes , elles contiennent des portions des SDK Espressif, dont esptool

Comment installez-vous cet ESP-IDF ?

Pas encore éprouvé le besoin d'installer cette alternative à l'IDE Arduino muni de l'extension ESP32 !

Ah? Mais alors dans Arduino comment faire pour avoir l'équivalent de la commande console de l'esptool pour effacer l'ESP32 :

cd C:\users\Utilisateur\Documents\esptool> 
python esptool.py -p COM3 -b 115200 erase_flash

Et ou puis je trouver la référence pour utiliser cet outil ?

l'extension ESP32 pour IDE Arduino installe esptool (sans cet outil le flashage ('téléversement') ne pourrait se faire)

La référence pour cet outil est son dépot Github : GitHub - espressif/esptool: Espressif SoC serial bootloader utility

Dans l'état éctuel de l'extension ESP32 l'effacement intégral n'est pas proposé dans un menu, la ligne de commande est donc nécessaire quand le besoin d'effacement total se fait sentir (c'est relativement rare)
Le bouton 'téléversement ' lance esptool avec un effacement de 'presque toute' la mémoire Flash et en général , ça suffit au quotidien, en particulier quand on se cantonne à l'IDE Arduino.
(de memoire je n'ai eu à faire un effacement intégral qu'en installant µPython ou au contraire en le quittant pour revenir à l'IDE Arduino)

L'extension ESP8266 par contre offre cette option dans un menu.

Génial, merci.
Grand merci à tous.
Bon aprem.

Les deux ne sont pas équivalents.

ESP Arduino permet de faire des codes à la façon d'arduino, c'est à dire avec un setup et une loop. Mais toutes les bibliothèques ESP32 ne sont pas accessibles.

ESP-IDF utilise des codes C ou C++ standard, c'est à dire avec un main. Par contre, toutes les fonctions natives de l'esp32 sont accessibles.

Avec l'ESP-IDF il n'y a pas ce truc "Free-Rtos" à gérer en plus ?
A ce que j'ai compris les ESP, avec la gestion du wifi, sont "un peu plus" qu'un microcontrôleur comme un atmega ou un samd21.
Et accessoirement j'ai surtout compris qu'ESP-IDF n'était pas pour moi.

ESP-IDF utilise des codes C ou C++ standard, c'est à dire avec un main.

Ce n'est pas ce que j'ai compris (bon je ne suis pas une référence non plus).
Mais quand je vois qu'il faut déclarer des "tasks" et que main est remplacé par app_main je me dis que c'est un tontiné plus compliqué.
Il me semble que c'est la conséquence de la présence de freeRtOS.
Donc je reste sagement sur la version ESP-Arduino qui doit gérer tout ce fatras pour moi

Ce n'est pas ce que j'ai compris (bon je ne suis pas une référence non plus).

On en a déjà parlé : la fonction main() s'appelle en fait app_main().
Cela ne fait pas de différence.

Oui on en a déjà parler.
Je n'avais ni compris ni été convaincu : pour moi s'il y a deux noms différents c'est que ce sont deux choses différentes.

Quand je vois FreeRtOS il me semble qu'il y a un système d'exploitation en temps réel où je ne comprend plus l'anglais ( c'est possible).
Avec ma petite tête je me dis qu'on est plus proche de la programmation sur microprocesseur que sur microcontrôleur.

A plusieurs reprises A1fch a indiqué qu'il fallait introduire des "yields" dans des boucles pour ne pas monopoliser le microcontroleur et lui laisser du temps pour ses autres taches comme la gestion du Wifi.
Avec ma petite tête j'en ai déduis que c'est bien à cause de l'OS et ses différentes tâches qui tournent dans le micro.

Je suis allé plus loin et j'ai cherché des exemples avec ESP-IDF, la gestion des IO me paraissait un bon point d'entrée.

Et j'ai vu ceci :

#include "freertos/task.h
#include "freertos/queue.h"
.......
.......

static xQueueHandle gpio_evt_queue = NULL;

et plus loin :

static void gpio_task_example(void* arg)
{
 uint32_t io_num;
 for(;;) {
  if(xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) {
   printf("GPIO[%d] intr, val: %d\n", io_num, gpio_get_level(io_num));
  }
 }]
}

Task ?
xQueueHandle ?
xQueueReceive ?
Qu'es acò ?

Je me dis, avec mon petit niveau de connaissance, que la programmation avec ESP-IDF est un peu plus complexe qu'avec le portage d'IDF sur Arduino. Et que le portage sur Arduino doit faire bien des actions dans notre dos (pour notre bien).
Je suis curieux de connaître qui ici sur ce forum a déjà développé avec ESP-IDF.

oui, 68tjs, les ESP sont des SOC ('sytem on chip') , pas des microcontrolleurs
FreeRTOS est incontournable sur ESP32, le SDK reposant dessus.

Pratiquant désormais tout ça dans un esprit ludique je suis bien content que l'extension ESP32 gère pour moi tout un tas de choses dans lesquelles je ne tient plus à mettre les mains ....
Je testerai peut être PlatformIO qui parait être 'à ma portée' :slight_smile:
IDF, pas pour moi... je ne suis plus au travail !! tant pis pour les fonctions qui ne sont pas encore portées vers l'IDE Arduino.