Tessel Blog
tessel.io · Company blog · on HN since 2013
Tessel's blog covers its microcontroller boards that run JavaScript, including hardware overviews and development workflow for Tessel 2.
What HN saysHN commenters bring up Tessel as an example of JavaScript on embedded hardware, though one notes it is a MIPS SoC rather than a true microcontroller.
28HN people shared it
17linked it in comments
12stories submitted
234story points
6 years agolast shared
2013people per year2026
Most-shared posts
- 1Tessel: A microcontroller that runs JavaScript21 people · 152 points · first shared 2013 · 88 comments on HN
- 2Moving Fast on Hardware with io.js2 people · 66 points · first shared 2015 · 19 comments on HN
- 3Tessel 2 hardware overview1 people · 13 points · first shared 2015 · 1 comments on HN
- 4A Truly Open Hardware Development Platform1 people · 2 points · first shared 2015 · discussion on HN
- 5Run, Push, and Erase: Developing on Tessel 21 people · 1 points · first shared 2015 · discussion on HN
- 6Moving faster with iojs1 people · first shared 2015
- 7How tessel works the basics1 people · first shared 2015
- 8HardwareAPI1 people · first shared 2014
- 9A new engine for your tessel1 people · first shared 2015
What HN people wrote when they linked it
kibwen · 2018-03-01
I know this won't assuage your concerns about officialness, though it's still worth mentioning that Rust does have community-maintained HALs (https://github.com/japaric/embedded-hal ) and tools to generate APIs from official vendor-provided SVDs (https://docs.rs/svd2rust/0.12.0/svd2rust/ ).
There's also a few boards out there that do support Rust natively: Hail (https://www.tockos.org/blog/2017/introducing-hail/ ) and Tessel (https://www.tessel.io/ ).
pjmlp · 2019-08-29
No, but you can use JavaScript on ARM mbed OS, running on $5 ARM-based microcontrollers.
https://os.mbed.com/javascript-on-mbed/
On Samsung's SmartThings embedded devices
https://smartthings.developer.samsung.com/docs/index.html
SigFox customized IoT solutions
https://build.sigfox.com/
Or on the other side from ARM mbed's offering, a beefy ARM 580 MHz with 96 MB (RAM + Flash), using JavaScript alongside Rust.
https://tessel.io/
Now if your only definition of embedded are constrained micro-controllers that aren't even able to cope with standard ISO C89 without having additional proprietary compiler extensions, then naturally everything else are just miniature desktop computers.
Meanwhile some forward looking companies keep on delivering innovative products.
moltensyntax · 2018-04-20
Tessel (https://tessel.io/) also runs JavaScript on embedded. It cleverly used Lua as an intermediate language.
agentultra · 2017-01-14
I'd guess Javascript is quite popular[0] because it's literally on every modern computer and has incredible reach[1]. It's also a bit of a kitchen-sink language so students can grow into a style and paradigm that suits them. Plus there's nothing to install to get started... just open a browser.
[0] http://www.tiobe.com/tiobe-index/javascript/
[1] https://tessel.io/ https://www.sitepoint.com/creating-webgl-game-unity-5-javascript/ https://www.youtube.com/watch?v=5sETJs2_jwo
planteen · 2016-10-21
Do you have more details on JS in microcontrollers? I'm curious about real-time systems, etc.
I found the Tessel (https://tessel.io/), but its hardly a microcontroller - its a MIPS SoC.
It looks like the Espurino is more of a traditional microcontroller. But the unit cost is high - $40!
Is anyone using JS on a microcontroller in a high volume product?
ta6334 · 2016-01-28
also espruino (http://www.espruino.com/) and tessel (https://tessel.io/) (Tessel 1, not 2)
eiriklv · 2016-01-05
Not exactly an attiny85, but it's getting close: https://tessel.io/ :-)
concise · 2015-03-13
The reason behind these slides: At our college, we planned in an embedded system course that our students can use the Tessel platform[1] to do quick prototyping on various project ideas, but most of them only took a lecture on OOP in C++ and had no experience on other programming languages. To help them get ready on hacking on these boards and modules with JavaScript in the first few weeks, I decided I should make a notes on some "special features" in JS in contrast to languages like C++/Java, e.g., first-class anonymous functions, closures, class-free OOP, ... And here is the result.
[1]: https://tessel.io/
aselzer · 2014-11-12
This seems like a version of the Tessel[0]
that isn't as overpriced[1].
[0] https://tessel.io/
[1] https://shop.trycelery.com/page/tec
eukaryotia · 2014-10-30
It's rapidly moving into hardware development as well, eg:
https://tessel.io/
https://www.kickstarter.com/projects/gfw/espruino-javascript-for-thing…
http://nodebots.io/
This is what programming is now.
angersock · 2014-06-28
You already can!
https://github.com/rwaldron/johnny-five
https://tessel.io/
bkurtz13 · 2014-03-10
I'm personally excited for Tessel.
https://tessel.io/
daurnimator · 2015-07-27
Similar projects:
- http://duktape.org/
- http://mujs.com/
- https://github.com/gfwilliams/tiny-js
- http://pdqi.com/cgi-bin/cgiwrap/pdqi/jsi.cgi/doc/tip/jsi/www/index.wik…
Fun alternative: Compile JS to Lua and run that instead (e.g. as done by https://tessel.io/)
- https://github.com/PaulBernier/castl
- https://github.com/tessel/colony-lua
linkregister · 2015-03-24
What I thought to be the most promising part of the article:
Tessel created "a compiler that translated the JavaScript source to Lua and executed the translated code on the very compact Lua virtual machine on the microprocessor of the device".
linked: https://tessel.io/blog/98257815497/how-tessel-works-the-basics
j_s · 2015-03-17
Tessel also implemented a JS runtime incorporating LuaJIT, though they since chosen V8.
https://github.com/tessel/runtime
https://tessel.io/blog/102381339917/a-new-engine-for-your-tessel
kam · 2014-06-10
Yes. The module ports are documented here: https://github.com/tessel/hardware/blob/master/tessel-hardware-overvie… and the JS APIs for using them here: https://tessel.io/docs/hardwareAPI
haberman · 2015-08-18
> If you would start out with a JavaScript JIT (like V8) what things would you have to add (i.e. things that are not required to JIT JavaScript) besides the obvious modifications in the parser?
This is such a tempting thought -- that JavaScript and Lua are similar enough languages that an engine for one could be retargeted to the other with some parser changes and a few new features.
In practice it doesn't work out that way. Here is the story of Tessel, who originally set out to do it the other way around (implement JavaScript on LuaJIT) but reversed course after two years: https://tessel.io/blog/112888410737/moving-faster-with-iojs
"We believed that over time we could cover all of the corner cases of JavaScript with our own runtime, but perhaps we should have taken a cue from the “Wat talk” that it was going to be an uphill battle. While the semantics between JavaScript and Lua are very similar, they are also just slightly different in many ways (For example, the comparisons between null vs undefined vs falsy), and capturing all of those idiosyncrasies has proved frustrating for both the users and developers of the Runtime. [...] I still do believe it’s possible to make a nearly compatible runtime, but it’s going to take much more work than we expected and that resource investment would be an unwise business decision."