Moddable Six

Advanced touch screen with audio, Wi-Fi, and BLE

Designed and built for developers

Moddable Six is powered by the popular ESP32-S3 240 MHz Xtensa processor (dual core), integrated Wi-Fi and BLE 5.0, 8 MB of flash memory, 8 MB PSRAM and 520 KB of RAM. Its bright 2.4" QVGA IPS display has a backlight control and a capacitive multi-touch screen. This display is driven with a parallel interface for blazing speed. Also Tearing Effect hardware has been enabled for ultra-smooth animation and screen rendering.

Moddable Six is powerful enough for the most demanding projects, and features many advanced development options because it is built on the ESP-IDF SDK.

Moddable Six Specifications

  • ESP32-S3 microcontroller
    • Dual core, 240 MHz Xtensa processor
    • Wi-Fi
    • BLE 5.0
    • 520 KB RAM
    • 8 MB PSRAM
    • 8 MB flash
  • 2.4” LCD display
    • High brightness IPS display
    • Looks great from every angle
    • 240 x 320 pixels (QVGA)
    • Portrait and landscape orientations
    • 16-bit color
    • ST7789 display controller
    • Backlight brightness control
    • GT911 capacitive multi-touch controller
    • High-speed 8-bit parallel display bus
  • Audio
    • Built-in speaker
    • Filtering and PAM8302 amplification circuits
    • Audio signal on external header
  • 20 pins for external components
    • Digital, I²C, SPI, PWM, analog input, pulse count
    • Qwiic/Stemma QT I2C connector
    • RGB NeoPixel LED
  • Power
    • 3.3V and 5V outputs
    • 5V input
  • Moddable Programmer port
    • Debug native code with gdb
    • Install project firmware (alternative to Micro-USB)
  • Fits into your project design
    • Thin form factor
    • Mounting holes
  • Moddable SDK
    • Modern, industry standard JavaScript for rapid development of robust, secure firmware
    • Native C code for performance and integrating existing libraries
    • Industry standard Web Workers API to make full use of both CPU cores
    • Piu UI framework for building touch user interfaces
    • Rendering extensions for SVG outlines, QRCodes, and animated GIF
    • Use any TrueType/OpenType font
    • ECMA-419 APIs for I/O
    • Compatible with ECMA-419 sensor drivers
    • Secure TLS connections with HTTP, WebSockets, and MQTT
    • Local networking with mDNS
    • Fully open source – available on GitHub
    • Thoroughly documented
    • Hundreds of example apps
    • Supports mods for fast development and quick updates
  • Node-RED MCU Edition
    • Fully supports Node-RED MCU Edition
    • Quickly build UIs with Node-RED dashboard
    • Run huge projects with built-in 8MB PSRAM

This is a video capture of the Moddable Six running an app. Notice the smooth transition movement between screens that is available due to the extremely fast redraw rate of 60+ FPS.

Advanced Display Technology

Moddable has long led the way in delivering the highest quality user experience possible on low-cost microcontrollers. Moddable Six raises the bar in several important ways with a combination of thoughtful hardware design and sophisticated software.

The IPS display is connected to the ESP32-S3 using a high-speed parallel bus that delivers nearly 10 million pixels a second, easily supporting animation at 60 FPS (and beyond). The display provides a "tearing effect" output that makes flicker-free animation possible by synchronizing drawing to the hardware refresh, just like mobile phones.

An all-new display driver has been implemented to ensure the Piu UI framework and Poco renderer can take full advantage of the high speed, flicker-free display with minimal CPU overhead. The display driver also supports dynamic frame rate control.

The GT911 touch controller in Moddable Six has a touch interrupt indicating when new touch data is available. Moddable Six uses this to reduce the CPU overhead of touch input by eliminating polling for touch events. The updated ECMA-419 GT911 driver fully supports the touch interrupt.

The result of all these technical achievements is the kind of smooth, responsive user experience that delight customers.

Moddable Six Pinouts

The expansion header on Moddable Six has thirteen programmable pins that allow you to communicate with variety of peripherals using digital, analog input, PWM, RMT, I²C, and SPI. There's also 3.3V, 5V, and ground pins to power your peripherals.

The programmer header has four additional pins which you can use for serial or digital IO when using the Micro-USB port for power and programming.

For convenience, there's also a built-in RGB LED and programmable push button.

Moddable Six Dimensions

Working with Moddable Six

Graphics

GIPHY Goes to ESP32

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.

Continue reading...
Graphics

Introducing an Expanding Keyboard for Small Screens

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.

Continue reading...
JavaScript

XS: Secure, Private JavaScript for Embedded IoT

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.

Continue reading...
JavaScript

Building an Apple Media Service Client with the Moddable SDK

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.

Continue reading...
Documentation

View the Developer Guide

The hardware specific Developers Guides are part of the extensive documention available on the Moddable GitHub site.

Typography

Using More Fonts More Easily in IoT Products

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.

Continue reading...
Networking

Building BLE Keyboards & Media Controllers with the Moddable SDK

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).

Continue reading...
UX

HACKberry Bionic Hand

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.

Continue reading...
Networking

Web Services Series Part 2: Making Secure Network Requests

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.

Continue reading...
Graphics

Scalable Outlines: New Flexibility for Embedded UX

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.

Continue reading...
JavaScript

JavaScript for Embedded

Moddable is the only embedded engine provider on the JavaScript language committee. We joined to ensure JavaScript remains a great language for use in embedded. Here's our original presentation to the committee.

Continue reading...
JavaScript

(Very Experimental) TypeScript Support in the Moddable SDK

Moddable believes JavaScript is the best language for building IoT products. We’ve heard from many developers that they agree with us, but that it is important to them to be able to use TypeScript.

Continue reading...
Graphics

Pushing PNG Images to a Display

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.

Continue reading...
Networking

The Case for Ethernet

This article explains the benefits of using Ethernet instead of Wi-Fi. It also walks you through the steps you need to take to incorporate Ethernet into your projects built with the Moddable SDK.

Continue reading...
Graphics

A Color Picker for Microcontrollers

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.

Continue reading...
JavaScript

Moddable SDK Improvements for ESP32 Projects

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,…

Continue reading...
Projects

A Very NeoPixel Christmas

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…

Continue reading...