ESPresense v4.0.8 boots on ESP32-C3 v1.1 chips

1 hour ago

ESPresense 4.0.8 is a one-fix release for one chip. If your node runs on an ESP32-C3, and that chip is revision 1.1, firmware built on an older ESP-IDF gets stuck in a boot loop. This release builds the C3 firmware on ESP-IDF 4.4.7, so those boards start up.

Ask about this presentation

Chapters

  1. 0:00ESPresense v4.0.8 boots on ESP32-C3 v1.1
  2. 0:23Revision 1.1 moved the ROM functions
  3. 0:44Three lines in platformio.ini
  4. 1:08Only the C3 builds change
  5. 1:33Update your C3 nodes
Show transcript
  1. ESPresense 4.0.8 is a one-fix release for one chip. If your node runs on an ESP32-C3, and that chip is revision 1.1, firmware built on an older ESP-IDF gets stuck in a boot loop. This release builds the C3 firmware on ESP-IDF 4.4.7, so those boards start up.

    Slide text
    ESPresense ESPresense · v4.0.8
    ESP32-C3 v1.1

    ESPresense v4.0.8 boots on ESP32-C3 v1.1 chips

    The C3 firmware now builds on ESP-IDF 4.4.7

  2. Here's the cause. Revision 1.1 of the C3 moved functions that live in the chip's ROM. Firmware built on an ESP-IDF release older than 4.4.7 gets stuck in a boot loop on that revision. Built on 4.4.7, the same firmware boots, and the C3 builds in this release are built on it.

    Slide text
    ESPresense ESPresense · v4.0.8

    Revision 1.1 of the ESP32-C3 moved its ROM functions

    Firmware built on ESP-IDF
    older than 4.4.7
    Boot loop
    Firmware built on ESP-IDF
    4.4.7, as in v4.0.8
    Boots
    Espressif advisory AR2024-009
  3. The whole change is three lines in platformio.ini. Two comment lines give the reason, and note that Arduino 2.0.17 is built on ESP-IDF 4.4.7. The third line pins the C3 section to its own platform, espressif32 version 6.10.0. The other chips stay on the Tasmota platform they already used.

    Slide text
    ESPresense ESPresense · v4.0.8

    Three lines in platformio.ini give the C3 its own platform

    platformio.ini  [esp32c3]  extends = common+ ; ESP32-C3 v1.1 moved ROM functions: apps built on ESP-IDF older than 4.4.7 boot loop on it+ ; (Espressif AR2024-009). Arduino 2.0.17 is built on IDF 4.4.7; the other chips stay on Tasmota.+ platform = espressif32@6.10.0  board = esp32-c3-devkitm-1
  4. So who needs this? The project defines twelve firmware builds, and only three of them change: the standard C3 build, the C3 CDC build, and the C3 verbose build. They all inherit the C3 section, so they all pick up the new platform. The ESP32, ESP32-S3, M5Stick, M5Atom and Macchina builds keep the configuration they had in 4.0.7.

    Slide text
    ESPresense ESPresense · v4.0.8

    Only the three C3 firmware builds change

    esp32c3
    esp32c3-cdc
    esp32c3-verbose
    esp32
    esp32-verbose
    esp32s3
    esp32s3-cdc
    esp32s3-verbose
    m5stickc
    m5stickc-plus
    m5atom
    macchina-a0
  5. If any of your nodes run on an ESP32-C3, update them to 4.0.8. One thing to know: the C3 firmware now builds on a different platform from the rest of the family. For ESP32 and S3 nodes, platformio.ini is the only file this release touches, and their builds keep the same settings, so there's no hurry. ESPresense 4.0.8 boots on C3 revision 1.1 chips.

    Slide text
    ESPresense ESPresense · v4.0.8

    Running ESPresense on a C3? Update it to v4.0.8.

    C3 firmware now builds on a different platform from the other chips.
    ESPresense espresense.com

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️