Download Espruino

ChangeLog - Please follow us on  Twitter to be notified when new versions are released.

Web IDE downloads are available here

While Espruino can be downloaded onto many other boards, the boards we make come pre-installed with Espruino and can be easily updated straight from our Web IDE. If you want something that 'just works', or just want to support what we're doing then please try Espruino on one of them!


Find a binary

Choose your board from the list below to see the firmwares available for download:


Cutting edge

We try to release new versions of Espruino every few weeks. However if you can't wait that long,  you can get versions that are compiled directly from the GitHub repository after each commit.

For most boards (including all official Espruino boards), you can download the absolute latest binary using the 'finder' above or directly from You can also browse by Git commit hash.



Bangle.js / Puck.js / Pixl.js / MDBT42Q (NRF52)

Please see the instructions specific to your board:

Espruino Original / Pico / WiFi (STM32)

We'd strongly recommend that you use the Chrome Web IDE which has a flasher (and firmware download) built-in. Downloading up to date firmware is as easy as clicking the Settings button, then Flasher, then Flash Firmware. To flash a 'cutting edge' or older binary, simply:

  • Find the .bin file that you wish to flash online, right-click on it and Copy Link Address.
  • Click the Settings button, then Flasher.
  • Paste the URL into the text box under Advanced Firmware Update
  • Click the Advanced Flash Firmware button

If you absolutely don't want or can't do this then do the following on Linux or MacOS:

  • Open a Terminal Window
  • Make sure you have Python installed (type python --help and see if anything happens)
  • Download the Python script from
  • Run python -k -MySerialPort -evw espruino_for_your_device.bin
    • On Mac OS, MySerialPort will probably look a lot like /dev/tty.usbmodem### where ### is a number. You can use the 'Tab' key to autocomplete once you have typed /dev/tty.usbserial
    • On LinuxMySerialPort will probably look a lot like /dev/ttyACM# where # is a number. If you only have one USB-Serial device plugged in, it's almost certainly /dev/ttyUSB0
    • Note the -k flag above. This is specific to Espruino rev 1.3 Boards and helps to ensure that the USB link is reliable during flashing.

You can also completely overwrite Espruino's bootloader using the Serial Bootloader instructions, but you'll need a USB-TTL converter for this.


Other Boards

Please see the Other Boards page for more information.


After You have Flashed Espruino

See Quick Start for instructions on how to get started!