Espruino

Espruino is an open-source JavaScript 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 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 shield compatibility. Espruino is operating system used on BangleJS and BangleJS2 smartwatch. In addition to the official boards, Espruino runs on approximately 40 other types of development boards including the ESP8266.

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.

To achieve maximal memory efficiency, Espruino executes code from source directly inside the parser, without the use of an Abstract Syntax Tree or intermediate bytecode.

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.

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 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
 * Espruino Documentation - Creative Commons Attribution-ShareAlike 3.0
 * Espruino Hardware Design Files - Creative Commons Attribution-ShareAlike 3.0