On March 5, 2015, Technical Machine announced the next generation of their Tessel platform: the Tessel 2. Additionally, Technical Machine announced a prototype-to-production service for products that are built with the Tessel 2. These are both very exciting developments for the future of NodeBots.

According to Technical Machine, the Tessel 2 builds on and grows from, the lessons learned with the Tessel 1—most importantly that compatibility is a priority. The Tessel 2’s departure from the Tessel is most notably the abandoning of the Lua based Colony Compiler and Runtime. While those efforts were admirable, the resulting “JavaScript” (which was actually JavaScript transpiled to Lua for execution in a Lua VM) was semantically incompatible with the source JavaScript running in Node.js. Some issues were subtle and possibly even avoidable, but others were insuperable. Tessel 2 will enjoy a full OpenWrt Linux environment, which will ship with io.js (of course Node.js can be installed if the author prefers). This single detail is the most important feature of them all: compatibility with io.js/Node.js will allow the Johnny-Five team to implement an IO Plugin that will enable Johnny-Five programs to run directly on the Tessel 2 (as it does with BeagleBone Black, Intel’s Edison or Galileo, Linino One, Raspberry Pi and pcDuino). The addition of Tessel 2 to Johnny-Five’s existing platform support is especially exciting due to the wealth of components that have been designed from the ground up to specifically complement io.js/Node.js’s asyncronous IO model (read about the interesting aspects and challenges of that effort in Eric Kolker‘s article “Hardware is *Different*“).

The Tessel 2 has been designed with hardware that is fundamentally suited to handle the processing and reliability needs of non-trivial IoT and Robotics projects. The specific details are out of scope for this article, however Kevin Mehall’s “Introducing Tessel 2!“, Eric Kolker’s “Tessel 2 Hardware Overview” and Jon McKay’s “Moving Faster With io.js“, provide a substantial amount of information and background.

Ease of use is vital to the accessibility of a new platform and its development tools. The truth is, most emergent IoT and Robotics platforms have an unfortunate developer experience. Whether biased toward a special desktop IDE, or poorly conceived and grotesquely implemented browser based IDE (how does one npm install without CLI access?), many of these platforms leave something to be desired. The Tessel allows the author to remain comfortably within their own editor or IDE of choice. While other platforms expect system administrator level experience to set up wifi, the Tessel is configured with a single command: tessel wifi -n [ssid] -p [password]. The Tessel developer experience has long been second to none, and you can read more about the future of the Tessel CLI tools in Kelsey Breseman’s “Run, Push, and Erase: Developing on Tessel 2“.

Bocoup has been building evidence in support of JavaScript as a viable IoT and Robotics programming language since Johnny-Five was first released in 2012. Three years later, and we’re more committed than ever before as we look forward to developing new open source, educational and even commercial products with the Tessel 2!