Skip to content

FW 0.12.11

FW 0.12.11 Release Notes

Release Date: November 2, 2025
Version: 0.12.11

  • NetworkStorageData sync with App Controller: Adds storage synchronization between devices and app.
  • Berry API expansions:
    • spectoda.tx() / spectoda.rx() for low-level transport.
    • ble.enable(...), espnow.enable(...), full ESP-NOW configuration API, and espnow.datarate(...).
    • APDS9960 sensor API.
    • Config support for "plugins" and Controller "scripts".
  • Lighting protocols: ART-NET and sACN can now receive from multiple universes.
  • Connector compatibility: CONNECTOR_LEGACY_JS_RUNTIME option for legacy integrations.
  • Allow overriding PCB/Product codes.
  • Introduced fw_platform_code; added networksnapshot_unix_timestamp and controllerstore_fingerprint.
  • Renames/cleanups: fw_compilation_timestampfw_compilation_unix_time, clock_msclockms_t, IDENTIFIER(0)IDENTIFIER_UNDEFINED.
  • Berry internals: standardized names (EVT/PLG), cleaned C/C++ handlers, unified utils helpers such as utils::berry::getBytesBufferAndSize(), and improved DMX Berry support.
  • Moved synchronization_t to a dedicated header and improved error paths in BLE/ESP-NOW members.
  • Build/Tooling: fixed WASM and DMX builds; added new options to exclude APDS9930 and Pixel Port R/W; improved release build configuration.
  • Faster network OTA via higher data rate.
  • Longer Ethernet startup window for reliability.
  • Turned off Berry debug info and strict module for production performance.
  • Increased IO port max size from 1200 to 2048.
  • Corrected WS2805 signal timing to reduce flicker and glitches.
  • Hardened the firmware flooding mechanism.
  • Device context: fixed registerDeviceContext event-state initialization.
  • Clock writes: allowed higher-frequency firmware clock updates.
  • Serial: reliable synchronization packet sending and resolved large-payload issues.
  • Persistence: fixed an early reboot issue that could skip writing Network Signature/Key.
  • Fixed LoadingBar animation crash.
  • Protocols: no crash on ArtNet without a valid Berry VM.
  • Berry runtime: fixed memory corruption, render stack memory leak, empty mapped bytes creation crash, and other C++ / VM glue issues.
  • ESP-NOW: synchronization tweaks and NetworkData sync fixes.
  • Error handling: improved handling for FLAG_EVENT_HISTORY_BC_REQUEST and suppressed noisy “BLE max connection reached” logs.
  • Potentially breaking:
    • Default config segment ID changed from ID255 to ID0; verify scripts and configs relying on defaults.
    • FLAG_EVENT_HISTORY_BC_REQUEST was disabled, which changes history broadcast behavior.
  • Berry internal renames are largely non-breaking for user scripts, but custom native plugins touching internals should be updated.
  • System revision awareness:
    • Controllers can now be distinguished not only by firmware version, but also by system revision such as rev0 or rev1.
    • System revision represents the low-level runtime profile of the controller, for example partition layout, OTA slot geometry, or future flash / bootloader differences.
    • The same firmware line can temporarily run on multiple system revisions during migration.
  • Partition migration path:
    • rev0 controllers may require a one-time partition migration to rev1 before they can reliably accept larger OTA images.
    • After a controller is migrated to rev1, regular OTA updates continue normally within the new layout.
    • Future low-level migrations are expected to stay stepwise, for example rev0 -> rev1 -> rev2, rather than skipping directly between distant revisions.
  • Peer-to-peer OTA safety in mixed networks:
    • Controllers advertising a larger OTA slot no longer assume that every peer can accept the same image size.
    • Peer firmware distribution uses the real running firmware image size rather than the full app partition size.
    • If a target controller cannot accept the image, the update should be skipped or rejected instead of entering a broken OTA state.
  • Controller Info can expose both firmware version and system revision.
  • This helps distinguish situations such as:
    • two controllers both running firmware 0.12.11
    • while one is still on rev0 and another has already migrated to rev1
  • This is mainly useful for service, rollout planning, and OTA diagnostics in mixed installations.
  • New build exclusions: ESPNOWRADIO and APDS9930.
  • WASM build fixes applied; DMX WASM build corrected.

https://github.com/Spectoda/firmware/compare/v0.12.10...v0.12.11