Scripts and Things banner

This Wednesday, we wrapped up year two of Scripts & Things, our meetup on JavaScript development for the microcontrollers and embedded systems that make up the Internet of Things. We concluded 2019 with a demo night featuring a variety of great demos from Scripts & Things members. Each of the projects presented at the meetup… Read More


The latest update to the XS JavaScript engine continues to focus on adapting and optimizing JavaScript for embedded systems. In this release, the majority of these improvements take place during the preload phase, part of the build process. Additionally, this release adds support for top-level await and WeakRef, two new JavaScript features expected to be… Read More


This blog post is about performance improvements in the way the Moddable SDK reads SPI flash. That might not sound exciting, but the result is: our favorite rendering benchmark (balls) runs 50% faster. When you update to the latest Moddable SDK, you’ll get those changes automatically. The details behind the improvements are an interesting window… Read More


Firmata is a popular protocol for controlling remote hardware resources. It is often used to allow a more powerful device running a non-real time operating system, such as Linux, to control the hardware ports of a less powerful microcontroller device with a real-time operating system (or no operating system at all). The most common use… Read More


The latest release of our XS JavaScript engine puts in place fundamental new capabilities to advance Moddable’s mission of safely opening IoT products to third party software. These new capabilities are implementations of proposals on track for standardization in Ecma TC39, the JavaScript language committee. The two most significant developments are described in the “Truly… Read More


This article describes my work to build a classic LED style clock using the Moddable SDK. That might surprise you because a key feature of the Moddable SDK is the ability to add interactive, animated touch screens to IoT products. An IoT product that incorporates a well designed touchscreen interface is a joy to use.… Read More


Introduction Text entry on small IoT device screens can be frustrating to use because when a touch keyboard designed for mobile devices is shrunk down to fit on a small screen, accurate typing becomes too difficult. That makes entering a Wi-Fi password, for example, an unpleasant and challenging experience. In this article we introduce our… Read More


At Moddable, we believe individuals should have control of the software in the products they own. Some people will use that control to write their own software, while others will use that control to choose the software that delivers the behaviors and privacy they design. Moddable’s extensive work in JavaScript contributes to that goal by… Read More


The Moddable SDK now supports rotating the image shown on displays using features built into some display controllers. This allows the display to be rotated to 0, 90, 180, and 270 degrees at any time with no added overhead. Build-time Rotation with Software The Moddable SDK has always included support for drawing to displays at… Read More


The Qualcomm QCA4020 is a low-power, ARM-based dual-core SoC with integrated Wi-Fi and Bluetooth, for communication with IoT devices and cloud services. The Moddable SDK provides modern tools and technologies to developers for building applications on resource constrained microcontrollers. Today we are pleased to announce Moddable SDK support for the Qualcomm QCA4020, bringing modern, efficient,… Read More


The latest push of the XS JavaScript engine implements support for the forthcoming ECMAScript 2019 standard. The ECMAScript 2019 standard includes several new capabilities and refinements but no major new features. A complete summary of the changes with links to details is available on the “2ality – JavaScript and more” blog by Axel Rauschmayer. For… Read More


The JavaScript language is preparing to add built-in support for integers of arbitrary size with a new feature named BigInt. The built-in Number type is accurate to 53-bits of precision, which is insufficient for many tasks. By standardizing BigInt into the language, developers benefit from having a single API available in all environments and JavaScript… Read More


Sometimes a display is just a display. You don’t need an interactive user interface, you just need to show an image. Using the Moddable SDK, this is easy to do by building a small application to draw the image. There are examples to display a PNG, an animated GIF, and to stream JPEG images from… Read More


The Christmas season brings decorations and lights. My neighborhood has an assortment of fixed multi-color incandescent and LED lights. Then there is one house with a big light show, complete with low-power FM transmission of a soundtrack to sync with the lights. While I don’t want to invest the time and expense in setting up… Read More


Scripts and Things banner

This Wednesday, we wrapped up year one of Scripts & Things, our meetup on JavaScript development for the microcontrollers and embedded systems that make up the Internet of Things. We concluded 2018 with lively discussions before, during, and after a series of demos. A big thank you to everyone who joined in the fun —… Read More


iOS devices from Apple provide BLE services for accessories to enhance user experience and interactions. The Apple Media Service (AMS) allows accessories to interact with the iOS media player. We thought it would be fun to build an ESP32 color touch screen interactive media player accessory to control the iPhone media player. We built it… Read More


IMPORTANT: Web Thing API support in the Moddable SDK is deprecated as of August 28, 2019. One of the issues that plagues IoT is the lack of standards for interoperability. There are too many IoT products that connect to only one cloud service or interoperate only with other products from the same company. At Moddable… Read More


There’s been a lot of good work in the Moddable SDK in recent months. This blog post highlights a some of the recent additions and improvements. mDNS The mDNS protocol is arguably the most robust solution available for IoT devices connected to the same local network to discover one another. It is a mature technology… Read More


Scripts and Things banner

Earlier this week Moddable hosted the second meeting of Scripts & Things, our meetup about embedded software development using JavaScript on microcontrollers and other embedded systems. We were pleased to have a diverse group of web developers, embedded developers, and even some brand new programmers join us and get excited about JavaScript for embedded. Demos… Read More


Scripts and Things banner

Last week we hosted the first edition of Scripts & Things, our meetup about embedded software development using JavaScript on microcontrollers and other embedded systems. The event was enjoyed by all in attendance and will serve as a launching pad for future meetups in the series. Presentations Our goal with Scripts & Things is to… Read More


NeoPixels are strings of bright LEDs that have been popular within the maker community for adding animated illumination to objects. Several recent ESP32 based development boards have built-in NeoPixels, including the … Read More


Last weekend, I attended Sketching in Hardware 2018 in Detroit, Michigan. Sketching is a small conference that brings together: builders of tools that assist consumer electronics developers and Makers, high-profile users of those tools (or educators of future users), well-known academics who run research programs on development tools, digital fabrication, or IoT ecosystems. I have… Read More


Scripts and Things banner

The Moddable team is starting a Meetup about embedded software development using JavaScript on microcontrollers and other embedded systems. The group is called Scripts & Things and our first gathering will be on August 22nd at the Moddable office in downtown Palo Alto. We chose the name Scripts & Things because the Meetup focuses on… Read More


Windows is the development platform used by embedded software developers simply because many semiconductor companies only provide their development and debugging tools for Windows. Many large companies require their employees to use a common operating system and, more often than not, that platform is Windows. And, of course, many software engineers simply prefer to do… Read More


We’ve recently enabled the JavaScript eval function on embedded devices using the XS JavaScript engine. Our long-held position is unchanged: it is almost always a bad idea to compile JavaScript on an embedded device. The reasons that eval are used on the web, for example, do not typically apply to embedded development. Still, compiling scripts… Read More


We are pleased to announce Bluetooth Low Energy (BLE) protocol support in the Moddable SDK, enabling both BLE peripheral and central device development. BLE is available now on Espressif ESP32 and Silicon Labs Blue Gecko microcontrollers. This article describes the BLE features supported. It includes BLE example code in JavaScript. If you are not familiar… Read More


The first article of this series describes how to issue HTTP requests in applications built with the Moddable SDK using information from REST APIs. This article builds on the concepts from the first article and explains how to use the Moddable SDK’s TLS stack in applications to make HTTPS requests. What is TLS? Transport Layer… Read More


The Moddable team recently exhibited and presented at Maker Faire Bay Area. Exhibit and Demos We had a booth in the Expo Hall, surrounded by other tech companies, makers, and artists. No Maker Faire booth is complete without demos or a hands-on activity. We brought demos focused on three things: scripts, screens, and apps for… Read More


The Moddable SDK helps developers build applications for low cost, constrained microcontrollers. Last spring, we embarked on a project to use a processor from Silicon Labs to prototype a low cost, low power IoT device that includes proprietary radio communication. The Silicon Labs line of Energy-Friendly MCUs are very efficient in their use of power,… Read More


  The Moddable SDK includes modules that implement a variety of networking protocols, giving developers the flexibility to build applications that interact with all sorts of other devices and cloud services. A common way to communicate with cloud services is through RESTful APIs, which are based on HTTP. You can find several basic example apps… Read More


In recent months, Moddable has received inquiries for the ability to render a QR Code in the Moddable SDK. This article describes the module we created to support QR Code rendering, together with some of the design and implementation choices we made along the way to provide efficient and flexible QR Code support. What’s a… Read More


In May of 2017, Moddable Tech presented our XS JavaScript engine to at the Ecma TC-39 meeting at Google New York. We were graciously invited by Brendan Eich, the creator of JavaScript, to share our work applying JavaScript to extremely resource constrained embedded hardware. Brendan believed it would be valuable for the committee to see… Read More


The most recent push to the Moddable repository on GitHub is a big one. It includes the following:

  • New regular expression engine — A completely new regular expression engine written from scratch for use by XS, Moddable’s JavaScript engine. It is almost 10x smaller than its predecessor with more features and improved conformance. We believe…

Read More


Introduction The JavaScript language includes support for regular expressions, a compact and powerful tool to perform search and replace operations on strings. Regular expressions can be considered a separate language within JavaScript, with its own syntax and behaviors. Just as implementing a JavaScript engine is a major undertaking, properly implementing a new regular expression engine… Read More


The Moddable team is using this blog to share news about what we’re up to. Much of the content will have technical details about embedded development with JavaScript, including information about features of the Moddable SDK, descriptions of interesting projects, and tips for app developers. Other posts will be discussions of our mission to open… Read More