EDC22 Day 1 Talk 14: Arduino under the hood Lib Builder and Arduino as Component in ESP IDF
HTML-код
- Опубликовано: 26 окт 2022
- Espressif’s Rodrigo Garcia from Brazil scrutinises the use of ESP32 in Arduino, starting with the internal structure of ESP32 and Arduino, as well as the way in which ESP-IDF is used in Arduino. He continues with how users can build their own IDF configuration for Arduino, and how Arduino works as a component.
Наука
It worked using esp-idf v4.4 with esp-arduino v2.06 but needed the sketch to use "#include " instead of "#incude "arduino.h". I tried moving a more complex sketch over which used ESP32Time and RTClib components and added them to main/CMakeLists.txt but the compiler was much more strict than Arduino in requiring function declarations and was much more strict with types. But now I know how I can build a project AND change the settings like RTC source so thanks for the very nice video tutorial.
can you give me example of your project? github repo or something?
Thank you for the video Rodrigo, I have two questions:
1) Is it possible to mix arduino code with IDF code (call functions and libraries), compile and flash into ESP32?
2) How to install arduino libraries (like Blynk) using arduino as IDF component?
Thanks for the questions. The answers are:
1) Yes, it is possible. But it must be done carefully because there may be execution conflicts when the same perfipheral is used, mixing Arduino and IDF. Example: Serial (UART 0) used within Arduino and UART 1 used wihtin IDF should work fine. But the same UART 1 using within Arduino and IDF at the same time, there may be a problem. The same UART 1, for instance, shall never be initialzed in both sides, but some UART IDF configuration functions could be used. Check the code from esp32-hal-uart.c in the Arduino Core. It is an IDF layer code.
2) You can use the Component Manager to add an Arduino Library as an IDF Component. It is done by adding it to the idf_component.yml file.
Examples of idf_component.yml:
github.com/espressif/arduino-esp32/blob/master/idf_component_examples/Hello_world/main/idf_component.yml
github.com/espressif/esp32-arduino-lib-builder/blob/master/main/idf_component.yml
idf_component.yml documentation:
docs.espressif.com/projects/idf-component-manager/en/latest/reference/manifest_file.html
Could you make an update that works with ESP-IDF 5.2.1 ?
Ótimo vídeo Rodrigo. Acho que o Arduino como componente do espidf não funciona com a versão 5.0 acima do espidf, correto? Eu tentei usar com o espidf 5.04 e aparecia erro no arquivo stdint.h
Correto. Arduino Core 2.0.x usa e depende do IDF 4.4.x. É possível ver qual versão de IDF corresponde a cada versão de Arduino Core através das informações de release no Github. Temos uma nova versão do Core Arduino, a 3.0.0 que é baseada no IDF 5.1.x. Não há Arduino Core para IDF 5.0.x.
@@rodrigogarcia8617 muito obrigado, agora ficou claro