Moddable 7.0.0
Moddable SDK 7.0 contains improvements made between December 4, 2025 and January 13, 2026.
Zephyr Port Now Official
We began porting the Moddable SDK to the Zephyr RTOS in 2025, with the first public preview in October. In the few months since then, the Zephyr port is sufficiently capable and complete that we are promoting it to an officially supported platform of the Moddable SDK. This means future Zephyr updates will be delivered as part of our regular monthly release.
To understand the breadth and depth of our Zephyr port, check out our blog posts that detail our progress:
- Modern JavaScript for Zephyr
- Moddable SDK on Zephyr RTOS Advancing Quickly with Networking, BLE, and More Storage
- Displays, Ethernet, and More Boards Land in Zephyr Port
Our comprehensive Zephyr documentation covers getting set up, building, debugging, and how we bridge Zephyr's foundational Device Tree to JavaScript.
In the last month, we've done a tremendous amount of work to refine the Zephyr port, including the addition of Analog Input and PWM IO, and making it easier to begin working with new development boards from any silicon provider.
We're excited to have Zephyr fully onboard in the Moddable SDK and look forward to continuing to deepen our support for this popular, well-supported platform.
ESLint and TypeScript Checks Integrated with Build
ESLint and TypeScript are valuable tools for checking the correctness of JavaScript and TypeScript source code before it is parsed, compiled, and run. These checks save Embedded JavaScript developers valuable time by identifying mistakes before code is downloaded to the target device. Moddable SDK 7.0 makes running these checks much easier.
When building with mcconfig or mcrun you can now check your JavaScript and TypeScript source code with ESLint and/or TypeScript. All you have to do is add -tc to your command line for TypeScript checks and -lc for ESLint checks. You can check both in a single build:
mcconfig -d -m -p zephyr/esp32_ethernet_kit -tc -lcYou do need to have TypeScript and ESLint installed. Fortunately installing them is straightforward, but be sure to install them globally.
npm install -g typescript
npm install -g eslintBecause the ESLint and TypeScript checks don't usually increase build time significantly, you can consider keeping one, or both, enabled during active development.
When using TypeScript to check JavaScript source code, the checks are less strict because there is less type information available. Still, the TypeScript checks are valuable.
The TypeScript checks depend on the available type declarations, primarily in $MODDABLE/typings. These are increasingly complete, but not entirely. Where they are incomplete, there can be failures. This happens with access to the device global, though Zephyr builds handle this well thanks to mcdevicetree. Being able to build all Moddable SDK examples with TypeScript and ESLint checks enabled is a goal, which should resolve the majority of these issues.
The checks are performed on the source code of your project. They are not performed on code included by your project from the $MODDABLE/modules and $MODDABLE/build directories. Checking this code is more challenging because it implements the system and so may not always conform with the publc APIs. Extending checks to the code in these directories is an area for future work.
Release Details
- Devices
- Zephyr
- Implement ECMA-419 analog input
- Implement ECMA-419 PWM output
- RTC module migrated to New Native API
- Wi-Fi and Ethernet modules provide
MACproperty - Complete implementation of timezone and daylight savings offsets
- M5Stack CoreS3
- Support microphone #1552 (contributed by @meganetaaan)
- ESP32
- ECMA-419 Audio Out should use
ISRcalls fromplayedBuffercallback (contributed by @meganetaaan) - Fix missing
debugger_uart_cdc.con Windows builds #1555 (reported by @rillhu) - Replace deprecated
VSPI_HOSTwithSPI3_HOST#1556 (reported by @NW_LAB)
- ECMA-419 Audio Out should use
- Zephyr
- conversationalAI
- Enable model selection user interface by default
- Add models for Gemini and OpenAI (contributed by @stc1988)
- Migrate to New Native API
- Modules
- chatAudioIO
- Update tools support to latest across supported services
- Migrate to New Native API
- WebSocket – don't trip over omitted callbacks (
onerror, etc) - CRC - migrate to New Native API
- ResourceIterator - migrate to New Native API
- TLS – remove
Hexmodule; replaced by JavaScript'sUint8ArrayHex support
- chatAudioIO
- ECMA-419
- DNS-SD changes
instanceNametoname - BLE security options name changes for display and keyboard capabilities
- MQTT client merges its configuration into Host Instance Provider rather than overwriting
- DNS-SD changes
- XS JavaScript engine
- Fixed range of
Math.random()on ESP32 and ESP8266. #1544 (reported by @stc1988) - Fuzzing fixes
- JavaScript parsing crash introduced with New Native API
- Obscure string buffer overflow converting
BigIntto string - Native stack overflow when parsing JSX
- Fixed range of
- Tools
- test262 app migrated to New Native API
- Fix ESP32-C6 builds that include BLE
- mcdevicetree
- Use Zephyr
CONFIG_*value to enable features - Uses
"compatible"DTS field to determine node type across different silicon vendors - Fix capitalization on port names (e.g.
device.serial) to match ECMA-419 - Includes display, RTC, and DigitalBank in
deviceglobal
- Use Zephyr
- mcconfig
- Supports Zephyr overlays in manifests
- Escape
#in Zephyr filenames (necessary for Node private modules) - TypeScript now supported on Zephyr
- ESLint checks JavaScript and TypeScript source code (
-lcon command line) - TypeScript checks JavaScript source code (
-tcon command line)
- testmc
- Option to override screen size because many graphics tests assume a 240 x 320 display
- Checksum display driver compatible with ECMA-419 Display driver
- TypeScript
- Add typings
- Correct
deflate.tsfile name todeflate.d.ts
- Documentation
- Examples
- Fixes some issues reported by ESLint
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 X / Twitter at @moddabletech