Copyright 2019-2023 Moddable Tech, Inc.
Revised: April 6, 2023
This directory contains documentation for the Moddable SDK.
The Getting Started Guide provides step-by-step instructions for installing, configuring, and building the Moddable SDK for macOS, Linux, and Windows. It also provides instructions for keeping the Moddable SDK tools and build environment up to date over time.
Guides for working with specific microcontrollers supported by the Moddable SDK are in the devices directory. These include links to additional detail for specific development boards including Moddable One, Moddable Two, Moddable Three, and Moddable Four.
- ESP32 by Espressif
- ESP8266 by Espressif
- Gecko by Silicon Labs
- QCA4020 by Qualcomm
- Pico by Raspberry Pi
- nRF52 by Nordic Semiconductor
The JavaScript APIs for the modules in the Moddable SDK are documented in the following files:
- Base: Fundamental runtime capabilities including time, timer, debug, instrumentation, and UUID
- Commodetto: Bitmap graphics library including parsing and rendering of BMP, JPEG, and PNG images, and BMFont files; classes for operating on bitmaps, and pixel format conversion
- Poco: Examples and reference for using the JavaScript and C APIs of the Poco renderer
- Crypt: Cryptographic primitives
- Data: Base64 and hex encoding and decoding
- Files: Storage capabilities including files, flash, preferences, resources, and ZIP
- Network: Network socket and protocols built on socket including HTTP, WebSockets, MQTT, mDMS, DNS, SNTP, telnet, and ping; also, Wi-Fi APIs
- Secure socket: Using the TLS /SSL and managing certificates
- BLE: Creating Bluetooth LE clients and servers, including a guide to examples
- Pins: Hardware protocols including digital (GPIO), analog, PWM, I2C, SMBus, and servo
- Audio out: Playing audio and adding audio data to projects
- Piu: User interface framework
- Die cut: Using complex clipping shapes with Piu
- Expanding keyboard: Adding an animated expanding keyboard to Piu projects
- Keyboard: Adding a touch keyboard to Piu projects
- Localization: Using JSON data to efficiently localize Piu applications
The xs directory contains documentation about the XS JavaScript engine.
- ROM Colors: Optimization applied by the XS linker to improve look-up speed of properties of objects stored in ROM
- XS Conformance: Detailed test results for XS from the test262 language test suite
- XS Differences: Discussion of design considerations for implementing JavaScript for a resource constrained target
- XS Platforms: Porting XS to a new host
- XS in C: API to bridge between C and JavaScript code
- XS linker warnings: Discussion of warnings given by the XS linker when preparing code to be stored in ROM
- Handle: How native implementations of JavaScript classes can reduce memory fragmentation
- Mods: Working with archives of precompiled JavaScript modules (mods)
- Preload: Reducing memory use and start-up time of JavaScript modules
- xsbug: Using xsbug, the source-level debugger for XS
- xst: Using
xst
, the command line tool for running test262 conformance tests
The tools directory contains documentation for developer tools.