Re-Introducing Moddable Six: More Power You Can Use

December 9, 2025 | Peter Hoddie, Principal

Moddable Six Update

We're pleased to announce an upgrade of Moddable Six, our most popular development board for Embedded JavaScript. In fact, we sold out of the original production! The rise of realtime AI APIs inspired us to upgrade the audio capabilities of Moddable Six. We've added a built-in microphone and dramatically improved the audio output. Meanwhile, advances in the Moddable SDK make it even easier for you to use the full power of the Moddable Six hardware.

Microphone – We're Listening

The biggest change in the new Moddable Six is the addition of a microphone. It is located on the front of the board, just below the screen – perfect for interactive AI chat applications. It is a high-quality, low-power MEMS microphone by TDK. The PDM interface minimizes the number of GPIOs used without sacrificing quality.

The API for the microphone is Audio In Class introduced in the latest ECMA-419 standard. It takes just a few lines of JavaScript to capture audio.

const mic = new AudioIn({
    onReadable(byteLength, sampleCount) {
        const samples = new Int16Array(sampleCount);
        this.read(samples);
        // audio samples are ready to use!
    }
});
mic.start();

Audio Output – Loud and Clear

We love having a speaker on Moddable Six: a few simple sounds make a user experience feel so much more responsive and alive. We completely redesigned the audio circuitry to boost audio output and improve its clarity. We even switched to a 4-layer printed circuit board to eliminate noise in the analog signals. We also found space to increase the size of the speaker enclosure just a bit. Put it all together, and Moddable Six sounds better than ever.

The code to play audio on Moddable Six is easy too. You can use Piu Sound to add sound effects to an interactive user experience and conversationalAI to stream interactive audio chats. You can also use low-level Audio Output class for full control of audio buffering, as in the following example.

let snd = new MAUD(new Resource("bell"));
snd = new Uint8Array(snd.buffer, snd.byteOffset + snd.byteLength, snd.bufferSamples * 2);
snd.position = 0;

const output = new AudioOut({
    onWritable(byteLength) {
        if (snd.position === snd.byteLength)
            return this.stop();

        const use = Math.min(snd.byteLength - snd.position, byteLength);
        this.write(snd.subarray(snd.position, snd.position + use));
        snd.position += use;
    }
});
output.start();

Unprecedented Graphics Performance

The most amazing feature of Moddable Six is still its video performance. Moddable Six features an 8-bit parallel video for graphics that allows us to display graphics 4x to 8x faster than a traditional 1-bit video interface. Moddable Six is also one of the only boards to support the tearing effect pin, which allows us to eliminate the tearing common in most embedded displays. The result is beautifully smooth graphics at 60 FPS or more. You've probably never seen an ESP32 microcontroller render graphics that look this good.

To show you how it's done, we've included several complete example applications in the Moddable SDK. They look more like mobile apps than embedded, and they run beautifully on Moddable Six.

Web Bluetooth Too

The Moddable SDK continues to evolve with a new release every month. We recently added support for the popular Web Bluetooth JavaScript API. This is the same API used in web pages. Web Bluetooth is the easiest way to connect to BLE peripherals, often with just a few lines of code. Compare that to the hundreds of lines to do the same in C. To show how simple it can be, here's the classic BLE heart rate monitor example using Web Bluetooth for Moddable Six.

const device = await bluetooth.requestDevice({
    filters: [{ services: ['heart_rate'] }]
});

const server = await device.gatt.connect();
const service = await server.getPrimaryService('heart_rate');

const characteristic = await service.getCharacteristic('heart_rate_measurement');
await characteristic.startNotifications();

characteristic.addEventListener('characteristicvaluechanged', (event) => {
    trace(`Heart Rate: ${event.target.value.getUint8(1)} BPM\n`);
});

And because Web Bluetooth is widely used on the web, there are lots of resources to learn about it and sample code to accelerate your development.

Available Now

Moddable Six brings together powerful hardware with Embedded JavaScript. The combination gives you the foundation to quickly begin developing your embedded projects without wasting time on puzzling over complex configurations and obscure APIs.

In this time of rising prices, Moddable has kept the price unchanged from the original release. All that power and convenience is available for just $29.99. Moddable Six is available for immediate delivery worldwide.