Skip to content

Moddable SDK 3.9.4

Compare
Choose a tag to compare
@mkellner mkellner released this 07 Jun 16:26
· 2574 commits to public since this release

This release contains improvements to the Moddable SDK made between May 4, 2023 and June 1, 2023.

Highlights of this release include:

  • MP3 decoder
  • MP3 audio streaming
  • Audio playback support for Raspberry Pi Pico (including MP3)
  • High quality Text-to-Speech with ElevenLabs.io
  • Support for more ESP32-S2 and ESP32-C3 development boards
  • XS 14.1 - garbage collection of keys and support for Symbols as WeakMap Keys

June Community Call

The monthly Moddable Community Call is Wednesday, June 14 at 3:00 PM PDT. Join us live on Zoom to learn more about this month's release and chat with the Moddable community.

New: Sign-up to receive an email reminder about our monthly community calls.

Our special guests this month are Daniel Ashcroft and Lawrence Kincheloe, founders of Juniper Technology. They are preparing to launch Twig, an agricultural monitoring IoT product with an open hardware design that gives users complete control of their data. Twig is their first product, created for hobbyists and explorers. Daniel and Lawrence will share the philosophy behind their product, their unusual approach to manufacturing, and how the Moddable SDK helps them bring their vision to market.

July release

Because of summer travel plans, our July release of the Moddable SDK will be delayed until approximately July 10.

Release details

  • Devices
  • Audio
  • Microcontroller runtimes
    • MCP7940 Real-time Clock implements digital trim adjustment to compensate for clock drift
    • Initialize time/date via SNTP if unavailable from debugger or RTC. Gives better default behavior for release & instrumented builds. (reported by @meganetaaan) #1094
    • Enable growable keys in XS by default to avoid running out of keys (reported by @linfan68) #1103
    • ESP32 USB now implements the debugger serial connection over both CDC-JTAG and TinyUSB
      • ESP32-S2 requires TinyUSB
      • ESP32-S3 can use either
      • ESP32-C3 requires CDC-JTAG
    • Fully initialize UART configuration on ESP32 platforms to fix intermittent failures with PSRAM enabled
    • TLS
      • ECMA-419 TLS socket implements read into existing buffer
      • Bump default TLS version to 1.2. Contributed by @jethrowharton.
    • ECMA-419 Analog input on ESP32 only performs calibration once #1120
    • pins/monitor working on Pico to deliver callbacks on digital input change
    • Mods working on Pico
  • Tools
    • TypeScript support for mods by setting-up tsconfig.json in manifest_mod.json. (reported by @linfan68) #1104
    • mcrun for ESP32 sources ESP-IDF exports.sh to provide identical Python environment as mcconfig.
    • mcrun reports specific error message when attempting to build a project that includes native code #1098
    • mcconfig outputs recursively merged manifests as manifest_flat.json. This is useful for debugging manifest mistakes and for tools that operate on manifests.
  • XS 14.1
    • Keys can now be garbage collected
      • Collects keys created by scripts; does not collect keys used in byte code
      • Enabled in xst command line tool
      • Disabled in MCU builds where dynamically creating and discarding keys is very rare
      • Support enabled by mxKeysGarbageCollection flag
    • "Symbols as WeakMap Keys" is now implemented - completes support for ECMAScript 2023
    • xsbug now displays contents of TypedArrays and ArrayBuffers (suggested by @tve). Up to 1024 elements are displayed.
    • Fixes
      • Fixed "XS returns the wrong result for expressions that assign to array length" (reported by @gibson402) #1123
      • Fixed "toFixed(0) sometimes returns a trailing dot" (reported by @tve) #1124
      • Revert BigInt change that caused incorrect add calculation on some platforms
      • Fixes for issues identified by fuzz testing with Fuzzilli and oss-fuzz. Thank you to @Agoric for their ongoing assistance with this work.
  • Documentation
    • Documentation on ESP32 family boards with USB connections - how to port and develop
    • Mods document links to discussion of how to install a mod without using mcrun. #1105
    • The xsLog() function is now described in the XS in C documentation (suggested by @tve)

Contact Us

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