Unfortunate that they used a name ending in 'uino' since this is in no way an Arduino and not compatible with Arduino in terms of code or pin out. So no existing code or examples will work with it and none of the exiting Arduino shields.
Also, I think their code examples are disingenuous: their Arduino code could be greatly simplified. (e.g. why does the JavaScript code not include any port initialization but the Arduino code does; why have two digitalWrites in the Arduino code, but one in the JavaScript)?
Hi, I'm the guy behind it... Just wanted to stand up for it a bit - the -uino postfix is really because of the hobby electronics association. I wanted to do something a bit different by adding the prototype area, and I found the Arduino form factor was too big for any sensible hand-held projects. The board is still small enough that it can sit on a simple adaptor PCB for Arduino shields though. I'll try and put one online when the campaign ends.
Also port initialisation is automatic so pinMode is not required - it's a huge potential gotcha for learners, and it seemed wise to remove the need for it. You can still use it if you want to though.
Seems like the project started on Olimexino board, which has the Arduino layout, and that's where the name probably comes from. Why they didn't keep the layout is beyond me.
> Unfortunate that they used a name ending in 'uino' since this is in no way an Arduino and not compatible with Arduino in terms of code or pin out.
I agree with you about the name.
This pinout, however, is very different from the Arduino because this thing has a lot more pins than the Arduino has. And the pinout of the normal Arduino is really annoying, because there's a non-standard half-pin width gap between two of the headers on the Arduino.
But prefabricated Arduino shields are really popular and supporting them would be a really good idea.
Is this really a good idea? Yes, JavaScript is popular but if you're running on a microcontroller and already short of resources, is it really worth it to spend a lot of your cycles interpreting JavaScript?
A lot of microcontroller code has some real time requirements. Even some of the simplest Arduino code out there. Even in beginner projects, it is rather common to do something like software debouncing for pushbuttons or multiplexing for led matrices, both of which require millisecond resolution timing precision. A garbage collector pause in the middle of it would ruin everything. And a noob wouldn't understand why.
Also, isn't JavaScript already running on the new ARM Cortex M3 -based Arduino board?
To say something positive, I think the Google Blockly visual programming language is a very good idea for something like this, especially if targeted at noobs and/or kids. If you're unfamiliar with it, the picture with the puzzle pieces tells it all. There are puzzle pieces of different shapes for different syntactic structures (you can see expression and statement pieces), and the colors of the pieces are different types (in the picture, green is a boolean, I think).
some of the JavaScript engines, most notably MicroSoft's JavaScript Engine, use reference counting for determining when memory can be freed.[1]. Some implementations of reference counting work well in hard real time systems[2].
So it's too early to tell if espruino would fit real time systems.
And regarding wasted cycles: for this project, it doesn't matter much. Unless you make stuff in volume ,micro controllers are cheap.
Maybe I'm missing something, but why does Javascript require new hardware? Can you not run whatever software this is running on another µC... say the one on an Arduino board? Obviously the drivers are different but you have to write them for this hardware anyway.
This should work on the larger Arduino boards (the Due and 2560) and it already works on a bunch of other hardware too.
To be honest the new board is just to do something a bit different - and to give backers of the KickStarter something fun that they couldn't just go out and buy.
I think this is a little bit off. What I want is an embedded device that runs node.js and npm, not just JavaScript. That enables you to use JavaScript and C (using a native npm module) and get the best of both worlds.
There's Beaglebone, Raspberry Pi, and also now Tessel that do that. The previous two have had node.js support for ages but I think have been lacking any kind of real advertising because they're more general purpose.
All of those appear to be fully-fledged computers though, and Espruino's not really aiming to compete with them.
Instead, you get to use JavaScript on a very small, low-power microcontroller than will sensibly run off a small battery for days on end.
Some people will want one thing, some will want another - and hopefully they can both coexist. If we get it right they'll both help each other and we can end up with a large library of JavaScript code for embedded devices :)
I think Beaglebone Black already does that. Please correct me if I'm wrong? Also, it has an embedded micro-controller inside making it a fantastic piece of hardware.
How is this any different from running Johnny-Five (https://github.com/rwaldron/johnny-five) on an Arduino? Do we really need a board dedicated to JavaScript? There are SO many Arduino compatible boards out there already...
[+] [-] jgrahamc|12 years ago|reply
Also, I think their code examples are disingenuous: their Arduino code could be greatly simplified. (e.g. why does the JavaScript code not include any port initialization but the Arduino code does; why have two digitalWrites in the Arduino code, but one in the JavaScript)?
[+] [-] gfwilliams|12 years ago|reply
Also port initialisation is automatic so pinMode is not required - it's a huge potential gotcha for learners, and it seemed wise to remove the need for it. You can still use it if you want to though.
[+] [-] zokier|12 years ago|reply
http://www.youtube.com/watch?v=WP2Wo2_RVgo
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/
[+] [-] exDM69|12 years ago|reply
I agree with you about the name.
This pinout, however, is very different from the Arduino because this thing has a lot more pins than the Arduino has. And the pinout of the normal Arduino is really annoying, because there's a non-standard half-pin width gap between two of the headers on the Arduino.
But prefabricated Arduino shields are really popular and supporting them would be a really good idea.
[+] [-] exDM69|12 years ago|reply
A lot of microcontroller code has some real time requirements. Even some of the simplest Arduino code out there. Even in beginner projects, it is rather common to do something like software debouncing for pushbuttons or multiplexing for led matrices, both of which require millisecond resolution timing precision. A garbage collector pause in the middle of it would ruin everything. And a noob wouldn't understand why.
Also, isn't JavaScript already running on the new ARM Cortex M3 -based Arduino board?
To say something positive, I think the Google Blockly visual programming language is a very good idea for something like this, especially if targeted at noobs and/or kids. If you're unfamiliar with it, the picture with the puzzle pieces tells it all. There are puzzle pieces of different shapes for different syntactic structures (you can see expression and statement pieces), and the colors of the pieces are different types (in the picture, green is a boolean, I think).
[+] [-] hershel|12 years ago|reply
So it's too early to tell if espruino would fit real time systems.
And regarding wasted cycles: for this project, it doesn't matter much. Unless you make stuff in volume ,micro controllers are cheap.
[1]http://www.fasterj.com/articles/javascript.shtml
[2]http://liu.diva-portal.org/smash/record.jsf?pid=diva2:20899
[+] [-] outside1234|12 years ago|reply
[+] [-] dmbass|12 years ago|reply
[+] [-] gfwilliams|12 years ago|reply
To be honest the new board is just to do something a bit different - and to give backers of the KickStarter something fun that they couldn't just go out and buy.
[+] [-] outside1234|12 years ago|reply
[+] [-] gfwilliams|12 years ago|reply
All of those appear to be fully-fledged computers though, and Espruino's not really aiming to compete with them.
Instead, you get to use JavaScript on a very small, low-power microcontroller than will sensibly run off a small battery for days on end.
Some people will want one thing, some will want another - and hopefully they can both coexist. If we get it right they'll both help each other and we can end up with a large library of JavaScript code for embedded devices :)
[+] [-] neya|12 years ago|reply
[+] [-] neon_electro|12 years ago|reply
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] angersock|12 years ago|reply
Maybe $Board.
[+] [-] codereflection|12 years ago|reply
[+] [-] gfwilliams|12 years ago|reply
One of the big benefits (apart from running on its own) is that you don't have the latency of USB, so can respond to things far more quickly.
[+] [-] themstheones|12 years ago|reply
[+] [-] rglover|12 years ago|reply