This project was successfully funded on September 26, 2013.
About this project
Want to write about Espruino? Check out this page
What is Espruino?
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.
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!
What makes it stand out from other boards?
- You can be writing code just a few minutes after unboxing
- Uses much less power than Linux boards (like the Raspberry Pi), so will run for longer on batteries
- Loads of IO pins, with multiple I2C, SPI, USART, and Analog Inputs and Outputs
- 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.
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:
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!
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
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 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
Note: This board layout is not final, but the board you get will have the following specifications:
- Less than half the size of a business card ( 54mm x 41mm )
- STM32 32-bit 72MHz ARM Cortex M3 CPU
- 256KB of Flash memory, 48KB of RAM
- Micro USB connector
- Input Voltage Range of 3.6v to 15v
- Battery connector (JST 2 Pin)
- Built-in SD card connector
- Red, Green and Blue LEDs
- Pads to allow HC-05 Bluetooth modules to be added
- Extremely low profile
- 0.1" Pin spacing
- 44 GPIO Pins, which can handle: 26 PWM Pins, 16 ADC Pins, 3 USARTs, 2 SPI, 2 I2C and 2 DACs
- 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)
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
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.
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.
We'll be keeping all our backers informed of our progress via KickStarter's update system.
After we've met all our KickStarter obligations, we'll be selling Espruino boards via distributors. If you're interested in becoming a distributor yourself, please contact us.
£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!)
£85,000 - Interactive 'Getting Started' in the Espruino Web App (COMPLETE!)
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.
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.Learn about accountability on Kickstarter
Not at all! Once you've programmed it, unplug it (or disconnect from Bluetooth) and it'll keep working.
Or simply type 'save()' and your program will be stored in on-chip flash memory. Every time the board is powered on after that (regardless of whether a PC is connected) it will resume from that last point.
No, Espruino can store everything it needs on the board itself. The SD card is only needed if you want to store (or load) a lot of data.
It has been mentioned that Arduino does have a Timer class that works in a similar way to setInterval. While this is true, there no clear progression from Arduino's first 'Blinky' example to using a Timer if you're a beginner - and even after this the lack of inline functions makes the code more complicated.
The Espruino code can also be re-written even more simply as "setInterval("digitalWrite(LED1,a=!a)",1000);" - but we didn't do this in our example as we feel it is not as easy to read.
With regards to Arduino's pinMode, if it is not specified Espruino sets the pin mode automatically depending on whether you use digitalWrite/digitalRead/analogRead/analogWrite/etc. We believe this is removes one more potential 'gotcha' that beginners may encounter.
Like Teensy/etc the board is not physically compatible with Arduino Shields as it is smaller than a normal Arduino (roughly half the size). However a simple (passive) adapter board could be made that would provide sockets in the correct places for Arduino shields.
Please leave us a comment if this is something you'd like... If we get enough interest we can add an extra reward level for it!
It’s fast enough for pretty much everything you’d use a standard Arduino for. Like Arduino, it won’t easily handle audio or video though.
You can easily connect Espruino to the popular CC3000 WiFi module - so it's quick and cheap to make your Espruino device internet enabled.
Sure, once the KickStarter has successfully completed it'll be completely Open Source.
However it'll be subject to the terms of the Open Source Licence and we won't be providing support or, like Arduino, official recognition unless you choose to support the further development of Espruino.
Head over to our website, http://www.espruino.com. We've got a bunch of tutorials, example projects and reference material already online, and we'll be adding more over the next few weeks.
Tessel (another JS microcontroller) launched on 5 September, and everyone has a lot of questions about the differences.
In short, they're for two different things: Tessel seems to be aimed directly at internet-connected devices (a little like the Raspberry Pi), and Espruino is aimed more at small battery operated devices (like the Arduino). This doesn't mean that Espruino can't be connected to the internet though - see below!
Or in more detail:
- Espruino is cheaper (about 1/3 of the price)
- You can program Espruino interactively and wirelessly with just a Serial Terminal. You have to program Tessel on the PC and then run a special program to 'push' your software to it.
- Both boards are 'bare metal' - there is no Operating System in the way
- Tessel has built-in WiFi, however Espruino can support WiFi if you add the inexpensive CC3000 module
- Espruino is a lot more power efficient, and has better support for running off a battery
- Tessel can only run from 3.48v to 6v input, but Espruino runs from 3.5v to 16v
- The boards are almost the same size (Espruino is 45x51 and Tessel is 40x65)
- Tessel has 32MB of RAM, but Espruino has 48kB
- Tessel runs at 180Mhz, Espruino runs at 72Mhz
- Tessel has a bunch of add-on boards that you can buy, but Espruino encourages you to just solder on/connect what you need directly.
- Tessel has 18 GPIO and 6 ADC pins, but Espruino has 44 GPIO and 16 ADC pins
- Espruino has a built-in SD card connector and space for a bluetooth module, but both are add-on boards for Tessel
We're afraid not - it's just Gordon and Marianne working on Espruino, so we're trying hard to keep everything simple enough that we're sure that everyone can get exactly what they ordered on time.
After the KickStarter rewards have shipped we'll be starting an online shop and/or working with distributors though - so you will be able to get more boards after the campaign ends.
After the KickStarter rewards have shipped we'll be starting an online shop and/or working with distributors - so you'll easily be able to get extra boards as well as modules such as WiFi.
Pledge £1 or more
A lovely warm fuzzy feeling that you're helping develop more awesome Open Source software. NOTE: This project is funded in British Pounds, but you can back it in any currency. £1 is about $1.50Estimated delivery:
Pledge £15 or more
50 backers All gone!
Early-bird special! An Espruino board at a special discounted priceEstimated delivery:Ships anywhere in the world
Pledge £19 or more
An Espruino boardEstimated delivery:Ships anywhere in the world
Pledge £38 or more
Low Power Wireless Kit: Experiment with wireless communication up to 60m away. 2x Espruino boards and 2x NRF24L01+ Wireless transceivers, with an online tutorialEstimated delivery:Ships anywhere in the world
Pledge £44 or more
Multicolour Light Pack: An Espruino board with a string of 25 Individually Addressable LEDs (as in our video)Estimated delivery:Ships anywhere in the world
Pledge £69 or more
Starter Kit: An Espruino board, sockets, patch wires, a string of 25 Individually Addressable LEDs, 2 small servos, a DS18B20 temperature Sensor, light sensor, resistors, and online example projectsEstimated delivery:Ships anywhere in the world
Pledge £99 or more
Wireless Experimenter Kit: Control your house wirelessly! 5x Espruino boards, 5x HC-05 bluetooth modulesEstimated delivery:Ships anywhere in the world
Pledge £129 or more
WiFi Wireless Kit: 4x Espruino boards, 1x WiFi module, 2x Bluetooth Modules, 2x NRF24L01+ WirelessEstimated delivery:Ships anywhere in the world
Pledge £199 or more
5 backers All gone!
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.Estimated delivery:Ships anywhere in the world
Pledge £199 or more
Ultimate WiFi Experimenter Kit: 4x Espruino boards and an amazing kit of parts to use with them: 1x WiFi module, 2x Bluetooth Modules, 2x NRF24L01+ Wireless, sockets, patch wires, breadboard, 25 Individually Addressable LEDs, LCD Screen, 2 small servos, temperature sensor, light sensor, IR sensor, ultrasonic distance sensor, resistors, rotary encoder, pushbutton, LiPo battery, charger and online example projectsEstimated delivery:Ships anywhere in the world
Pledge £2,999 or more
2 backers Limited (3 left of 5)
Open Source Supporter! We'll put your company's logo on the left-hand side of our website in a list of SponsorsEstimated delivery:
- (30 days)