Espruino: JavaScript for Things

£100,710

1,692

What is Espruino?

Espruino is a small computer that anyone can use to control things around them. Its JavaScript interpreter gives you instant feedback so that you can experiment and develop whatever your level of experience. Even if you can’t program, you can still get started quickly with our Web-based graphical code editor!

You don't need any compilation or 'flashing' step, or any software on the host computer. You just write code, and as soon as you type a command it executes.

Open Source

On successful completion of the KickStarter, we will release all software and hardware source files with an Open Source Licence, so Espruino can easily be ported to other platforms, such as Arduino, Carambola, Raspberry Pi, and even the Sony Smartwatch!

It can be used as an IO board for your PC, Mac or Raspberry Pi - there's no need to program it first.

Event-based programming allows different bits of code to be used together much more easily.

You can debug by inspecting variables as the code is running.

Simply Copy + Paste different bits of code together to create your project.

Instant Feedback?

Yes! While you can program Espruino in a traditional (or graphical) way, you can also program it via an interactive console. This means that when you type a command and press enter it will be executed immediately.

Not only is it fun, but it's great for debugging your software (and hardware!), and even better for building up your project's functionality one step at a time.

You're not limited to just the interactive way of programming though - you can program whichever way you want to using the Web UI:

Compatibility

You can control an Espruino device from almost anything - Windows, Mac OS, Linux, Raspberry Pi, Android and even iOS. You can even add a Bluetooth module and program it wirelessly!

Why JavaScript?

We were looking for a language that:

Doesn't need compiling

Can be modified and added to while running

Has good support for Strings, Objects, Maps and Arrays

Has similar syntax to common languages like C, C++ (Arduino) and Java

Can easily be event-based

Is widely used, easy to learn and flexible

JavaScript is the obvious (and possibly the only) language that does all this. Almost every website on the internet depends on it, and many websites such as Codeacademy provide free tutorials and lessons. Millions of people use it every day.

We've tried to keep the API similar to Arduino's though - so if you've done any Arduino programming you should feel right at home. Even if you haven't, it means that a lot of what you learn with Espruino will be transferrable to other platforms.

Espruino compared to Arduino - Blinking Lights

Almost anyone who has used Arduino has tried the Blinking Lights example. Here's the code to blink one light on Espruino (left), or Arduino (right).

Espruino's event-based code clearly makes this easier. But what about the obvious next step: flashing two lights at different speeds?

This is where Espruino shines. Just copy your code again, change the variable name and the light you want to flash. In Arduino you have to re-write your code completely.

The more functions you add, the more obvious the difference gets!

The Hardware

The Espruino board itself has been designed to be extremely small and flexible and to allow you to use shields or add the components you want directly to your board. Why buy a bulky, expensive motor driver shield when you can just solder on a single chip that costs $1!

The surface mount prototype area allows you to add all kinds of devices such as motor/stepper drivers, accelerometers, even connections for .NET Gadgeteer modules. We’ll even suggest common components (along with their suppliers) and ways to connect them on our website.

It’s Open Hardware too - circuit diagrams and schematics will be available on our website - along with designs for 3D printed boxes.

I want to add my own functionality to Espruino. Can I do that?

Yes! Espruino is very powerful, and you may be able to do everything you want from within it. However if you want to write your own C code, Espruino will be Open Source so you'll have full access to do whatever you want.

Why a KickStarter?

If you’ve heard of Espruino before, you’ll know that an early version of our software has been online for a while. During that time we've received great feedback which we've used to develop the software further.

To unlock Espruino’s full potential, we want something that you can get out of the box and have running in just a few minutes. That’s not going to happen unless there are boards pre-installed with the Espruino Software - so that’s what we’re doing!

Hundreds of people have asked us if they can use Espruino's Source Code - and we've listened. That's why we'll make Espruino Open Source if this KickStarter completes successfully.

We need your help though. We can’t make the Espruino boards affordable in small quantities, so we need to make a big order. We also need to fund the development of the code. That's where KickStarter comes in!

What is the money for?

As you can see, we already have a fully working prototype. We need your support so that we can:

Make a large order and get the price down

Make the Source Code accessible and easy to use for its Open Source release

Produce more documentation, tutorials, example projects and videos

Improve our Chrome web app and the graphical code editor that comes with it

Make Espruino sustainable - so we can keep adding to it and supporting our users

Technical Specifications

Note: This board layout is not final, but the board you get will have the following specifications:

Prototype area which can be used in many different configurations, for example: Servo Headers, Up to 14x 500mA outputs, 2x .NET Gadgeteer connectors, or NRF24L01+ wireless transceiver modules

WiFi Support with the TI CC3000 WiFi module (not included)

Rewards

There's a large selection of different rewards now, so we've produced this table to help explain what you get at each level. If you've already pledged don't worry - you can still change your pledge and reward via KickStarter:

Because this KickStarter is in the UK, prices are in British Pounds, however you can pledge from any country. The exchange rates are roughly as follows:

£1 = $1.6 USD

£1 = €1.2 EUR

Manufacturing Plan

Before the KickStarter

We started work on Espruino over a year ago. Over the winter we tested the software on several different processors from the STM32F1, 2 and 4 families. From this we determined that the best fit for the Espruino board was the STM32F103RCT6.

We then designed the circuit board and had 10 prototype bare PCBs created locally in the UK by Newbury Electronics Ltd. We soldered all of the components on by hand at home and tested different configurations to ensure that the boards could be manufactured without problems and to test out different components.

After evaluating the cost of manufacturing and sourcing components in the UK we have decided to manufacture using the reputable Chinese manufacturing company, Seeed Studio. Over the last two months we have worked with Seeed to improve our design and, sourcing components from Seeed's Open Parts Library, to ensure we are not compromising on quality. This has enabled us to produce the design for the current version of the Espruino Board.

During the KickStarter Campaign

We now believe we have the final revision of the PCB and BOM and Seeed are currently producing two production prototypes which we should receive by early September. We will test these thoroughly once we receive them. Although we do not anticipate having to make any changes to the design, the timescales for our Rewards allow for us to make several more revisions- these would be produced through an accelerated process in the UK (2 days per revision) so this should not cause any significant delay.

We should therefore have finalised prototypes which meet our high standards by the end of the KickStarter campaign.

Mid-October

Once we have these we will order 10 early prototypes which we will use for our Impatient Developer Reward and to run a final set of tests. At latest these should be produced by mid-October so they can be sent out to meet the Reward deadline.

End of October

So by the end of October we will be in a position to place a bulk order with Seeed for all our other Rewards. The Espruino software will definitely be ready by then. At the time of launch it is fully functioning but we will be making it easier to use, more efficient and powerful as we develop more tutorials for our website during September and October.

December - January

The majority of the boards will then be produced by Seeed during the autumn. Seeed have a one month turn around so the boards should be ready for shipping by the end of November. We've put a predicted timescale of January for most Rewards, but we anticipate that you will receive your Rewards a lot earlier than that, almost certainly by Christmas! We just want to make sure that we have time to deal with any unexpected delays or problems, rather than ship anything that is not completely perfect!

Seeed Studio will ship the rewards directly to backers from their factory. They have years of experience of shipping worldwide so using them ensures that you get your rewards as quickly as possible and lets us focus on improving tools, tutorials and other documentation on our website ready for when your board arrives.

£50,000 Stretch Goal - CC3000 WiFi (COMPLETE!)

You'll now be able to plug a CC3000 WiFi module right in to Espruino, and use it to get data from websites or even create your own Web Server!

£60,000 Stretch Goal - NPM Node.js module loading (COMPLETE!)

We'll be adding the ability to load node.js modules from the internet to both Espruino itself (with the CC3000 WiFi module) and the Espruino Web UI, so you'll be able to load node.js modules from the internet regardless of whether your Espruino board has a CC3000 module or not!

£70,000 Stretch Goal - OpenWRT package (COMPLETE!)

We'll now be submitting an Espruino package to the OpenWRT repositories This means you'll be able to get Espruino's fantastic, web-enabled node.js-style JavaScript programming on small Linux devices like the Carambola, TP-Link TL-WR703N, Arduino Yun, and even your wireless router!

We'll be adding a 'Getting Started' mode to our Web App that walks you through the commands you can type (and what they do) one by one and shows you what you can do with Espruino. It'll get you to a state where you can make things happen in response to button presses, and where you'll feel a lot happier getting started with the other projects that we'll have online.

It won't be for everyone - but if you're new to programming in general, electronics, or just JavaScript then it'll really help you out.

Risks and challenges

We’ve been developing Espruino’s software for the past year and a half, and we’ve been testing our latest hardware prototype for the past 2 months. Everything already performs excellently, and is capable of doing everything that we have described.

That just leaves the usual things that might go wrong during manufacturing. We have been in contact with two separate companies that can produce the boards, so if our preferred company lets us down, our target for sending out the boards may slip by a month, but we will still get you your rewards.

Kickstarter is not a store.

Pledge £199 or more
About $252

Impatient Developer Special: A hand-made prototype Espruino board and a USB to TTL converter sent out as soon as the KickStarter finishes. We'll even send you one of the final boards when they're produced.