Espruino is an open-source
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
interpreter for
single board microcontrollers. It is designed for devices with small amounts of RAM (as low as 8kB).
Overview
Espruino was created by Gordon Williams in 2012 as an attempt to make microcontroller development truly multiplatform.
Though initially not open-source, the Espruino firmware was offered as a free download for
STM32
STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M33F, Cortex-M7F, Cortex- ...
microcontrollers. It was made open-source in 2013 after a successful Kickstarter campaign for a development board running the software. Since the original Espruino board, there have been a number of new official development boards including the small USB thumb-drive-sized Espruino Pico, the Wifi-equipped Espruino WiFi, the Puck.js with built-in Bluetooth and the Pixl.js with a built-in
LC display and
Arduino
Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed und ...
shield compatibility. In addition to the official boards, Espruino runs on approximately 40 other types of development boards
including the
ESP8266
The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.
The chip was popularized in the English-speaking maker community in August ...
and BangleJS smartwatch.
There is a large body of reference material for Espruino including over 100 tutorials as well as the book Making Things Smart which contains a selection of hardware projects that can be created with Espruino-based
microcontrollers
A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs ( processor cores) along with memory and programmab ...
.
To achieve maximal memory efficiency, Espruino executes code from source directly inside the parser, without the use of an
Abstract Syntax Tree
In computer science, an abstract syntax tree (AST), or just syntax tree, is a tree representation of the abstract syntactic structure of text (often source code) written in a formal language. Each node of the tree denotes a construct occurring ...
or intermediate
bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
.
Hardware

The first official development board was the Original Espruino. Later boards are available in a variety of form factors. The Original Espruino was followed by the Espruino Pico, Espruino WiFi, Puck.js and Pixl.js. A breakout board featuring the MDBT42Q Bluetooth LE module, the same used in the Puck.js and Pixl.js, is also available.
File:Espruino-original.jpg, Original Espruino
File:Espruino-pico.jpg, Espruino Pico
File:Espruino-wifi.jpg, Espruino WiFi
File:Espruino-puck.jpg, Espruino Puck.js
File:Espruino-pixl.jpg, Espruino Pixl.js
File:Espruino-mdbt42q.jpg, Espruino MDBT42Q Breakout
Software
Espruino programs are written using JavaScript. The Espruino IDE is available as a web-based app, a Google Chrome App and as a native Windows application. Alternative methods of programming Espruino boards include using terminal programs such as
PuTTY
Putty is a material with high plasticity, similar in texture to clay or dough, typically used in domestic construction and repair as a sealant or filler. Although some types of putty (typically those using linseed oil) slowly polymerise and be ...
on Windows.
License
All of Espruino is Open Source. The different parts are licensed as follows:
* Espruino Firmware -
Mozilla Public License, version 2.0
* Espruino Code Samples -
MIT License
The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license co ...
* Espruino Documentation -
Creative Commons Attribution-ShareAlike 3.0
* Espruino Hardware Design Files -
Creative Commons Attribution-ShareAlike 3.0
References
{{reflist
JavaScript
Microcontrollers
Microcontroller software
Physical computing
Internet of things