ESP32 FreeRTOS correct version for new ESP32 projects?

I just created and built a new project for ESP32 with PlatformIO. If I print the FreeRTOS version, it prints 8.2.0. Is this correct? If not correct, how do I get the latest FreeRTOS with this setup?

platformio.ini contains:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
; lib_extra_dirs = ~/Documents/Arduino/libraries
monitor_speed = 115200
; lib_deps = 
upload_port = COM3

main.cpp contains:

#include <Arduino.h>
#include <freertos/task.h>

void setup() {
  Serial.begin(115200);
  Serial.print("\nFreeRTOS Version = ");
  Serial.println(tskKERNEL_VERSION_NUMBER);
}

void loop() {
}

Yes, it is.

Question:
Why do you want to change the FreeRTOS Version?

Explanation

Espressif Arduino is built on top of ESP-IDF
ESP-IDF is built on top of FreeRTOS

You cannot change the underlying versions of ESP-IDF or FreeRTOS.

But you can update your platform-espressif32.
The latest official available is 6.10.0 which offers Arduino 2.0.17 based on ESP-IDF 4.4.7.

pioarduino’s platform-espressif32 offers Arduino 3.1.1 based on ESP-IDF 5.3.2 which is based on FreeRTOS 10.5.1

See platform-espressif32-versions.md

Also read FreeRTOS (IDF 5.3) and note

IDF FreeRTOS source code is based on Vanilla FreeRTOS v10.5.1 but contains significant modifications to both kernel behavior and API in order to support dual-core SMP.

Thank you very much for your reply.

Maybe I don’t :slight_smile:. I have been using ESP32 for a few years, but I’ve never explicitly used FreeRTOS. I’d like to learn more about it. I can’t find the 8.2.0 reference manual. I got the manual for 10.6.2. So I was wondering if I should upgrade or try and get the 8.2.0 manual.

You don’t need FreeRTOS Manual.
But reading the ESP-IDF API is a good idea.

I changed one line of platformio.ino to:

platform = espressif32 @ 6.10.0`

Now it prints:

FreeRTOS Version = V10.4.3

Thank you for your help

1 Like