# Changelog All notable changes to the CUBE32 BSP. Versions follow `idf_component.yml`. ## 0.0.17 ### Added - **Safe mode** (`CUBE32_SAFE_MODE_*`): crash-loop recovery over BLE. In safe mode `cube32_init()` does not return, so no app code runs. Enabled by default. - **OTA app validation** (`CUBE32_APP_VALIDATION_*`): choose when an OTA-updated app is marked valid (early, after init, or app-confirmed) and what happens on timeout (mark valid or roll back). - **Security eFuse guard** (`CUBE32_ALLOW_SECURITY_EFUSES`, default `n`): the build fails on settings that would block UART0 recovery (Secure Boot, release-mode flash encryption, disabled UART ROM download, Secure Download mode). - **Runtime modem connection** (`CUBE32_MODEM_CONNECTION_RUNTIME`): builds both USB and UART drivers; the type is chosen over BLE config, stored in NVS and applied after restart. - **BLE OTA data partitions** (`CUBE32_BLE_OTA_DATA_PARTITIONS`). - **Display board auto-detection**: the board model (1.54″ 240×240, 2.0″ 240×320, 320×320 ST7796S/GT911) is resolved at boot from the touch controller's I2C address via `cube32_display_models.h`. - **11 new examples** (23 total): `hello_activity`, `hello_ble_ota`, `hello_compass`, `hello_imu_mag`, `hello_mlc_activity`, `hello_rtc_timer`, `hello_sdcard`, `hello_spirit_level`, `hello_touch`, `hello_usb_input`, `hello_web_cam`. ### Changed - **Default modem connection is now `Runtime`** (was `USB`). Until a type is chosen it falls back to USB. - **Default audio sample rate is 16 kHz** for input and output (was 24 kHz), as required by esp-sr AEC. Keep both equal; they share the I2S clock. - **Partition layout** (16 MB flash): `ota_0`/`ota_1` are 5 MB each (were ~4 MB), a 64 KB `coredump` partition is added, and `assets` is 5.875 MB (was 8 MB). - `espressif/esp_modem` `^1.0.0` → `^2.1.0`; `espressif/usb_host_cdc_acm` `^2.0.4` → `^2.4.1`. - **Example manifests** now declare `cube32esp/cube32_bsp` with `version: "*"` and `override_path: "../../../"` instead of `path`, so they resolve the BSP from the checkout locally and from the registry otherwise. - README updated to match the above. ### Removed - `CUBE32_AUDIO_AEC_*` Kconfig choice (AEC mode is selected in code). - Display model Kconfig option (replaced by auto-detection). ## 0.0.16 - Log capture and BLE OTA / modem support updates. ## 0.0.15 - Add LVGL example and examples index. ## 0.0.14 - Add ST7796 display and audio loopback examples. ## 0.0.13 - Robot `face_expression` updates. ## 0.0.12 - Add `hello_modem_console` and `hello_mqtt` examples; RTC NTP updates; LVGL driver fix. ## 0.0.11 - ES8311 ADC path, BLE OTA advertising-restart timer, NimBLE sdkconfig hardening.