Moddable SDK 4.9.0
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
- 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-419WebSocketClient
- nRF52 Serial
- 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)
- Metering
- 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
- ESP32
- 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
- Piu backlight example
- 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
- 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
- trace and trace command are now command line options (
- xsbug-log
- Break out
LogMachine
into separate file, and useXSBUG_LOGMACHINE
environment variable to select implementation to load (contributed by @cmidgley)
- Break out
- Simulator
- Invoke
onQuit
prior to exiting - Moddable Six simulator (use
sim/moddable_six
build target)
- Invoke
- xst
- 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:
- Start a new Discussion on our GitHub repository
- Drop by our Gitter to chat
- Contact us on Twitter at @moddabletech