RoadTest: Espruino
Author: Unknown
Creation date:
Evaluation Type: Independent Products
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Beaglebone Black
What were the biggest problems encountered?: The Espruino was simple to use and relatively problem free, I had a small issue with updating the Espruino software running on the board for the first time due to not using the recommended method and therefore missing part of the instructions which I included in my detailed review.
Detailed Review:
During my experience of using electronics to create my own circuits and applications, integrating a microcontroller during the design and proof of concept phase has always seemed to be an arduous task, especially if it's only to run a few tests on a small circuit or even just play about a little with the breadboard or a one time application.
You know the kind of thing I mean... Where you want to hook up a couple TI006 temperature sensors to a microcontroller, stick one sensor in your dedicated file server pc, and keep the other one ambient in the room for 24 hours then get the microcontroller to periodically log the temperatures and time from both sensors. Then later, copy that log into a spread sheet and graph the data, look at the correlation between ambient temperature and internal pc temperature and see whether it's feasable to remove the pc case fan, reducing ambient noise and power consumption. Score!! then rinse and repeat for the power pack fan, then stick the sensors into the cpu heat sink and log that with the fan on and fan off, see if its possible to run the file server silent. Yay! Sad, but fun..
Then because you don't need that sensor device anymore, take it apart and reuse the bits for something else. And this is the big thing, it sounds so simple to do but in reality it can be a giant pain. First off setting up the microcontroller, find the hardware programmer, start a project in an IDE, make a quick program outline then wonder how your gonna log that data and how your gonna be able to get it off the microcontroller onto your pc(not always a quick easy thing to do). That's before you start compiling, building, making and downloading...wow! thats a lot of steps.
Espruino to the rescue! just hook up the sensors, make a setInterval() to run a function every couple of minutes that reads the sensors through it's adc then append a log file on the sd card. attach batteries and let it do its business! Take the card out of the Espruino, put it into a pc and you have your data!!
So lately with these kind of applications in mind and as a way of rapidly developing prototypes and proof of concept, I've been on the lookout for something that takes away all of that complication, is quick and simple to use and can provide microcontroller logic to my projects with little to no effort. I thought I'd found my perfect solution in the form of a Beaglebone, yet a system that runs a full operating system and is useful for so much more than a dedicated prototyping tool seems a bit overkill (yep, it's a simple case of give me more than what I want and i'll find something to complain about still hah!). One great advantage that the Beaglebone has in my opinion is the ability to program it with javascript. Now 10 years ago I never thought I'd see the day when a language like javascript was being used on a microcontroller style system, in fact the very idea seemed ludicrous, but still there it was; a language very simple to learn and very simple to use running on an embedded system allowing me to interact with digital i/o and onboard peripherals! Amazing! I could add microcontroller logic with very little thought needed to program it, how great is that!
And then little over a month ago, I noticed the Espruino being offered as a Roadtest. Fuss free javascript programming without the operating system and snazzy features. In fact the only snazz the Espruino has is an accessible micro sd card slot! Total score!
Below, I did a review style video that goes on for longer than I thought. It's set over a few days and its my first technical style video so there's bound to be a few mistakes and inconsistencies but hey ho...
After the video I've done a quick round up and then explained the scores I gave it above in a bit more detail.
The board itself is really bare bones, this can be either a bonus for you or a pain. As a bare board, if you remove the buttons and battery connector it becomes very low profile allowing you to use in stand alone projects requiring small dimensions (which I plan to buy another specifically for in the future). The reason I wanted this particular board at the minute though is to use for development meaning I'd need to add some header sockets or pins. In order to populate all of the available i/o pins and peripherals would make it difficult to access the reset button so I decided to relocate that to some of the unused prototyping area. For somebody just getting into microcontrollers this could be a slight downfall for the Espruino but shouldn't be a problem for people with some experience at soldering. It would be nice however to see a board pre populated with header sockets or pins.
The software side as mentioned above is programmed with Javascript, an easy to learn and easy to use language that interprets commands live as they are sent from your computer. You can also save your program to the device or just reset and start from scratch. It's amazingly easy to use and I would recommend it for people in all levels of experience with microcontrollers from beginners to seasoned professionals, it's so simple to just get some basic microcontroller functionality into your projects.
There is a recommended app that you can use in the google chrome web browser or you can connect to it through a terminal and send commands straight to it. I went down the terminal route, both to update the Espruino software itself and also to write my own Javascript to it, which I also found to be an easy process.
Product Performed to Expectations 10/10
It did exactly what I expected from watching the getting started video and also the product details. It got a 10 because it is even easier to use than I thought it would be so it exceeded my expectations .
Specifications were sufficient to design with 7/10
I gave this one a 7, mainly because there is no obvious and easy way to mount it, this has been addressed on the website and some solutions offered.
Demo Software was of good quality 10/10
The Espruino has it's own development app that runs in google chrome, and ample guides for using terminals for interacting with the Espruino all of which are clear, well thought out and easy to follow.
Demo was easy to use 10/10
The getting started guide is well written, easy to follow and code is copy and pasteable. There are plenty of tutorial available and code samples to give examples of all aspects of using the Espruino nd its hardware peripherals.
Support materials were available 10/10
As above, there are plenty of tutorial and code samples, along with a full reference guide on the board itself as well as explanations of the Javascript commands and functions that the board is capable of running. There is also an active forum and just popping in occasionally over the past few days, any help people ask for is given in a very short time.
The price to performance ratio was good 8/10
At £24.99 from the UK distributors, the Espruino is well within a reasonable price range. From a strictly bang per buck perspective, for a little over £10 more, you can get a Beaglebone black with so many more features that the price ratio makes the Espruino seem expensive for what it is. Don't let that put you off though, the Espruino is a great little tool to have in your prototyping development kit and well worth the investment.
As I mentioned above, I plan on getting another one for a low profile project (even if you don't want to use the Javascript interpreter, its a neat little breakout board for the Arm STM32 and can be programmed with the Arm's built in bootloader to accept your own alternative languages programs ). I also plan on getting one for a friend as a birthday present and bundling it with a small breadboard, some jumpers and a basic component pack as an entry level learning platform.
Rapid development and prototype bonus:
My bench power supply recently fell out with a glass of wine, and the wine totally owned it. Having had one for years, I've missed out on the 'rite of passage' of making my own so thats what i'm doing right now. The basic functionality is there, been through a few configurations cos there so many ways to do things, i'm sure you know already. Anyway to get some microcontroller control and feedback from it, i'm going to use my Espruino along with some push buttons for now (dont have any rotary encoders or reasonable pots for it right now). Once that part works, im going to decide on an lcd, then incorporate that. See if I want to fiddle or reconfigure or change the components again... then add a few other bits, current shunt for monitoring current on lcd etc.. a bit more fiddling then when i'm happy, I can look at taking it from the breadboard prototype into a full device. I dont intend on using an Espruino in the final design but prototyping with it is so easy and also gives other valuable information. How many pins is my microcontroller going to need, what peripherals i.e. PWM is it going to need etc.. plus I have a structured program that is easier to cross code into a different language than start totally from scratch. So even though i'm not going to use it in the final project, it has been used to get the prototype working, nd also helped me decide and realise what I do actually need for my final device. Plus I get to unplug it and use it for something else! YAY!