Skip to content

Moddable SDK 4.9.0

Compare
Choose a tag to compare
@phoddie phoddie released this 19 Jul 23:18
· 283 commits to public since this release

Moddable SDK 4.9.0 contains improvements made between June 5, 2024 and July 18, 2024.

This release brings support for Moddable Six, our new development board! Moddable Six is our most powerful device, able to deliver advanced mobile-class user experiences on low-cost, compact embedded hardware. Here's just some of what it includes:

  • ESP32-S3 MCU, a dual-core 240 MHz CPU with built-in Wi-Fi and BLE
  • Bright, beautiful IPS display for flicker-free animation at 60 FPS
  • Low-latency multi-touch display
  • Audio speaker
  • 8 MB high-speed PSRAM
  • 8 MB high-speed flash storage
  • Qwiic connector
  • USB and serial

There's extensive technical documentation available for all the capabilities of Moddable Six. Dig into that to learn how to use the powerful hardware in your JavaScript projects.

Moddable Six is a significant upgrade to our most popular development board, Moddable Two. Moddable Six is available immediately at the same price as Moddable Two, starting at just $29.99. Check out the product page and order today.

Moddable Six is so much more powerful than Moddable Two that we created an all-new suite of examples to demonstrate what is now possible. Check out the Speaking Clock, Battery Monitor, and Smart Plug Schedule projects to see how Moddable Six brings mobile-class user experience to IoT products built with modern JavaScript.

Important: The Moddable SDK now recommends using ESP-IDF v5.2.2, the most recent production version of the Espressif SDK. This version contains major improvements to BLE and Wi-Fi compared to the previously recommended v5.1.2. Updating to ESP-IDF v5.2.2 is straightforward. For the vast majority of Moddable SDK projects, no changes to your JavaScript code are required. The Moddable SDK contains instructions for updating on macOS, Linux, and Windows.

Release Details

  • Modules
    • ILI9341_p8 supports continue() called from script
    • TLS adds secp384r1 ECC for compatibility with OpenAI (#1368)
    • LittleFS renames MODDEF_FILE_LFS_PARITION_SIZE to MODDEF_FILE_LFS_PARTITION_SIZE (contributed by @cmidgley)
  • ECMA-419
    • nRF52 Serial
      • Transmit pin is optional
      • Invoke onWritable before buffer is completely empty to allow truly continuous writes
    • WebSocket implementation now passes headers on to ECMA-419 WebSocketClient
  • XS JavaScript Engine
    • Metering
      • Implemented for RegExp parser
      • Implemented for JavaScript parser
      • Apply relative weights to different kinds of operations to better model execution cost
    • Several Compartment fixes to improve conformance (reported by @kriskowal)
  • Documentation
    • How XS implements JavaScript scopes is now documented - both data structures and runtime operations. Read more about it on our blog and then dive into the full document.
    • Fix Neostrand documentation examples (contributed by @stc1988)
  • Devices
    • ESP32
      • Clean-up watch-dog timer configuration #1249 (contributed by @linfan68)
      • sdkconfig names updated to match changes in ESP-IDF
      • Neopixel has no task affinity on single core devices
      • Update CDC devices for ECMA-419 and mods
      • Eliminate use of usb_serial_jtag_ll functions with latest ESP-IDF
      • Reduce default ESP-IDF log output for ESP32-H2 and ESP32-S3 devices
      • Analog input only calibrates raw values (contributed by @linfan68)
      • Small changes to support limited use with ESP-IDF 5.0.x (not recommended or supported in general)
      • Avoid hang on ESP32 CDC devices when USB disconnects while using xsbug
  • Examples
    • Piu backlight example
      • Feedback sound while adjusting brightness (requires host with audio enabled)
      • Floor on minimum brightness to avoid making screen too dark to read
  • Tools
    • xst
      • Cleans up memory on stack overflow when fuzzing (contributed by @raphdev)
      • Memory use tracking for fuzzer includes tracking overhead to more accurately estimate total memory in use of process
      • Don't attempt to load directory path as a module
    • mcconfig & mcrun
      • Escape '#' (private scoped modules) with "^" on windows-only (nmake) #1356 (contributed by @ cmidgley)
      • Merge all tsconfig options, not only compilerOptions (contributed by @cmidgley)
      • Escape TypeScript private module specifier in make file
    • serial2xsbug
      • trace and trace command are now command line options (-trace and -tracecommands) instead of compile-time options
      • Fix crash that happened occasionally on reset
    • xsbug-log
      • Break out LogMachine into separate file, and use XSBUG_LOGMACHINE environment variable to select implementation to load (contributed by @cmidgley)
    • Simulator
      • Invoke onQuit prior to exiting
      • Moddable Six simulator (use sim/moddable_six build target)
  • Tests
    • Update minimum PWM frequency to match ESP-IDF v5.2.2 changes

Contact Us

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