Updating to ESP-IDF v2.1

Out of curiosity, is there a way I can manually update PlatformIO’s espressif32 framework to the latest release?

We use the latest stable v2.1. See

checking github, I see the v2.1 has a different esp_wifi.h file (includes promiscuous filtering). however, after making sure I’ve got all the updates from platformio, I still see the older v2.0 esp_wifi.h (in packages\framework-arduinoespressif32\tools\sdk\include\esp32) I’d like to get updated to v2.1 so I can use the promiscuous filtering.

Is there any way I can grab the github repro and install it over what platformio installed?

Hi @SoftwareSamurai!
How do you compare v2.1 with our package?
We use an archive esp-idf-v2.1.zip from release page Releases · espressif/esp-idf · GitHub

PlatformIO is suppose to auto-update the libraries for each platform, and after making sure my PlatformIO says everything is up to date, I looked at esp_wifi.h on my local machine. It does not contain the promiscuous filtering struct/function. When I look at esp_wifi.h in github on the v2.1 (or master) branch, it does contain the promiscuous filtering struct/function.

(Look for esp_wifi_set_promiscuous_filter() in esp_wifi.h found in esp-idf/components/esp32/include/ on the v2.1 branch in github.)

So I can only conclude that the default/current ESP32 platform framework files are from the v2.0 branch, not the v2.1.

My question is: Is there a way I can manually update my PlatformIO’s esp32 platform framework files to the ESP-IDF v2.1 branch?

FYI: I just tried uninstalling and re-installing the espressif32 and framework packages, and I’m still getting the v2.0 ESP-IDF under the framework.

Do I have to manually copy the v2.1 files and libraries over the automatically-installed framework files?

I’ve checked esp-idf/components/esp32/include/esp_wifi.h and there is esp_wifi_set_promiscuous_filter function. Could you please share here the output from the next command:

pio platform show espressif32

espressif32 ~ Espressif 32

Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.

Version: 0.9.1
Home: PlatformIO Registry
Repository: GitHub - platformio/platform-espressif32: Espressif 32: development platform for PlatformIO
Vendor: https://espressif.com/
License: Apache-2.0
Frameworks: arduino, espidf, pumbaa, simba

Packages

Package toolchain-xtensa32

Type: toolchain
Requirements: ~1.50200.0
Installed: Yes
Version: 1.50200.0
Original version: 5.2.0
Description: GCC for SoC Xtensa L108

Package framework-simba

Type: framework
Requirements: >=12.2.0
Installed: No (optional)

Package framework-arduinoespressif32

Type: framework
Requirements: ~1.1.4
Installed: Yes
Version: 1.1.5
Original version: None
Description: Arduino Wiring-based Framework (ESP32 Core)

Package framework-pumbaa

Type: framework
Requirements: >=2.3.0
Installed: No (optional)

Package tool-espotapy

Type: uploader
Requirements: ~1.0.0
Installed: No (optional)

Package framework-espidf

Type: framework
Requirements: ~2.210.0
Installed: No (optional)

Package tool-esptoolpy

Type: uploader
Requirements: ~1.20000.0
Installed: Yes
Version: 1.20000.0
Original version: 2.0.0
Description: ESP8266 ROM Bootloader utility

Boards

ID MCU Frequency Flash RAM Name

esp32-evb ESP32 240Mhz 1280kB 288kB OLIMEX ESP32-EVB
esp32thing ESP32 240Mhz 1280kB 288kB SparkFun ESP32 Thing
nano32 ESP32 240Mhz 1280kB 288kB MakerAsia Nano32
featheresp32 ESP32 240Mhz 1280kB 288kB Adafruit ESP32 Feather
quantum ESP32 240Mhz 1280kB 288kB Noduino Quantum
node32s ESP32 240Mhz 1280kB 288kB Node32s
onehorse32dev ESP32 240Mhz 1280kB 288kB Onehorse ESP32 Dev Module
esp32doit-devkit-v1 ESP32 240Mhz 1280kB 288kB DOIT ESP32 DEVKIT V1
espea32 ESP32 240Mhz 1280kB 288kB April Brother ESPea32
esp32dev ESP32 240Mhz 1280kB 288kB Espressif ESP32 Dev Module
lolin32 ESP32 240Mhz 1280kB 288kB WEMOS LOLIN32
nodemcu-32s ESP32 240Mhz 1280kB 288kB NodeMCU-32S
esp-wrover-kit ESP32 240Mhz 1280kB 288kB Espressif ESP-WROVER-KIT
esp32-gateway ESP32 240Mhz 1280kB 288kB OLIMEX ESP32-GATEWAY
hornbill32minima ESP32 240Mhz 1280kB 288kB Hornbill ESP32 Minima
esp320 ESP32 240Mhz 1280kB 288kB Electronic SweetPeas ESP320
intorobot ESP32 240Mhz 1280kB 288kB IntoRobot Fig
hornbill32dev ESP32 240Mhz 1280kB 288kB Hornbill ESP32 Dev
widora-air ESP32 240Mhz 1280kB 288kB Widora AIR
esp32vn-iot-uno ESP32 240Mhz 1019kB 288kB ESP32vn IoT Uno
firebeetle32 ESP32 240Mhz 1280kB 288kB FireBeetle-ESP32
espino32 ESP32 240Mhz 1280kB 288kB ESPino32

Hm, framework-espidf package is not installed?
Could you please compile any simple esp-idf example and check line 624 in esp-idf/components/esp32/include/esp_wifi.h

For me, esp_wifi.h is in “packages\framework-arduinoespressif32\tools\sdk\include\esp32”.
In fact, I don’t show any folder named “esp-idf” at all.

Perhaps the issue is that I’ve got “framework-arduinoespressif32” installed rather than “framework-espidf”?

This is not an issue, framework-arduinoespressif32 and framework-espidf are two completely separate packages. Honestly, I don’t know which version of esp-idf is used as a base for the Arduino implementation, but if you want to use esp-idf, you should explicitly specify that in your platformio.ini, for example like in this project. And when you first time compile a project based on esp-idf, PlatformIO will automatically download v2.1 for you.

This IS an issue because framework-arduinoespressif32 CONTAINS files from the ESP-IDF repro, and they are from v2.0, not the latest v2.1, and so far I’ve received no answer as to how I can update those file to the v2.1 release. It’s not that I WANT to use the ESP-IDF files, but rather they are automagically installed and made available to me via PlatformIO.

Understand that I got here when I simply created a new project and selected “Espressif ESP32 Dev Module”. PlatformIO then installed whatever it thought it needed, and here I am today.

So, again, how do I update the ESP-IDF files in framework-arduinoespressif32 to the v2.1 release?

1 Like

I see that framework-arduinoespressif32 has been updated to v0.10.0, supporting more boards and “Update Arduino Core for ESP32” (appears to be v2.1 of the ESP-IDF).

Thank you!

Out of curiosity: Is there a way to find out who actually maintains these frameworks/packages?

See

I seem to have a version issue also. Using VS Code with PlatformIO for Feather32 board using ESP-IDF framework. I discovered some missing code in the files generated by PlatformIO (specifically components/bt/bluedroid/api/include/esp_gatt_defs.h) and checking against ESP-IDF ver 2.1, they are definitely different files.

So same question as SoftwareSamurai… how can I get my system upgraded to 2.1