Espruino

Last updated
Espruino
Developer(s) Gordon Williams
Repository github.com/espruino/Espruino
License MPL 2.0
Website www.espruino.com

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

Contents

Overview

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 operating system used on BangleJS and BangleJS2 smartwatch. 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

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 KB of flash and 48 KB of RAM and runs on a 72 MHz ARM Cortex M3 processor. Espruino-original.jpg
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 KB of flash and 48 KB 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

Espruino Web-Based IDE
Developer(s) Gordon Williams
Repository github.com/espruino/EspruinoWebIDE
License Apache License 2.0
Website www.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

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

See also

Related Research Articles

<span class="mw-page-title-main">Processing</span> Free graphics library

Processing is a free graphics library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming in a visual context.

<span class="mw-page-title-main">Arduino</span> Italian open-source hardware and software company

Arduino is an Italian 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 under a CC BY-SA license, while the software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

<span class="mw-page-title-main">.NET Micro Framework</span> Open source .NET platform

The .NET Micro Framework (NETMF) is a .NET Framework platform for resource-constrained devices with at least 512 kB of flash and 256 kB of random-access memory (RAM). It includes a small version of the .NET Common Language Runtime (CLR) and supports development in C#, Visual Basic .NET, and debugging using Microsoft Visual Studio. NETMF features a subset of the .NET base class libraries, an implementation of Windows Communication Foundation (WCF), a GUI framework loosely based on Windows Presentation Foundation (WPF), and a Web Services stack based on Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL). NETMF also features added libraries specific to embedded applications. It is free and open-source software released under Apache License 2.0.

Svelte is a free and open-source component-based front-end software framework, and language created by Rich Harris and maintained by the Svelte core team members.

<span class="mw-page-title-main">IOIO</span>

IOIO is a series of open source PIC microcontroller-based boards that allow Android mobile applications to interact with external electronics. The device was invented by Ytai Ben-Tsvi in 2011, and was first manufactured by SparkFun Electronics. The name "IOIO" is inspired by the function of the device, which enables applications to receive external input ("I") and produce external output ("O").

<span class="mw-page-title-main">Raspberry Pi</span> Series of low-cost single-board computers

Raspberry Pi is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. Since 2013, Raspberry Pi devices have been developed and supported by a subsidiary of the Raspberry Pi Foundation, Raspberry Pi Ltd. The Raspberry Pi project originally leaned toward the promotion of teaching basic computer science in schools. The original model became more popular than anticipated, selling outside its target market for diverse uses such as robotics, home and industrial automation, and by computer and electronic hobbyists, because of its low cost, modularity, open design, and its adoption of the HDMI and USB standards.

Mbed is a development platform and operating system for internet-connected devices based on 32-bit ARM Cortex-M microcontrollers. The project is collaboratively developed by Arm and its technology partners.

<span class="mw-page-title-main">Adafruit Industries</span> American electronic components and hardware distributor

Adafruit Industries is an open-source hardware company based in New York, United States. It was founded by Limor Fried in 2005. The company designs, manufactures and sells electronics products, electronics components, tools, and accessories. It also produces learning resources, including live and recorded videos about electronics, technology, and programming.

Tinkerforge is an open source hardware platform of stackable microcontroller building blocks (Bricks) that can control different modules (Bricklets). The primary communication interface of the building blocks can be extended using Master Extensions. The hardware can be controlled by external programs written in C, C++, C#, Object Pascal, Java, Perl, PHP, Python, Ruby, Shell and VB.NET over a USB, Wifi or Ethernet connection, and running on Windows, Linux and macOS. This non-embedded programming approach eliminates the typical requirements and limitations of conventional embedded software development. Tinkerforge hardware and software are both Open Source, and all files are hosted on GitHub.

<span class="mw-page-title-main">OpenBCI</span> Open-source brain-computer interface platform

OpenBCI is an open-source brain–computer interface platform, created by Joel Murphy and Conor Russomanno, after a successful Kickstarter campaign in late 2013.

<span class="mw-page-title-main">Micro Bit</span> Single-board computer designed by the BBC for use in computer education

The Micro Bit is an open source hardware ARM-based embedded system designed by the BBC for use in computer education in the United Kingdom. It was first announced on the launch of BBC's Make It Digital campaign on 12 March 2015 with the intent of delivering 1 million devices to pupils in the UK. The final device design and features were unveiled on 6 July 2015 whereas actual delivery of devices, initially planned for September 2015 to schools and October 2015 to general public, began on 10 February 2016.

<span class="mw-page-title-main">ESP8266</span> System-on-a-chip microcontroller model with Wi-Fi

The ESP8266 is a low-cost Wi-Fi microcontroller, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.

MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.

<span class="mw-page-title-main">Apache Mynewt</span> Real-time operating system

Apache Mynewt is a modular real-time operating system for connected Internet of things (IoT) devices that must operate for long times under power, memory, and storage constraints. It is free and open-source software incubating under the Apache Software Foundation, with source code distributed under the Apache License 2.0, a permissive license that is conducive to commercial adoption of open-source software.

<span class="mw-page-title-main">ESP32</span> Low-cost, low-power SoC microcontrollers with Bluetooth and Wi-Fi

ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa LX7 dual-core microprocessor or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. ESP32 is created and developed by Espressif Systems, a Chinese company based in Shanghai, and is manufactured by TSMC using their 40 nm process. It is a successor to the ESP8266 microcontroller.

Mongoose OS is an Internet of Things (IoT) Firmware Development Framework available under Apache License Version 2.0. It supports low power, connected microcontrollers such as: ESP32, ESP8266, TI CC3200, TI CC3220, STM32. Its purpose is to be a complete environment for prototyping, development and managing connected devices.

Next.js is an open-source web development framework created by the private company Vercel providing React-based web applications with server-side rendering and static website generation.

<span class="mw-page-title-main">RP2040</span> ARM-architecture microcontroller by the Raspberry Pi Foundation

RP2040 is a 32-bit dual ARM Cortex-M0+ microcontroller integrated circuit by Raspberry Pi Ltd. In January 2021, it was released as part of the Raspberry Pi Pico board.

References

  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. 1 2 "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. Wikisource-logo.svg {{{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. 1 2 "espruino/EspruinoDocs". GitHub. Retrieved 2018-06-04.
  19. "espruino/EspruinoBoard". GitHub. Retrieved 2018-06-04.