Skip to content

Moddable SDK 5.10.0

Choose a tag to compare

@mkellner mkellner released this 14 Aug 00:51
· 160 commits to public since this release

Moddable SDK 5.10.0 contains improvements made between July 16, 2025 and August 12, 2025.

This is a relatively small release due to summer holidays and work on features that are not yet ready to publish.

ESP-IDF v5.5.0

The Moddable SDK has migrated to ESP-IDF v5.5.0 for all ESP32 family builds. The release contains many improvements by Espressif, particularly I²C and BLE. As usual, there should be no code changes required for the vast majority of projects using the Moddable SDK. Updating takes just a few minutes:

  • If you used xs-dev to install the Moddable SDK, execute xs-dev update --device esp32
  • Otherwise, follow the update instructions for macOS and Linux, or Windows.

ESP-IDF I²C Upgrade, again

In Moddable SDK 5.10.0, we've brought back support for Espressif's new i2c_master API. With ESP-IDF v5.5, the majority of issues appear to have been resolved. We are still working around one bug.

New ECMA-419 BLE Client, continued

This release contains numerous improvements to our new BLE Client and Web Bluetooth module. Thank you to @stc1988 and @mshioji for sharing their suggestions and observations. Learn about our new BLE Client in last month's release notes. We've also integrated our new BLE Client into Node-RED MCU Edition.

Release Details

  • ECMA-419
    • BLE Client
      • Fix characteristic completion callback on macOS
      • Set target in constructor
      • UUID strings are lowercase (macOS)
      • Report scan errors (ESP32)
      • Ensure enableNotifications() fully completes before the next queued operation starts (ESP32)
      • Disable Espressif's auto-reconnect (ESP32)
      • Encode connection type into address to allow connecting to non-public addresses (ESP32)
      • Fix 128-bit UUID strings (ESP32)
      • Work around bug in ESP-IDF v5.5 NimBLE that disables notifications
      • Improve out-of-memory failure handling (ESP32)
  • Modules
    • Web Bluetooth
      • getCharacteristics works for find all (contributed by @stc1988)
      • getPrimaryServices and getCharacteristics work when passed no arguments
      • Eliminate double new in properties getter (contributed by @stc1988)
      • removeEventListener fix for finding item (contributed by @stc1988)
      • Fix typo with writeWithOutResponse (contributed by @stc1988)
    • Migrate M5StackCoreTouch to ECMA-419 (contributed by @stc1988)
  • Examples
    • io/ble – uuids are lowercase
  • Documentation
    • Apply results of spell check run by @stc1988 to correct many small mistakes
    • Remove obsolete "id" references from Timer documentation (suggested by @stc1988)
  • Tools
    • mcpack reports module format requested when reporting invalid module format
    • Workaround undefined left shift in fmod. This will likely change again in the next release to a more complete solution.
  • Typings
    • Add Base64 & Hex to Uint8Array
    • Declarations for new ECMA-419 BLE client
    • Add default export for URL module
  • Devices
    • Added creation to all ESP32 devices without one. These are required for optimal default memory partitions.

Contact Us

If you have questions or suggestions about anything here, please reach out: