Espruino Explained

Espruino
Developer:Gordon Williams
License:MPL 2.0

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[1]).

Overview

Espruino was created by Gordon Williams in 2012 as an attempt to make microcontroller development truly multiplatform.[2] Though initially not open-source, the Espruino firmware was offered as a free download for STM32 microcontrollers.[3] It was made open-source in 2013 after a successful Kickstarter campaign[4] 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,[5] the Wifi-equipped Espruino WiFi, the Puck.js with built-in Bluetooth and the Pixl.js[6] with a built-in LC display and Arduino shield compatibility. Espruino is the operating system used on the BangleJS and BangleJS2 smartwatches. In addition to the official boards, Espruino runs on approximately 40 other types of development boards[7] [8] including the ESP8266.[9] [10]

There is a large body of reference material for Espruino including over 100 tutorials[11] as well as the book Making Things Smart[12] 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.[13]

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 Web-Based IDE
Developer:Gordon Williams
License:Apache License 2.0

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.[14] Alternative methods of programming Espruino boards include using terminal programs such as PuTTY on Windows.[15]

License

All of Espruino is Open Source. The different parts are licensed as follows:

See also

Notes and References

  1. Web site: Espruino Performance Notes. www.espruino.com. en. 2018-06-04.
  2. Book: Make Boards Guide 2017.. 2017. Make Books. Senese, Mike. 9781680453423. 33. 987280329.
  3. News: A JavaScript interpreter for ARM 'micros. 2012-10-05. Hackaday. 2018-06-01. en-US.
  4. Web site: Espruino: JavaScript for Things. Kickstarter. en-US. 2018-06-04.
  5. News: Javascript by the Pico Make. 2014-11-11. Make: DIY Projects and Ideas for Makers. 2018-06-04. en-US.
  6. Web site: Angetestet: Pixl.js - Espruino-Bastelboard mit Bluetooth und Display. Make. Make. de-DE. 2018-06-04.
  7. Book: Make Boards Guide 2017.. 2017. Make Books. Senese, Mike. 9781680453423. 35. 987280329.
  8. News: Espruino: The Challenges of Running an Open Source Hardware and Software Company Make. 2017-06-01. Make: DIY Projects and Ideas for Makers. 2018-06-01. en-US.
  9. Book: Node.js for Embedded Systems.. 2015. Oreilly & Associates Inc. Mulder, Patrick.. 9781491928967. 45. 965413450.
  10. News: Espruino For You Sir - Scargill's Tech Blog. 2017-04-11. Scargill's Tech Blog. 2018-06-04. en-GB.
  11. Web site: Tutorials and Examples - Espruino. www.espruino.com. en. 2018-06-04.
  12. Book: F., Williams, Gordon. Making things smart : easy embedded JavaScript programming for making everyday objects into intelligent machines. 9781680451894. First. San Francisco, CA. 964820771. 2017.
  13. Web site: Espruino Documentation .
  14. Web site: Espruino Web IDE. www.espruino.com. 2019-05-28.
  15. Web site: Using Alternative Terminal Apps - Espruino. www.espruino.com. 2019-05-28.
  16. Web site: espruino/Espruino. GitHub. en. 2018-06-04.
  17. Web site: espruino/EspruinoDocs. GitHub. en. 2018-06-04.
  18. Web site: espruino/EspruinoBoard. GitHub. en. 2018-06-04.