Espruino Pico, Javascript On A USB Stick

There are probably very few official numbers for this, but web developers at least seem to outnumber the amount of people who regularly poke pins and registers with C. For them, the embedded world must be a scary and foreboding domain, full of bitwise operations and dynamic types. [Gordon] figured there was another way and built a Javascript interpreter for a microcontroller. The latest board built around this interpreter is up on Kickstarter, and its even smaller and more capable than his earlier version.

This isn’t [Gordon]’s first rodeo; last year he launched the (full-sized) Espruino, featuring an ARM Cortex M3 and his very own Javascript interpreter. The large-scale Espruino was a rousing success, and now he’s moving on to a smaller thumb drive-sized footprint for the Pico. The hardware is a bit better, relying on the ARM Cortex M4 STM32F4 with a bit more RAM, and this time the board is slightly cheaper. It still runs the same Javascript interpreter, though, so all the code is exactly what you’d expect.

We haven’t seen many projects using this tiny Javascript of Things, but the new layout does make it fantastically useful. Depending on how the crowd funding campaign turns out, [Gordon] might be adding socket, and USB HID support, along with inline C functions.

39 thoughts on “Espruino Pico, Javascript On A USB Stick

    1. The naming is tricky – however to a lot of people ‘-uino’ basically means microcontroller. If someone is totally new to electronics and says ‘is this like an Arduino then?’, it’s actually a pretty good starting point. It’s more like an Arduino than a transistor, battery, 555 timer, etc. Obviously it’s annoying if you know a lot about hardware, but if you know a lot about hardware its pretty obvious to you that it isn’t an Arduino clone.

          1. espruino is indeed very cool, but their hardware is very limiting. Fortunately it’s very easy to rebuild the software to run on a beefier board like Waveshare Port407Z.

      1. Well, that would be a 40% decrease outside idle mode… Not saying that you dont have a point, just saying that 40% less time spent on overhead is quite a big deal…

  1. *sigh*

    I already need a 4 GHz processor, minimum of 8 GB of memory and 100mbit/s internet connetion to open some funny cat image page on the interwebs. And screw me, if I happen to open Facebook at the same time on another tab.

    I remember having pretty much the same user experience already on 1998, but it was better and faster except for the page loading.. and my machine was running at like 400MHz and had 64 MB of memory and the bandwidth was modem scale.

    And now. Now these “web developers” need to stick their hands on small MCUs to get one friking LED blinking done?! And to do that they don’t want to learn 5 lines of C -code. Instead they want to run several KB interpreter to run the 5 line of JavaScipt on it?!?


    At least write a JavaScript -> C -> assembly compiler or something, if you necessarily want to do this with JavaScript, but dear lord, stop this resource waisting mayhem!

    1. > I already need a 4 GHz processor, minimum of 8 GB of memory and 100mbit/s internet connetion to open some funny cat image page on the interwebs. And screw me, if I happen to open Facebook at the same time on another tab.

      WAT? must be a pentium 4? I’ve got similar setup and I can open three 8GB 1080p videos, I always have 20+ tabs on chrome opened, FB, GMAIL, Bitcoinwisdom (this takes a lot of ram) and yet I can still open Solidworks. You must have some spyware or bitcoin virus or something.

      1. Install Chrome and check how much one web page actually takes memory (there’s a shortcut to get such panel, which I do not remember atm). FB front page typically takes like 700 MB.

        Modern JavaScript based dynamic loading has seriously bloated web pages. Press Page Down (or navigate with arrow keys) a few times on any “one page web service” (Fb, Flickr, Imgur etc.) and see how the memory consumption rockets. In the meantime the CPU crunches several MBs of JavaScript to generate the HTML and then to render that HTML on to your display. It’s very easy to top out your CPU for a few seconds, if your internet connection is fast enough.

        Videos are easy for you computer because they are often HW accelerated through your graphics card.

          1. with massive scrolling and loading of shizzle, I turned adblock off, badger off, and enabled videos to play automatically, it only reached 130MB. Good luck finding out what’s wrong with your computer.

        1. Um, 700MB? If facebook is taking up that much memory you have some funny business going on. I just logged in and scrolled for a good minute and only got up to 150MB. And after sitting at that spot for a few seconds it dropped down to about 90MB. Not disagreeing that the web has become bloated, but that’s not what’s causing your issue.

  2. Cool!!!
    More script-kiddies and more (easy to use, easy to do, easy-to-whathever) viruses to the micro world!
    There were the times I remember many game was written with poke-peek method on most home computers like ATARI 800XL.
    C’mone, talking to silicon with 1000 abstraction layers?
    Is that because most of the “programmers” and “developers” are kinda “abstract” ?

    1. The problem will stop itself. It will either never surpass the blinkingnlednphase or the first pratical implemetations will show that the software stack required for javascript is utterly unreliable formsuch solutions.

  3. Funny to read all the negative comments nearly 4 years ago. They clearly didn’t see the benefits of having a lightweight interpreted language on a microcontroller, especially for rapid prototyping and learning. Hardware is hard, and this project lowers the barrier of entry to a lot of people, introducing them to the world of hardware and microcontrollers.

    It’s not just a toy for writing blinky LEDs though, it’s a surprisingly solid stack for protoyping hardware projects, even relatively advanced ones. And JavaScript is no longer as bad as it used to be, with its recent developments (ES6) it’s more than good enough for prototyping and personal projects – even some commercial projects. Have a look at Ruuvitag which runs Espruino.

    Code written for Espruino also tends to be much nicer than for Arduino, largely thanks to JavaScript’s event loop (

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.