Espruino is an open-source JavaScript interpreter for single-board microcontrollers. It is designed for devices with small amounts of RAM (as low as 8 kiB[1]).

Espruino
Developer(s)Gordon Williams
Repositorygithub.com/espruino/Espruino
LicenseMPL 2.0
Websitewww.espruino.com

Overview

edit

Espruino was created by Gordon Williams in 2012 as an attempt to make microcontroller development truly multiplatform.[2][3] Though initially not open-source, the Espruino firmware was offered as a free download for STM32 microcontrollers.[4] It was made open-source in 2013 after a successful Kickstarter campaign[5] for a development board running the software.[6] Since the original Espruino board, there have been a number of new official development boards including the small USB thumb-drive-sized Espruino Pico,[7] the Wifi-equipped Espruino WiFi, the Puck.js with built-in Bluetooth and the Pixl.js[8] 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[9][3] including the ESP8266.[10][11]

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

Hardware

edit
 
The Original Espruino, the first official development board, offers 44 GPIO pins, Micro SD card support, a Micro USB interface and controllable LEDs and buttons. It has 256 kiB of flash and 48 kiB of RAM and runs on a 72 MHz ARM Cortex M3 processor.

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

edit
Espruino web-based IDE
Developer(s)Gordon Williams
Repositorygithub.com/espruino/EspruinoWebIDE
LicenseApache License 2.0
Websitewww.espruino.com/ide/

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

License

edit

All of Espruino is open source. The different parts are licensed as follows:

See also

edit

References

edit
  1. ^ "Espruino Performance Notes". www.espruino.com. Retrieved 2018-06-04.
  2. ^ Make Boards Guide 2017. Senese, Mike. Make Books. 2017. p. 33. ISBN 9781680453423. OCLC 987280329.{{cite book}}: CS1 maint: others (link)
  3. ^ a b "Espruino: The Challenges of Running an Open Source Hardware and Software Company | Make". Make: DIY Projects and Ideas for Makers. 2017-06-01. Retrieved 2018-06-01.
  4. ^ "A JavaScript interpreter for ARM 'micros". Hackaday. 2012-10-05. Retrieved 2018-06-01.
  5. ^ "Espruino: JavaScript for Things". Kickstarter. Retrieved 2018-06-04.
  6. ^   {{{1}}}.
  7. ^ "Javascript by the Pico | Make". Make: DIY Projects and Ideas for Makers. 2014-11-11. Retrieved 2018-06-04.
  8. ^ Make. "Angetestet: Pixl.js - Espruino-Bastelboard mit Bluetooth und Display". Make (in German). Retrieved 2018-06-04.
  9. ^ Make Boards Guide 2017. Senese, Mike. Make Books. 2017. p. 35. ISBN 9781680453423. OCLC 987280329.{{cite book}}: CS1 maint: others (link)
  10. ^ Node.js for Embedded Systems. Mulder, Patrick. Oreilly & Associates Inc. 2015. p. 45. ISBN 9781491928967. OCLC 965413450.{{cite book}}: CS1 maint: others (link)
  11. ^ "Espruino For You Sir - Scargill's Tech Blog". Scargill's Tech Blog. 2017-04-11. Retrieved 2018-06-04.
  12. ^ "Tutorials and Examples - Espruino". www.espruino.com. Retrieved 2018-06-04.
  13. ^ F., Williams, Gordon (2017). Making things smart : easy embedded JavaScript programming for making everyday objects into intelligent machines (First ed.). San Francisco, CA. ISBN 9781680451894. OCLC 964820771.{{cite book}}: CS1 maint: location missing publisher (link) CS1 maint: multiple names: authors list (link)
  14. ^ "Espruino Documentation".
  15. ^ "Espruino Web IDE". www.espruino.com. Retrieved 2019-05-28.
  16. ^ "Using Alternative Terminal Apps - Espruino". www.espruino.com. Retrieved 2019-05-28.
  17. ^ "espruino/Espruino". GitHub. Retrieved 2018-06-04.
  18. ^ a b "espruino/EspruinoDocs". GitHub. Retrieved 2018-06-04.
  19. ^ "espruino/EspruinoBoard". GitHub. Retrieved 2018-06-04.