Skip to content

Moddable SDK 3.7.6

Compare
Choose a tag to compare
@mkellner mkellner released this 07 Mar 18:56
· 2228 commits to public since this release

This release contains changes to the Moddable SDK made between February 1, 2023 and February 28, 2023.

This is a relatively modest release. The Moddable team has been busy with projects that use the Moddable SDK, so much of our work on the core Moddable SDK has been fixes and small features. Our community has been busy though, with many issue reports, fixes, and contributions. Thank you to everyone!

One of the projects that has kept us busy is the 2nd edition of ECMA-419, the ECMAScript® Embedded Systems API Specification. This standard underpins a growing number of the core Moddable SDK APIs. The 2nd Edition standardizes many new embedded JavaScript APIs, including many common network protocols, a host of new sensors, and real-time clocks. Much of the specification is already implemented in the Moddable SDK, so you may be using it already! We need all the help we can get reviewing the draft text of the standard. Please give it a look.

Another project we're excited about is xs-dev. xs-dev automates common Moddable SDK tasks like getting set-up, updating, running examples, and creating new projects. It is a step closer to becoming our recommended set-up method thanks to a contribution by the Moddable team this month. There's a great new documentation site for xs-dev that's worth checking out.

The Node-RED MCU Edition project is another embedded project that the Moddable team has been supporting. Built on the Moddable SDK and the 2nd Edition of ECMA-419, it brings the popular Node-RED environment to a wide-range of microcontrollers. Developers working on Node-RED projects are stress testing many edges of the Moddable SDK which has led to a variety of improvements and fixes.

March Community Call

The monthly Moddable Community Call is this Thursday, March 9th at 9:00 AM PST. Join us live on Zoom to learn more about this month's release and chat with the Moddable team.

We'll be joined by Nick Hehr, creator of xs-dev! Nick will talk about what's there now, what's planned for the future, and how you can help. Nick is a great speaker (check out his talk on Offline IoT from JSConf) and a TC53 invited expert contributing to ECMA-419.

Release details

  • Documentation
    • Add note about module specifier requirements for setup/* modules. #1021 (requested by @tve)
    • Fix typos in ESP32 and Tools documents #997 (reported by @nickthiru)
  • Devices
    • Add support for M5Atom S3 Lite (contributed by @kitazaki)
    • Add PulseWidth to IO constructors in M5Atom Matrix, M5Stack, M5Stack Core2, and M5Stick C Plus host provider instance (contributed by @NextWorldLab)
    • Use more compatible baud rate for debugging M5Stack Core2
    • M5Atom S3 flash defaults to DIO for compatibility (contributed by @NextWorldLab)
    • ESP8266
      • Simplify message queue implementation
      • Stability fix for ECMA-419 TCP socket when closing
      • URL module now runs
    • ILI9341 driver with 8-bit SPI path support for ESP32-S3, ESP32-S2, and ESP32-C3
  • ECMA-419
    • MQTT client keep-alive fix (contributed by @tve)
    • MQTT.js client ID options fix (contributed by @tve)
    • SPI on ESP32 and ESP8266 defaults active to low (conformance) #1051 (reported by @tve)
  • Examples
    • Use manifest for http.js rather than including directly
    • BLE scanner example traces address for devices that do not have a name in their advertising packet
  • Modules
    • Poco renderer now consistently divides render buffer for double buffering
    • Poco renderer stores origin/clip stack at end of display rather than in pixels to avoid overwriting pixels waiting to transmit asynchronously
    • If Wi-Fi mode not set, default to station mode. #1047 (reported by @nickthiru)
  • Tools
    • mcrun reports an error when attempting to include JavaScript modules that reference native code. (reported by @tve)
    • Correct default upload port for ESP8266 on macOS Ventura
    • mcconfig and mcrun
      • generate error on attempt to use fontbm when not installed
      • trace path of cloned git repositories
  • TypeScript
    • Add typings for console module (contributed by @chigix)
    • Add typings for secure socket module (contributed by @chigix)
  • XS
    • Key array can now grow at runtime
    • Fix two issues identified by UBSan
    • Temporary option to treat weak references as strong references for organic garbage collections. (Workaround for Agoric runtime)
    • Fixes for issues found with fuzz testing using Fuzzilli and oss-fuzz. Thank you to @Agoric for their ongoing assistance with this effort.
    • Allow slot heap to grow contiguously up (for specialized hosts, like xsnap)

Contact Us

If you have questions or suggestions about anything here, drop by our Gitter to chat, start a new Discussion on our GitHub repository, or contact us on Twitter at @moddabletech.