Moddable was honored to exhibit at FOSDEM 2023 in Brussels, Belgium. FOSDEM is the preeminent open source software event in Europe. We were very fortunate to have a stand dedicated to open source Embedded JavaScript because lingering pandemic concerns limited the number of exhibitors. Our stand was in the IoT area, which was busy throughout… Read More

The end of the year is an opportunity to look back at the amazing progress Moddable has made in our mission to bring the power of the JavaScript ecosystem to embedded developers. The Moddable SDK continues to grow in both breadth and depth to support new devices, new capabilities, and familiar APIs, giving developers an… Read More

All year the team at Moddable works with our clients and community of developers to bring the power of the JavaScript ecosystem to embedded developers. The end of the year at Moddable is an opportunity for us to build a project using the technology we’ve been building all year. This year’s project weaves Neopixels into… Read More

Everyone involved in delivering software for resource-constrained hardware knows that performance is a key challenge. Low-cost hardware has just enough performance to make a great product possible, but only if the software is careful not to overwhelm the hardware. It is easy to notice that a product is performing slowly. What’s difficult is figuring out… Read More

Maintaining a reliable network connection to the internet is fundamental to IoT products. Unfortunately, network connections aren’t reliable: they can fail in many ways. Products must be engineered to operate reliably on unreliable infrastructure. Many products use Wi-Fi to connect to the internet and Moddable has worked with many clients to successfully deliver products that… Read More

Comparing and copying JavaScript objects are fundamental operations that are remarkably complex to implement correctly and efficiently. Because these operations are not built into the JavaScript language, various solutions have arisen to make life easier for developers. Web browsers provide the structuredClone function to make a deep copy of an object. Node.js provides deepEqual assertions… Read More

Introduction Microcontrollers don’t usually have a built-in file system. Projects that need a file system have a choice of which file system to use. Popular choices include the FAT file system and SPIFFS, and the Moddable SDK supports both. These file systems work well, but have limitations that make them difficult for developers to work… Read More

Making sure that the Moddable SDK and the XS JavaScript engine run correctly and reliably is a big project. There are hundreds of features and APIs that must be verified on a wide variety of devices. Testing on devices is particularly challenging, as many don’t even have enough storage space to hold the test suite.… Read More

With just a little software, you can quickly turn an inexpensive microcontroller into a powerful custom remote control for many of the devices you already own. Devices like televisions, media players, mobile phones, and computers support external keyboards and remote controls connected using Bluetooth Low Energy (BLE). Many microcontrollers, including the ESP32 found in Moddable… Read More

Delivering a modern user experience on low-cost embedded hardware has been a key focus of the Moddable SDK from the start. The Moddable SDK is regularly updated with new rendering capabilities to expand the kinds of user experiences that can be created. Last year support for animated GIFs arrived and earlier this year it got… Read More

The fonts displayed on the screen of an IoT product are a key part of its brand, establishing the overall feel of the product. All of Moddable’s commercial clients use the custom font support in the Moddable SDK to brand their products. While it has always been possible to incorporate custom fonts into products, it… Read More

JavaScript applications for embedded systems frequently work with memory buffers to perform a wide variety of tasks. Scripts gain tremendous power by being able to operate directly on the native data of the classes they use. The XS JavaScript engine at the core of the Moddable SDK contains extensive support for working with memory buffers.… Read More

Over the past few months, Moddable has developed products for clients in the manufacturing and automotive industries. One client is building a monitoring system for factories; the other, a system to detect maintenance issues in cars. To my surprise, both clients asked us to support Ethernet in these projects. As it turns out, people still… Read More

One of the defining features of the Moddable SDK is its outstanding support for displays in IoT products. Much of that work has focused on LCD touch screens, but ePaper displays have also been supported from the beginning. Recent work has brought broader and deeper support for ePaper displays, making the Moddable SDK the best… Read More

The latest addition to the Moddable SDK is a delightfully silly example app to display animated GIFs from the popular GIPHY web site. The app lets the user enter a search term, uses GIPHY’s REST API to search for a GIF, downloads it, and then displays the GIF onscreen in a continuous loop. Despite the… Read More

Difficult as it is to believe, we have reached the end of the summer and the end of Josué Kpodo’s time with us as an intern. In this post, Josué provides a final update on his work gathering user needs and prior art to inform the creation of the TC53 Sensor Data Provenance Specification draft.… Read More

Moddable Summer Intern 2020

It is my pleasure to introduce this blog post written by Josué Kpodo, who has joined the Moddable team for the summer as an intern. Josué comes to us from Michigan State University where he recently completed his undergraduate degree in Computer Science. In this post, Josué will share a bit about his background and… Read More

The color wheel is a common user interface element in desktop and mobile apps that allows the user to select a color. User interfaces to select a color are rare on displays powered by embedded microcontrollers. When present, the interface is primitive, perhaps an array of color boxes. The color-picker example implements a true color… Read More

Today, we released a major update to improve our support for the popular ESP32 microcontroller. This update includes four major new features: Faster, more reliable ESP32 build system Upgrade to ESP-IDF v3.3.2, a Long Term Support release from Espressif Lightweight NimBLE Bluetooth LE stack for ESP32 Execution of individual build steps — clean, build, deploy,… Read More

HACKberry is a 3D-printable bionic arm project managed by Mission ARM Japan. The goal of HACKberry is to make inexpensive prosthetics more widely available by significantly reducing the cost. The HACKberry arm is also remarkably customizable for users because both the hardware and software are open source. Naturally, we at Moddable were very interested when… Read More

The XS JavaScript engine brings the many benefits of modern JavaScript to embedded systems like those that power IoT products. The latest release of XS is a major step forward. It delivers new language features, performance optimizations, improved conformance with the ECMAScript specification, and updated support for the Secure ECMAScript proposal. This blog post summarizes… Read More

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

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

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

There are countless JavaScript libraries available for the web. Since the XS JavaScript engine in the Moddable SDK implements the same JavaScript language used in web browsers, it seems reasonable to assume these libraries may also be used on embedded devices. We often get the question, “can I use [insert name of web JavaScript library… 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

Moddable is working hard to make it much easier to add displays to consumer electronics products. A display shows more information quickly and concisely than a few blinking lights or a voice interface. But, it is challenging today to build a product with a display at a reasonable cost with a modern user interface. One… 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